Firebase MCP 서버를 사용하여 AI 기반 개발 도구를 Firebase 프로젝트에서 사용할 수 있습니다. Firebase MCP 서버는 Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor 등 MCP 클라이언트 역할을 할 수 있는 모든 도구와 호환됩니다.
Firebase MCP 서버를 사용하도록 구성된 편집기는 AI 기능을 사용하여 다음 작업을 할 수 있습니다.
- Firebase 프로젝트 만들기 및 관리
- Firebase 인증 사용자 관리
- Cloud Firestore 및 Firebase Data Connect에서 데이터 작업
- Firebase Data Connect 스키마 검색
- Firestore 및 Firebase용 Cloud Storage의 보안 규칙 이해
- Firebase 클라우드 메시징으로 메시지 보내기
이는 일부 목록일 뿐입니다. 편집기에서 사용할 수 있는 도구의 전체 목록은 서버 기능 섹션을 참고하세요.
시작하기 전에
Node.js 및 npm이 설치되어 있고 작동하는지 확인합니다.
다음 명령어를 실행하여 Firebase CLI를 인증합니다.
npx -y firebase-tools@latest login --reauth
Firebase MCP 서버는 CLI를 사용하여 Firebase 프로젝트의 인증을 처리합니다. MCP 서버를 사용하기 전에 CLI로 인증해야 합니다. 로그인하지 않고 서버를 사용하려고 하거나 인증 토큰이 만료된 경우 서버에 재인증하라는 오류 메시지가 표시됩니다.
MCP 클라이언트 설정
Firebase MCP 서버는 전송 매체로 표준 I/O(stdio)를 지원하는 모든 MCP 클라이언트와 함께 작동할 수 있습니다. 다음은 몇 가지 인기 도구에 관한 구체적인 안내입니다.
기본 구성
Claude Desktop
Firebase MCP 서버를 사용하도록 Claude Desktop을 구성하려면 claude_desktop_config.json
파일을 수정합니다. Claude > Settings(설정) 메뉴에서 이 파일을 열거나 만들 수 있습니다. Developer(개발자) 탭을 선택한 다음 Edit Config(구성 수정)을 클릭합니다.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Cline
Firebase MCP 서버를 사용하도록 Cline을 구성하려면 cline_mcp_settings.json
파일을 수정합니다. 이 파일은 Cline 창 상단의 MCP Servers 아이콘을 클릭한 다음 Configure MCP Servers(MCP 서버 구성) 버튼을 클릭하여 열거나 만들 수 있습니다.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"],
"disabled": false
}
}
}
커서
Firebase MCP 서버를 사용하도록 Cursor를 구성하려면 .cursor/mcp.json
파일(특정 프로젝트만 구성) 또는 ~/.cursor/mcp.json
파일(모든 프로젝트에서 MCP 서버를 사용 설정)을 수정합니다.
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
Visual Studio Code Copilot
단일 프로젝트를 구성하려면 작업공간에서 .vscode/mcp.json
파일을 수정합니다.
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
여는 모든 프로젝트에서 서버를 사용할 수 있도록 하려면 사용자 설정을 수정합니다.
"mcp": {
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Windsurf Editor
Windsurf Editor를 구성하려면 ~/.codeium/windsurf/mcp_config.json
파일을 수정합니다.
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
선택적 구성
앞에서 설명한 각 클라이언트의 기본 구성 외에도 지정할 수 있는 두 가지 선택적 파라미터가 있습니다.
--dir ABSOLUTE_DIR_PATH
: MCP 서버의 프로젝트 컨텍스트를 설정하기 위해firebase.json
이 포함된 디렉터리의 절대 경로입니다. 지정하지 않으면get_project_directory
및set_project_directory
도구를 사용할 수 있게 되며 기본 디렉터리는 MCP 서버가 시작된 작업 디렉터리입니다.--only FEATURE_1,FEATURE_2
: 활성화할 특성 그룹의 쉼표로 구분된 목록입니다. 이를 사용하여 활발하게 사용 중인 특성에만 노출되는 도구를 제한합니다. 핵심 도구는 항상 사용할 수 있습니다.
예를 들면 다음과 같습니다.
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "experimental:mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
MCP 서버 기능
도구 이름 | 특성 그룹 | 설명 |
---|---|---|
firebase_get_project | core | 현재 활성 상태인 Firebase 프로젝트에 관한 정보를 가져옵니다. |
firebase_list_apps | core | 현재 Firebase 프로젝트에 등록된 앱을 가져옵니다. |
firebase_get_admin_sdk_config | core | 현재 프로젝트의 Admin SDK 구성을 가져옵니다. |
firebase_list_projects | core | 지정된 총 개수까지 Firebase 프로젝트 목록을 가져옵니다. |
firebase_get_sdk_config | core | 지정된 플랫폼의 Firebase SDK 구성 정보를 가져옵니다. platform 또는 app_id를 지정해야 합니다. |
firebase_create_project | core | 새 Firebase 프로젝트를 만듭니다. |
firebase_create_app | core | Firebase 프로젝트에 웹, iOS 또는 Android용 새 앱을 만듭니다. |
firebase_create_android_sha | core | 기존 Android 앱에 SHA 인증서 해시를 추가합니다. |
firebase_get_environment | core | 현재 인증된 사용자, 프로젝트 디렉터리, 활성 프로젝트 등을 비롯하여 현재 Firebase 환경에 관한 정보를 가져옵니다. |
firebase_update_environment | core | 프로젝트 디렉터리, 활성 프로젝트, 활성 사용자 계정 등의 Firebase 환경 구성을 업데이트합니다. firebase_get_environment 를 사용하여 현재 구성된 환경을 확인합니다. |
firebase_init | core | 작업공간에서 선택한 Firebase 기능(Firestore, Data Connect, 실시간 데이터베이스)을 초기화합니다. 모든 기능은 선택사항입니다. 설정하려는 제품만 제공하세요. 새 기능을 기존 프로젝트 디렉터리로 초기화할 수 있지만 기존 기능을 다시 초기화하면 구성을 덮어쓸 수 있습니다. 초기화된 기능을 배포하려면 firebase_init 도구 뒤에 firebase deploy 명령어를 실행합니다. |
firestore_delete_document | firestore | 전체 문서 경로를 기준으로 현재 프로젝트의 데이터베이스에서 Firestore 문서를 삭제합니다. 문서의 정확한 경로를 알고 있는 경우에 사용합니다. |
firestore_get_documents | firestore | 전체 문서 경로를 기준으로 현재 프로젝트의 데이터베이스에서 Firestore 문서를 하나 이상 검색합니다. 문서의 정확한 경로를 알고 있는 경우에 사용합니다. |
firestore_list_collections | firestore | 현재 프로젝트의 Firestore 데이터베이스에서 컬렉션 목록을 가져옵니다. |
firestore_query_collection | firestore | 전체 문서 경로가 있는 컬렉션별로 현재 프로젝트의 데이터베이스에서 컬렉션에서 Firestore 문서를 하나 이상 검색합니다. 컬렉션의 정확한 경로와 문서에 적용할 필터링 절을 알고 있는 경우에 사용합니다. |
firestore_get_rules | firestore | 현재 프로젝트의 활성 Firestore 보안 규칙을 검색합니다. |
firestore_validate_rules | firestore | 제공된 Firestore 규칙 소스의 구문 및 유효성 검사 오류를 확인합니다. 유효성을 검사할 소스 코드 또는 소스 파일의 경로를 제공합니다. |
auth_get_user | auth | 이메일 주소, 전화번호 또는 UID를 기반으로 사용자를 검색합니다. |
auth_disable_user | auth | UID를 기반으로 사용자를 사용 중지하거나 사용 설정합니다. |
auth_list_users | auth | 지정된 한도까지 프로젝트의 모든 사용자를 검색합니다. |
auth_set_claim | auth | 특정 사용자의 계정에 커스텀 클레임을 설정합니다. 사용자와 연결된 신뢰할 수 있는 값을 만드는 데 사용합니다(예: 관리자로 표시). 클레임의 크기는 제한되며 이름과 값이 간결해야 합니다. value 또는 json_value 파라미터 중 하나만 지정합니다. |
auth_set_sms_region_policy | auth | 국가 코드의 허용 또는 거부 목록에 따라 문자 메시지를 받을 수 있는 지역을 제한하도록 Firebase 인증의 SMS 리전 정책을 설정합니다. 이 정책이 설정되면 기존 정책이 재정의됩니다. |
dataconnect_list_services | dataconnect | 현재 프로젝트에서 사용할 수 있는 Firebase Data Connect 서비스를 나열합니다. |
dataconnect_get_schema | dataconnect | Cloud SQL 데이터 소스 및 데이터 모델을 설명하는 GraphQL 스키마를 비롯하여 프로젝트의 Firebase Data Connect 스키마에 관한 정보를 검색합니다. |
dataconnect_get_connectors | dataconnect | 클라이언트 SDK에서 액세스할 수 있는 사전 정의된 GraphQL 쿼리가 포함된 프로젝트의 Firebase Data Connect 커넥터를 가져옵니다. |
dataconnect_execute_graphql | dataconnect | Data Connect 서비스 또는 에뮬레이터에 대해 임의의 GraphQL을 실행합니다. |
dataconnect_execute_graphql_read | dataconnect | Data Connect 서비스 또는 에뮬레이터에 대해 임의의 GraphQL 쿼리를 실행합니다. 데이터를 쓸 수 없습니다. |
dataconnect_execute_mutation | dataconnect | 서비스 또는 에뮬레이터에 대해 배포된 Data Connect 변형을 실행합니다. 데이터를 읽고 쓸 수 있습니다. |
dataconnect_execute_query | dataconnect | 서비스 또는 에뮬레이터에 대해 배포된 Data Connect 쿼리를 실행합니다. 데이터를 쓸 수 없습니다. |
storage_get_rules | storage | 현재 프로젝트의 활성 스토리지 보안 규칙을 검색합니다. |
storage_validate_rules | storage | 제공된 스토리지 규칙 소스의 구문 및 유효성 검사 오류를 확인합니다. 유효성을 검사할 소스 코드 또는 소스 파일의 경로를 제공합니다. |
storage_get_object_download_url | storage | Firebase Storage의 객체에 대한 다운로드 URL을 검색합니다. |
messaging_send_message | 메시지 | Firebase 클라우드 메시징 등록 토큰 또는 주제에 메시지를 전송합니다. 특정 호출에서 registration_token 또는 topic 중 하나만 제공할 수 있습니다. |
remoteconfig_get_template | remoteconfig | 프로젝트의 원격 구성 템플릿을 가져옵니다. |
remoteconfig_publish_template | remoteconfig | 프로젝트의 새 원격 구성 템플릿을 게시합니다. |
remoteconfig_rollback_template | remoteconfig | 프로젝트의 특정 버전의 원격 구성 템플릿으로 롤백 |
crashlytics_list_top_issues | crashlytics | 애플리케이션에서 발생한 Crashlytics의 주요 비정상 종료를 나열합니다. |
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 로 끝나는 상태가 표시됩니다. |