Firebase MCP à Claude Code Action ã§å®çŸãã Crashlytics ãšã©ãŒã®èªåä¿®æ£ã¯ãŒã¯ãããŒ
ããã«ã¡ã¯ãæ ªåŒäŒç€ŸIVRy ã®ãã«ããŒã§ãã
æ¬èšäºã§ã¯ã瀟å
ã€ãã³ããAI Awardãã®äžç°ãšããŠéçºãããFirebase MCP ãš Claude Code Action ã«ãã Crashlytics ãšã©ãŒã®èªåä¿®æ£ã¯ãŒã¯ãããŒãã«ã€ããŠç޹ä»ããŸãã
ã¢ãããŒã·ã§ã³
ã¢ãã€ã«ã¢ããªéçºã«ãããæ°žé ã®èª²é¡
ã¢ãã€ã«ã¢ããªéçºã«ãããŠãã¢ããããŒããéãããã³ã«äœãããæ°ããªåé¡ãçºçããã®ã¯é¿ããããªãçŸå®ã§ãããŠãŒã¶ãŒç°å¢ã®å€æ§æ§ãOSããŒãžã§ã³ãæ©çš®ã®éããäºæããªã䜿ããæ¹ãªã©ãæ§ã ãªèŠå ã§äžå ·åã¯çºçããŸãã
Firebase Crashlytics ã¯ãããããã¯ã©ãã·ã¥ãéèŽåœçãšã©ãŒãèªåã§åéããŠãããåªããããŒã«ã§ããããããããã§åé¡ãçããŸãã
ãæž©ããéçšãã«ãªããã¡ãª Crashlytics ã®ç¢ºèªäœæ¥
Crashlytics ã§æŸããããšã©ãŒã¯ãéçºè ã宿çã«ç¢ºèªããŠå¯ŸåŠããå¿ èŠããããŸãããããå®éã«ã¯
- ãšã©ãŒãç©ã¿éãªã£ãŠãã: æ¥ã çºçããè€æ°ã®ãšã©ãŒã远ããããªã
- åæã®æž©ããéçš: 誰ããæ°ã¥ãããšãã«å¯Ÿå¿ããå±äººçãªéçšã«ãªããã¡
- ã¹ã¿ãã¯ãã¬ãŒã¹ãé£ãã: 人éãã¹ã¿ãã¯ãã¬ãŒã¹ã远ãã®ã¯é£ãã
ãã®èª²é¡ã解決ãããããGitHub Actions äžã§ Claude Code Action ãåãããFirebase MCP ãéã㊠Crashlytics ã®ãšã©ãŒãèªååæã»èªåä¿®æ£ããä»çµã¿ãæ§ç¯ããŸããã
å©çšããŒã«: Firebase MCP ãš Claude Code GitHub Actions
ãã®èª²é¡ã解決ããããã«ãåè¿°ã® 2ã€ã®ããŒã«ãçµã¿åãããŠäœ¿çšããŸãã
Firebase MCP ãšã¯
MCP (Model Context Protocol) ã¯ãAnthropic ãéçºãããAI ã¢ã·ã¹ã¿ã³ããå€éšãµãŒãã¹ãšå®å šã«é£æºããããã®æšæºãããã³ã«ã§ããåŸæ¥ã¯ AI ã«å€éšããŒã¿ãæž¡ãããã«æ¯å API ãåŒã³åºããŠã³ã³ããã¹ãã«å«ããå¿ èŠããããŸããããMCP ã䜿ãããšã§ AI ãçŽæ¥å€éšãµãŒãã¹ãšå¯Ÿè©±ã§ããããã«ãªããŸãã
Firebase MCP ã¯ããã® MCP ã䜿ã£ãŠ Firebase ã®åçš®ãµãŒãã¹ã«ã¢ã¯ã»ã¹ã§ããããã«ããå ¬åŒãµãŒããŒã§ãã2025幎åé ã«ç»å Žããæ¯èŒçæ°ããæ©èœã§ã以äžã®ãããªæäœãå¯èœã§ãã
- Crashlytics: ã¢ããªã®ã¯ã©ãã·ã¥ã¬ããŒãã®ååŸãšåæ
- Firebase ãããžã§ã¯ã管ç: ãããžã§ã¯ãæ å ±ã®ååŸãã¢ããªã®äžèŠ§è¡šç€º
- Firebase AI ã¢ã·ã¹ã¿ã³ã: Firebase ã«é¢ãã質åãžã®åçãå®è£ ã®ã¢ããã€ã¹
ä»åç¹ã«éèŠãªã®ã crashlytics_list_top_issues ãšããæ©èœã§ãããã䜿ããšãçŸåšæãé »ç¹ã«çºçããŠããã¯ã©ãã·ã¥ãã AI ãçŽæ¥ååŸã§ããŸãã
crashlytics_list_top_issues({
app_id: "your-app-id",
issue_type: "FATAL", // ã¯ã©ãã·ã¥ã®ã¿
issue_count: 10 // äžäœ10ä»¶
})
Firebase MCP 㯠firebase-tools ããã±ãŒãžã«å梱ãããŠããã以äžã®ã³ãã³ãã§èµ·åã§ããŸãã
npx firebase-tools@latest experimental:mcp
Claude Code GitHub Actions ãšã¯
Claude Code GitHub Actions ã¯ãGitHub Actions äžã§ ClaudeïŒAnthropic ã® AI ã¢ã·ã¹ã¿ã³ãïŒãåããããã®å
¬åŒã¢ã¯ã·ã§ã³ã§ããéåžžã® GitHub Actions ã¯ãŒã¯ãããŒã®äžã§ãClaude ã«ã³ãŒãåæãä¿®æ£ãPR äœæãªã©ã®è€éãªã¿ã¹ã¯ãä»»ããããšãã§ããŸãã
æ¬èšäºäžã§ã¯ Claude Code GitHub Actions ã® 1 action ã Claude Code Action ãšè¡šèšããŠããŸãã
äž»ãªç¹åŸŽ
- GitHub ãªããžããªãžã®çŽæ¥ã¢ã¯ã»ã¹: Claude ããªããžããªã®ã³ãŒããèªã¿æžãã§ãã
- Git æäœã®å®è¡: ãã©ã³ãäœæãã³ããããPR äœæãªã©ãèªåå
- MCP ãµãŒããŒãšã®é£æº: å€éšãµãŒãã¹ïŒFirebase MCP ãªã©ïŒãšçµã¿åãããŠäœ¿ãã
-
ã»ãã¥ãªãã£:
--allowedToolsã§å®è¡å¯èœãªæäœãå¶éã§ãã
åºæ¬çãªäœ¿ãæ¹
- name: Run Claude Code Action
uses: anthropics/claude-code-action@8a1c4371755898f67cd97006ba7c97702d5fc4bf # v1.0.16
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: |
ãã®ãªããžããªã® README.md ãæ¹åããŠãã ãã
claude_args: |
--allowedTools "Read,Edit"
2ã€ã®ããŒã«ãçµã¿åããããšäœãã§ããã®ã
Firebase MCP ãš Claude Code Action ãçµã¿åãããããšã§ã以äžã®ã¯ãŒã¯ãããŒãå®çŸã§ããŸãã
- Firebase MCP ã Crashlytics ãããšã©ãŒæ å ±ãååŸ
- Claude ããšã©ãŒã®å 容ãåæããæ ¹æ¬åå ãç¹å®ããŠä¿®æ£æ¡ãçæ
- Claude Code Action ãä¿®æ£ Pull Request (PR) ãäœæ
ã€ãŸããããšã©ãŒã®æ€ç¥ããããä¿®æ£ PR ã®äœæããŸã§ãå®å šèªååããããšãã§ããŸãã
ã¯ãŒã¯ãããŒã®å®è£
ããã§ã¯ãå®éã®ã¯ãŒã¯ãããŒå®è£ ãèŠãŠãããŸãããã
åææ¡ä»¶
以äžã®æºåãå¿ èŠã§ãã
- Firebase ãããžã§ã¯ã: Crashlytics ãæå¹åãããŠããããš
-
Firebase ãµãŒãã¹ã¢ã«ãŠã³ã:
- Firebase Console ããäœæ
-
FIREBASE_TOKENãšã㊠GitHub Secrets ã«ä¿åïŒèªèšŒããŒã¯ã³åœ¢åŒïŒ
-
Anthropic API ããŒ:
-
ANTHROPIC_API_KEYãšã㊠GitHub Secrets ã«ä¿å
-
-
Android/iOS ã¢ããªã®èšå® â»:
- Android: ããã±ãŒãžåïŒäŸ:
com.example.appïŒ - iOS: ãã³ãã«IDïŒäŸ:
com.example.appïŒ
- Android: ããã±ãŒãžåïŒäŸ:
ã¯ãŒã¯ãããŒãã¡ã€ã«å šäœ
.github/workflows/ ã« yaml ãã¡ã€ã«ãäœæããŸãã
ãã®äŸã§ã¯æåå®è¡ãšå®æå®è¡ã©ã¡ãã§ãå©çšã§ããããã«ããŠããŸãã
name: Crashlytics Top Issues Improvements
on:
workflow_dispatch: # æåå®è¡ãå¯èœ
schedule:
- cron: "0 2 * * 1" # æ¯é±æææ¥ã®åå2æ(UTC)ã«å®è¡
jobs:
setup:
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
# Firebase MCP å©çšã®ãã CLI ãã»ããã¢ãããã
- name: Firebase Authentication
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
run: |
npx -y firebase-tools@latest projects:list
- name: Run Claude Code with Firebase MCP config
uses: anthropics/claude-code-action@8a1c4371755898f67cd97006ba7c97702d5fc4bf # v1.0.16
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }} # åŸè¿°
prompt: |
Firebase MCP ã§ Crashlytics [YOUR_PROJECT_ID] ã®ãšã©ãŒæ¹åããããã§ãã
- crashlytics_list_top_issues ã䜿ã£ãŠ Android `com.example.app` ãš iOS `com.example.app` ã§çºçããŠããäžäœã® issue_type FATAL ãåæãã
- Android ãš iOS ã§å
±éã®åé¡ãããããçæ¹ã ãã®åé¡ãããã®ã§é©åã«ã°ã«ãŒãã³ã°ãã
- ã°ã«ãŒãã³ã°ããå顿¯ã«æ°èŠã§ææ°ã® main branch ãã branch ãåãæ¿ããŠä¿®æ£ãè¡ã
- ä¿®æ£ããéã«ã¯ firebase_consult_assistant, git ãš gh pr ãçšãããé©åãªå·®åã git commit ããäžã§ PR ãäœæãã
- ããããã® PR ã¿ã€ãã«ã«ã¯é©åãªååãä»ããäžã§ [CrashlyticsTopIssues] ãã¬ãã£ã¯ã¹ãå ãããæŠèŠã«åé¡ã®èª¬æãšãä¿®æ£å
容ãèšèŒãããLabels ã« github_actions ãæå®ããMilestone 㯠gh api ãçšããŠãã®æç¹ã§äžçªå€§ããããŒãžã§ã³ã® milestone ãæå®ãã
claude_args: |
--mcp-config path/to/firebase-mcp.config.json
--allowedTools "Read,
Edit,
Bash(gh pr:*),
Bash(gh api:*),
Bash(git:*),
mcp__firebase__firebase_get_environment,
mcp__firebase__firebase_get_project,
mcp__firebase__firebase_list_apps,
mcp__firebase__firebase_consult_assistant,
mcp__firebase__crashlytics_list_top_issues"
MCP èšå®ãã¡ã€ã«
firebase-mcp.config.json ãäœæããŸãã
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
èªèšŒåšãã®èŠåŽè©±
å®è£ æããã®ä»çµã¿ãåãããŸã§ã«è©Šè¡é¯èª€ããã£ãã®ã§ç°¡åã«ç޹ä»ããŸãã
èŠåŽãããã€ã³ã1: Claude Code Action ã®åäœç¢ºèª
æãæéãåãããã®ã GitHub Actions äžã§ã® Claude Code Action ã®åäœç¢ºèªã§ããã
ããŒã«ã«ç°å¢ã§ã¯åäœãããã®ããGitHub Actions äžã§ã¯ç°å¢ãç°ãªãããæãã¬ãšããã§å€±æããŸãããŸããClaude Code Action ã¯å®è¡ã«æ°åãããããäžåºŠã®æ€èšŒãµã€ã¯ã«ãé·ããããã©ã«ããã©ã³ããšã®å·®åã«ãã£ãŠ id-token ã®æš©éãšã©ãŒãçºçããåé¡ãçžãŸã£ãŠçްãã調æŽã«ãæéãèŠããŸããã
åé¿çãšããŠã¯ãã®ã³ã¡ã³ãã«ããããã« Claude Code Action ã« github_token ãæž¡ãããšãªã®ã§ãããClaude Code Action ã®èª¬æã«ãããããã«å©çšã¯æšå¥šãããŠããŸãããæ©èœå®è£ åŸã¯å ã«æ»ãã®ãè¯ãããã§ãã
èŠåŽãããã€ã³ã2: Firebase MCP ã®èªèšŒæ¹åŒ
å®è£ åœæ Firebase MCP ã«é¢ããæ å ±ãå°ãªãç¶æ ã§ãããç¹ã«èŠåŽããã®ãããŒã ã§ã®å©çšãæ³å®ããèªèšŒæ¹æ³ã§ãã
æåã¯ãµãŒãã¹ã¢ã«ãŠã³ãã® JSON ã GitHub Secrets ã«ä¿åããGOOGLE_APPLICATION_CREDENTIALS ç°å¢å€æ°ã§æå®ããæ¹æ³ã詊ããŸããã Claude Code Action ãã Firebase MCP ãžã®æ¥ç¶ã«å€±æããŸããã
調æ»ã®çµæãFirebase MCPïŒFirebase CLI ã«å梱ïŒã¯ Application Default Credentials (ADC) ã«å¯Ÿå¿ããŠããªãããšã倿ããŸããã
解決ç: FIREBASE_TOKEN ã®å©çš
æçµçã«ãFirebase CLI ã® FIREBASE_TOKEN ç°å¢å€æ°ãäœ¿ãæ¹æ³ã§è§£æ±ºããŸããã
FIREBASE_TOKEN ã¯ä»¥äžã®ã³ãã³ãã§ååŸã§ããŸãïŒãã ã deprecated ãªæ¹æ³ã§ãïŒã
firebase login:ci
å®è¡ãããšãã©ãŠã¶ã§èªèšŒåŸã«ããŒã¯ã³ã衚瀺ãããã®ã§ GitHub Secrets ã«ä¿åããŠå©çšããŸãã
ãŸãšã
Firebase MCP ãš Claude Code GitHub Actions ãçµã¿åãããããšã§ãCrashlytics ã®ãšã©ãŒå¯Ÿå¿ãå€§å¹ ã«èªååã§ããŸããããã®ä»çµã¿ã«ããèŠèœãšãããªããªããéçºè ã¯æ©èœéçºçã®å¥ã®äœæ¥ã«éäžããããšãã§ããããã«ãªããŸããã
ããã³ããã®èª¿æŽã®äœå°ã¯ãŸã ãŸã ããããšæããŸããæåºããã PR ã®å
容ã¯çãåŸãŠãããã®ãå€ããå°å
¥ããŠãã 2ã¶æã§ 6ä»¶ã®ä¿®æ£ PR ãããŒãžããã5ä»¶ãã¬ãã¥ãŒäžãšããããã«å®å®ããŠåäœããŠããŸãã
AI Award ã®ç·æ¬ã§åŒç€Ÿ 代衚åç· åœ¹ 奥西ãã¯ãã瀟å
ã®ãšã³ãžãã¢ãã奜è©ãåŸãããšãã§ããŠå¬ããã£ãã§ãã
ãã®èšäºãåããããªèª²é¡ãæ±ããŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã
We are hiring!
IVRyã§ã¯ãã€ãã³ããææ°ãã¥ãŒã¹ãåéããžã·ã§ã³ã®æ å ±ãåãåãããããäŒç€Ÿã«ã€ããŠè©³ãã話ãèããŠã¿ããããšãã£ãæ¹ã«åããŠããã£ãªã¢ç»é²ãã«ãžã¥ã¢ã«é¢è«ã®æ©äŒããçšæããŠããŸãããèå³ããæã¡ããã ããæ¹ã¯ããã²ä»¥äžã®ããŒãžãããç»é²ã»ãç³ã蟌ã¿ãã ããã
Discussion