Firebase MCP 서버

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 클라우드 메시징으로 메시지 보내기

이는 일부 목록일 뿐입니다. 편집기에서 사용할 수 있는 도구의 전체 목록은 서버 기능 섹션을 참고하세요.

시작하기 전에

  1. Node.js 및 npm이 설치되어 있고 작동하는지 확인합니다.

  2. 다음 명령어를 실행하여 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_directoryset_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로 끝나는 상태가 표시됩니다.