Firebase MCP Server
공식Firebase MCP 서버를 사용하면 AI 기반 개발 도구가 Firebase 프로젝트 및 앱의 코드베이스와 작업할 수 있습니다.
Firebase MCP(으)로 무엇을 할 수 있나요?
- Firebase 프로젝트 생성 및 관리 —
firebase_create_project를 사용하여 새 프로젝트를 초기화하거나 기존 프로젝트 및 앱을 나열하도록 어시스턴트에 요청합니다. - Authentication 사용자 관리 —
auth_get_users로 사용자 세부 정보를 검색하고,auth_update_user를 통해 맞춤 클레임을 업데이트하거나 계정을 비활성화합니다. - Firestore 또는 Realtime Database 쿼리 및 업데이트 —
firebase_read_resources및 데이터베이스 관련 도구를 사용하여 문서를 읽고, 쓰고, 관리합니다. - Crashlytics로 크래시 디버깅 —
crashlytics_get_issue및crashlytics_list_events를 사용하여 이슈 세부 정보를 가져오고, 최근 크래시 이벤트를 나열하며, 메모를 추가합니다. - 보안 규칙 검증 및 검색 —
firebase_validate_security_rules로 Firestore, Storage 또는 Realtime Database 규칙의 오류를 확인합니다. - App Hosting 백엔드 모니터링 —
apphosting_list_backends를 통해 백엔드를 나열하고,apphosting_fetch_logs로 최근 빌드 또는 런타임 로그를 가져옵니다.
문서
Firebase MCP 서버
Firebase 모델 컨텍스트 프로토콜(MCP) 서버는 AI 기반 개발 도구가 Firebase 프로젝트 및 앱 코드베이스와 함께 작업할 수 있는 기능을 제공합니다. Firebase MCP 서버는 Firebase Studio, Gemini CLI, Claude Code, Cline, Cursor, VS Code Copilot, Windsurf 등 MCP 클라이언트 역할을 할 수 있는 모든 도구와 함께 작동합니다!
기능
Firebase MCP 서버를 사용하도록 구성된 편집기는 AI 기능을 활용하여 다음을 도와줄 수 있습니다:
- Firebase 프로젝트 생성 및 관리 - 새 프로젝트 초기화, 기존 프로젝트 나열, Firebase 앱 관리
- Firebase Authentication 사용자 관리 - 사용자 계정 조회, 업데이트 및 관리
- Cloud Firestore 및 Firebase SQL Connect 작업 - 데이터베이스 문서 쿼리, 읽기, 쓰기 및 관리
- Firebase SQL Connect 스키마 조회 - AI 지원을 통한 스키마 및 작업 생성
- 보안 규칙 이해 - Firestore, Cloud Storage, Realtime Database의 보안 규칙 검증 및 조회
- Firebase Cloud Messaging으로 메시지 전송 - 기기 및 주제에 푸시 알림 전송
- Crashlytics 데이터 접근 - 문제 디버깅, 충돌 보고서 확인, 충돌 분석 관리
- App Hosting에 배포 - 백엔드 모니터링 및 로그 조회
- Realtime Database 작업 - 실시간 데이터 읽기 및 쓰기
- Cloud Functions 로그 쿼리 - 함수 실행 로그 조회 및 분석
- Remote Config 관리 - 원격 구성 템플릿 가져오기 및 업데이트
일부 도구는 Gemini in Firebase를 사용하여 다음을 도와줍니다:
- Firebase SQL Connect 스키마 및 작업 생성
- Firebase 제품에 대해 Gemini에 문의
중요: Gemini in Firebase는 그럴듯해 보이지만 사실과 다른 출력을 생성할 수 있습니다. Google의 견해를 대표하지 않는 부정확한 정보로 응답할 수 있습니다. Gemini의 모든 출력을 사용하기 전에 검증하고, 테스트되지 않은 생성 코드를 프로덕션 환경에서 사용하지 마세요. 개인 식별 정보(PII)나 사용자 데이터를 채팅에 입력하지 마세요.
Gemini in Firebase 및 데이터 사용 방식에 대해 자세히 알아보세요.
설치 및 설정
사전 요구 사항
Node.js 및 npm이 정상적으로 설치되어 있는지 확인하세요.
기본 구성
Firebase MCP 서버는 표준 I/O(stdio)를 전송 매체로 지원하는 모든 MCP 클라이언트와 함께 작동할 수 있습니다. Firebase MCP 서버가 도구 호출을 수행할 때는 실행 중인 환경에서 Firebase CLI를 인증하는 것과 동일한 사용자 자격 증명을 사용합니다.
다음은 인기 있는 AI 지원 도구에 대한 구성 지침입니다:
Gemini CLI
Gemini CLI용 Firebase 확장 프로그램을 설치합니다:
gemini extensions install https://github.com/firebase/agent-skills
Claude Code
옵션 1: 플러그인을 통한 설치 (권장)
Claude Code에서 Firebase MCP 서버를 설정하는 가장 쉬운 방법은 공식 Firebase 플러그인을 설치하는 것입니다:
-
Claude 플러그인용 Firebase 마켓플레이스를 추가합니다:
claude plugin marketplace add firebase/firebase-tools -
Firebase용 Claude 플러그인을 설치합니다:
claude plugin install firebase@firebase -
설치를 확인합니다:
claude plugin
옵션 2: MCP 서버 수동 구성
또는 다음을 실행하여 Firebase MCP 서버를 수동으로 구성할 수 있습니다:
claude mcp add firebase npx -- -y firebase-tools@latest mcp
다음을 실행하여 설치를 확인할 수 있습니다:
claude mcp list
다음과 같이 표시되어야 합니다:
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Cursor
프로젝트 디렉터리의 .cursorrules에 추가하거나 Cursor 설정에서 구성합니다:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json에 추가합니다:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Firebase Studio
Firebase Studio에서 Firebase MCP 서버를 사용하도록 구성하려면 구성 파일을 편집하거나 생성합니다: .idx/mcp.json
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
사용법
구성이 완료되면 MCP 서버가 자동으로 AI 어시스턴트에 Firebase 기능을 제공합니다. 다음을 수행할 수 있습니다:
- AI에게 Firebase 서비스 설정 도움 요청
- Firestore 데이터베이스 쿼리
- 인증 사용자 관리
- Firebase Hosting에 배포
- Crashlytics 문제 디버깅
- 그 외 다양한 작업!
사용 가능한 도구 및 리소스의 전체 목록은 아래 서버 기능 섹션을 참조하세요.
문서
자세한 내용은 공식 Firebase MCP 서버 문서를 방문하세요.
서버 기능
Firebase MCP 서버는 세 가지 유형의 기능을 제공합니다: 도구(작업을 수행하는 함수), 프롬프트(재사용 가능한 명령 템플릿), 리소스(AI 모델용 문서 파일).
| 도구 이름 | 기능 그룹 | 설명 |
|---|---|---|
| apphosting_fetch_logs | apphosting | 지정된 App Hosting 백엔드의 최근 로그를 가져오는 데 사용합니다. buildLogs이 지정된 경우, 최신 빌드의 빌드 프로세스 로그가 반환됩니다. 가장 최근 로그가 먼저 나열됩니다. |
| apphosting_list_backends | apphosting | 현재 프로젝트의 App Hosting 백엔드 목록을 가져오는 데 사용합니다. 빈 목록은 백엔드가 없음을 의미합니다. uri는 백엔드의 공개 URL입니다. 작동 중인 백엔드에는 run_service 항목을 포함하는 managed_resources 배열이 있습니다. 해당 run_service.service는 App Hosting 백엔드를 제공하는 Cloud Run 서비스의 리소스 이름입니다. 해당 이름의 마지막 세그먼트는 서비스 ID입니다. domains은 백엔드와 연결된 도메인 목록입니다. 유형은 CUSTOM 또는 DEFAULT입니다. 모든 백엔드에는 DEFAULT 도메인이 있어야 합니다. 사용자가 백엔드에 연결하는 데 사용할 실제 도메인은 도메인 리소스 이름의 마지막 매개변수입니다. 사용자 정의 도메인이 올바르게 설정된 경우 상태가 ACTIVE으로 끝납니다. |
| auth_get_users | auth | UID 목록 또는 이메일 목록을 기반으로 하나 이상의 Firebase Auth 사용자를 가져오는 데 사용합니다. |
| auth_update_user | auth | 특정 사용자 계정을 비활성화, 활성화 또는 사용자 정의 클레임을 설정하는 데 사용합니다. |
| auth_set_sms_region_policy | auth | 국가 코드의 ALLOW 또는 DENY 목록을 기반으로 문자 메시지를 수신할 수 있는 지역을 제한하는 Firebase Authentication용 SMS 지역 정책을 설정하는 데 사용합니다. 이 정책은 설정 시 기존 정책을 덮어씁니다. |
| firebase_login | core | 사용자를 Firebase CLI 및 Firebase MCP 서버에 로그인시키는 데 사용합니다. Google 계정이 필요하며, Firebase 프로젝트를 생성하고 작업하려면 로그인이 필요합니다. |
| firebase_logout | core | 사용자를 Firebase CLI 및 Firebase MCP 서버에서 로그아웃시키는 데 사용합니다. |
| firebase_validate_security_rules | core | Firestore, Storage 또는 Realtime Database용 Firebase 보안 규칙의 구문 및 유효성 검사 오류를 확인하는 데 사용합니다. |
| firebase_get_project | core | 현재 활성 Firebase 프로젝트에 대한 정보를 가져오는 데 사용합니다. |
| firebase_list_apps | core | 현재 활성 Firebase 프로젝트에 등록된 Firebase 앱 목록을 가져오는 데 사용합니다. Firebase 앱은 iOS, Android 또는 Web일 수 있습니다. |
| firebase_list_projects | core | 로그인한 사용자가 액세스할 수 있는 Firebase 프로젝트 목록을 가져오는 데 사용합니다. |
| firebase_get_sdk_config | core | Firebase 앱의 Firebase 구성 정보를 가져오는 데 사용합니다. 현재 활성 Firebase 프로젝트에 등록된 Firebase 앱의 플랫폼 또는 Firebase 앱 ID 중 하나를 지정해야 합니다. |
| firebase_create_project | core | 새로운 Firebase 프로젝트를 생성할 때 사용합니다. |
| firebase_create_app | core | 현재 활성 Firebase 프로젝트에 새로운 Firebase 앱을 생성할 때 사용합니다. Firebase 앱은 iOS, Android, Web 유형이 될 수 있습니다. |
| firebase_create_android_sha | core | 지정된 SHA 인증서 해시를 지정된 Firebase Android 앱에 추가할 때 사용합니다. |
| firebase_get_environment | core | Firebase CLI 및 Firebase MCP 서버의 현재 Firebase 환경 구성을 가져올 때 사용합니다. 여기에는 현재 인증된 사용자, 프로젝트 디렉터리, 활성 Firebase 프로젝트 등이 포함됩니다. 모든 도구는 사용자 인증을 필요로 하지만, 모든 정보가 모든 도구에 필요한 것은 아닙니다. 어떤 정보가 필요한지 도구 요구 사항을 확인하세요. |
| firebase_update_environment | core | Firebase CLI 및 Firebase MCP 서버의 환경 구성을 업데이트할 때 사용합니다. 프로젝트 디렉터리, 활성 프로젝트, 활성 사용자 계정, 서비스 약관 동의 등을 설정할 수 있습니다. 현재 구성된 환경을 보려면 firebase_get_environment을(를) 사용하세요. |
| firebase_init | core | 작업 공간에서 선택한 Firebase 서비스(Cloud Firestore 데이터베이스, Firebase SQL Connect, Firebase Realtime Database, Firebase AI Logic)를 초기화할 때 사용합니다. 모든 서비스는 선택 사항이며, 설정하려는 제품만 지정하세요. 기존 프로젝트 디렉터리에 새 기능을 초기화할 수 있지만, 기존 기능을 다시 초기화하면 구성이 덮어쓰일 수 있습니다. 초기화된 기능을 배포하려면 firebase_init 도구 실행 후 firebase deploy 명령을 실행하세요. |
| firebase_get_security_rules | core | 지정된 Firebase 서비스의 보안 규칙을 가져올 때 사용합니다. 해당 서비스에 여러 인스턴스가 있는 경우 기본 인스턴스의 규칙이 반환됩니다. |
| firebase_read_resources | core | firebase:// 리소스의 내용을 읽거나 사용 가능한 리소스를 나열할 때 사용합니다. |
| crashlytics_create_note | crashlytics | Crashlytics 이슈에 노트를 추가합니다. |
| crashlytics_delete_note | crashlytics | Crashlytics 이슈에서 노트를 삭제합니다. |
| crashlytics_get_issue | crashlytics | 디버깅의 시작점으로 사용할 수 있는 Crashlytics 이슈 데이터를 가져옵니다. |
| crashlytics_list_events | crashlytics | 주어진 필터와 일치하는 가장 최근 이벤트를 나열할 때 사용합니다. 이슈에 대한 샘플 크래시 및 예외를 가져오는 데 사용할 수 있으며, 여기에는 스택 트레이스 및 디버깅에 유용한 기타 데이터가 포함됩니다. |
| crashlytics_batch_get_events | crashlytics | 리소스 이름으로 특정 이벤트를 가져옵니다. 이슈에 대한 샘플 크래시 및 예외를 가져오는 데 사용할 수 있으며, 여기에는 스택 트레이스 및 디버깅에 유용한 기타 데이터가 포함됩니다. |
| crashlytics_list_notes | crashlytics | Crashlytics에서 이슈에 대한 모든 노트를 나열할 때 사용합니다. |
| crashlytics_get_report | crashlytics | Crashlytics에서 수치 보고서를 요청할 때 사용합니다. 결과는 이벤트 합계와 영향을 받은 사용자 수를 해당 보고서에 적합한 차원으로 그룹화하여 집계합니다. 에이전트는 호출하기 전에 firebase_read_resources 도구를 사용하여 Firebase Crashlytics 보고서 가이드를 읽고 보고서 요청을 위한 중요한 전제 조건과 결과 해석 방법을 이해해야 합니다. |
| crashlytics_update_issue | crashlytics | Crashlytics 이슈의 상태를 업데이트할 때 사용합니다. |
| realtimedatabase_get_data | realtimedatabase | Firebase 실시간 데이터베이스의 지정된 위치에서 데이터를 검색할 때 사용합니다. |
| realtimedatabase_set_data | realtimedatabase | Firebase 실시간 데이터베이스의 지정된 위치에 데이터를 쓸 때 사용합니다. |
| dataconnect_build | dataconnect | Firebase SQL Connect 스키마, 작업 및/또는 커넥터를 컴파일하고 빌드 오류를 확인할 때 사용합니다. |
| dataconnect_list_services | dataconnect | 기존 로컬 및 백엔드 Firebase SQL Connect 서비스를 나열할 때 사용합니다. |
| dataconnect_execute | dataconnect | SQL Connect 서비스 또는 해당 에뮬레이터에 대해 GraphQL 작업을 실행할 때 사용합니다. |
| firestore_delete_document | firestore | 전체 문서 경로로 현재 프로젝트의 데이터베이스에서 Firestore 문서를 삭제할 때 사용합니다. 문서의 정확한 경로를 알고 있을 때 사용하세요. |
| firestore_get_documents | firestore | 전체 문서 경로로 현재 프로젝트의 데이터베이스에서 하나 이상의 Firestore 문서를 검색할 때 사용합니다. 문서의 정확한 경로를 알고 있을 때 사용하세요. |
| firestore_list_collections | firestore | 현재 프로젝트의 Firestore 데이터베이스에서 컬렉션 목록을 검색할 때 사용합니다. |
| firestore_query_collection | firestore | 전체 문서 경로가 있는 컬렉션을 통해 현재 프로젝트의 데이터베이스에 있는 컬렉션에서 하나 이상의 Firestore 문서를 검색할 때 사용합니다. 컬렉션의 정확한 경로와 문서에 적용할 필터링 절을 알고 있을 때 사용하세요. |
| functions_get_logs | functions | Google Cloud Logging 고급 필터를 사용하여 Cloud Functions 로그 항목 페이지를 검색할 때 사용합니다. |
| functions_list_functions | functions | Firebase 프로젝트에 배포된 모든 함수를 나열합니다. |
| messaging_send_message | messaging | Firebase Cloud Messaging 등록 토큰 또는 주제로 메시지를 보낼 때 사용합니다. 특정 호출에서는 registration_token 또는 topic 중 하나만 제공할 수 있습니다. |
| remoteconfig_get_template | remoteconfig | 현재 활성 Firebase 프로젝트에서 지정된 Firebase Remote Config 템플릿을 가져오려면 이 도구를 사용하세요. |
| remoteconfig_update_template | remoteconfig | 프로젝트에 새 Remote Config 템플릿을 게시하거나 특정 버전으로 롤백하려면 이 도구를 사용하세요. |
| storage_get_object_download_url | storage | Firebase용 Cloud Storage 버킷에 있는 객체의 다운로드 URL을 가져오려면 이 도구를 사용하세요. |
| --------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| firebase:deploy | core | Firebase에 리소스를 배포하려면 이 명령어를 사용하세요. 인수: <prompt> (선택 사항): 배포에 관해 제공하고 싶은 특정 지침 |
| firebase:init | core | 백엔드 및 AI 기능과 같은 Firebase 서비스를 설정하려면 이 명령어를 사용하세요. |
| firestore:generate_security_rules | firestore | 프로젝트를 위한 안전한 Firebase Firestore 보안 규칙과 해당 단위 테스트를 생성합니다. |
| storage:generate_security_rules | storage | 프로젝트를 위한 안전한 Firebase Storage 보안 규칙과 해당 단위 테스트를 생성합니다. |
| crashlytics:connect | crashlytics | Firebase 애플리케이션의 Crashlytics 데이터에 접근하려면 이 명령어를 사용하세요. |
| 리소스 이름 | 설명 |
|---|---|
| app_id_guide | Firebase 앱 ID 가이드: 현재 프로젝트에서 Firebase 앱 ID를 선택하는 과정을 코딩 에이전트에게 안내합니다. |
| crashlytics_investigations_guide | Firebase Crashlytics 조사 가이드: Crashlytics 이슈에 보고된 버그를 조사할 때 코딩 에이전트를 안내하며, 충돌 진단 및 수정 절차를 포함합니다. |
| crashlytics_issues_guide | Firebase Crashlytics 이슈 가이드: Crashlytics 이슈를 다룰 때 코딩 에이전트를 안내하며, 우선순위 규칙과 충돌 진단 및 수정 절차를 포함합니다. |
| crashlytics_reports_guide | Firebase Crashlytics 보고서 가이드: 적절한 필터 설정 방법과 지표 이해 방법을 포함하여 Crashlytics 보고서 요청 과정을 코딩 에이전트에게 안내합니다. 에이전트는 보고서를 요청하기 전에 이 가이드를 읽어야 합니다. |
| backend_init_guide | Firebase 백엔드 초기화 가이드: 현재 프로젝트에서 Firebase 백엔드 서비스를 구성하는 과정을 코딩 에이전트에게 안내합니다. |
| ai_init_guide | Firebase GenAI 초기화 가이드: Firebase를 활용하여 현재 프로젝트에서 GenAI 기능을 구성하는 과정을 코딩 에이전트에게 안내합니다. |
| firestore_init_guide | Firestore 초기화 가이드: 현재 프로젝트에서 Firestore를 구성하는 과정을 코딩 에이전트에게 안내합니다. |
| firestore_rules_init_guide | Firestore 규칙 초기화 가이드: 프로젝트에서 Firestore 보안 규칙을 설정하는 과정을 코딩 에이전트에게 안내합니다. |
| auth_init_guide | Firebase Authentication 초기화 가이드: 현재 프로젝트에서 Firebase Authentication을 구성하는 과정을 코딩 에이전트에게 안내합니다. |
| hosting_init_guide | Firebase Hosting 배포 가이드: 현재 프로젝트에서 Firebase Hosting에 배포하는 과정을 코딩 에이전트에게 안내합니다. |
| docs | Firebase 문서: Firebase 문서에서 일반 텍스트 콘텐츠를 로드합니다. 예: https://firebase.google.com/docs/functions은 firebase://docs/functions이 됩니다. |