Bạn có thể sử dụng máy chủ MCP của Firebase để cho phép các công cụ phát triển dựa trên AI hoạt động với dự án Firebase của bạn. Máy chủ Firebase MCP hoạt động với mọi công cụ có thể đóng vai trò là một ứng dụng MCP, bao gồm cả Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor và nhiều công cụ khác.
Một trình chỉnh sửa được định cấu hình để sử dụng máy chủ MCP của Firebase có thể sử dụng các chức năng AI của máy chủ này để giúp bạn:
- Tạo và quản lý dự án Firebase
- Quản lý người dùng Xác thực Firebase
- Làm việc với dữ liệu trong Cloud Firestore và Firebase Data Connect
- Truy xuất giản đồ Firebase Data Connect
- Tìm hiểu các quy tắc bảo mật cho Firestore và Cloud Storage cho Firebase
- Gửi thông báo bằng Giải pháp gửi thông báo qua đám mây của Firebase
Một số công cụ sử dụng Gemini trong Firebase để giúp bạn:
- Tạo giản đồ và các thao tác Firebase Data Connect
- Hỏi Gemini về các sản phẩm của Firebase
Đây chỉ là danh sách một phần; hãy xem phần các chức năng của máy chủ để biết danh sách đầy đủ các công cụ mà trình chỉnh sửa của bạn có thể sử dụng.
Khi thực hiện các lệnh gọi công cụ, máy chủ MCP của Firebase sẽ sử dụng cùng thông tin đăng nhập của người dùng để uỷ quyền cho Firebase CLI trong môi trường mà máy chủ đang chạy. Đây có thể là người dùng đã đăng nhập hoặc Thông tin đăng nhập mặc định của ứng dụng, tuỳ thuộc vào môi trường.
Trước khi bắt đầu
Đảm bảo bạn đã cài đặt Node.js và npm đang hoạt động.
Thiết lập ứng dụng MCP
Máy chủ Firebase MCP có thể hoạt động với mọi ứng dụng MCP hỗ trợ I/O tiêu chuẩn (stdio) làm phương tiện truyền tải. Sau đây là hướng dẫn cụ thể cho một số công cụ phổ biến:
Cấu hình cơ bản
Firebase Studio
Để định cấu hình Firebase Studio sử dụng máy chủ Firebase MCP, hãy chỉnh sửa hoặc tạo tệp cấu hình: .idx/mcp.json
.
Nếu tệp này chưa tồn tại, hãy tạo tệp bằng cách nhấp chuột phải vào thư mục mẹ rồi chọn New file (Tệp mới). Thêm nội dung sau vào tệp:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Gemini CLI và Gemini Code Assist
Để định cấu hình Gemini CLI hoặc Gemini Code Assist sử dụng máy chủ Firebase MCP, hãy chỉnh sửa hoặc tạo(các) tệp cấu hình:
- Trong dự án của bạn:
.gemini/settings.json
- Trong thư mục gốc:
~/.gemini/settings.json
Nếu tệp này chưa tồn tại, hãy tạo tệp bằng cách nhấp chuột phải vào thư mục mẹ rồi chọn New file (Tệp mới). Thêm nội dung sau vào tệp:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Claude Desktop
Để định cấu hình Claude Desktop sử dụng máy chủ Firebase MCP, hãy chỉnh sửa tệp claude_desktop_config.json
. Bạn có thể mở hoặc tạo tệp này trong trình đơn Claude > Cài đặt. Chọn thẻ Nhà phát triển, rồi nhấp vào Chỉnh sửa cấu hình.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Mã Claude
Để thiết lập Claude Code sử dụng máy chủ Firebase MCP, hãy chạy lệnh sau trong thư mục ứng dụng của bạn:
claude mcp add firebase npx -- -y firebase-tools@latest experimental:mcp
Bạn có thể xác minh quá trình cài đặt bằng cách chạy:
claude mcp list
Chương trình sẽ hiển thị:
firebase: npx -y firebase-tools@latest experimental:mcp - ✓ Connected
Cline
Để định cấu hình Cline sử dụng máy chủ Firebase MCP, hãy chỉnh sửa tệp cline_mcp_settings.json
. Bạn có thể mở hoặc tạo tệp này bằng cách nhấp vào biểu tượng Máy chủ MCP ở đầu ngăn Cline, sau đó nhấp vào nút Định cấu hình máy chủ MCP.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"],
"disabled": false
}
}
}
Con trỏ
Để định cấu hình Cursor sử dụng máy chủ MCP của Firebase, hãy chỉnh sửa tệp .cursor/mcp.json
(chỉ định cấu hình một dự án cụ thể) hoặc tệp ~/.cursor/mcp.json
(để cung cấp máy chủ MCP trong tất cả các dự án):
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
Visual Studio Code Copilot
Để định cấu hình một dự án, hãy chỉnh sửa tệp .vscode/mcp.json
trong không gian làm việc của bạn:
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
Để cung cấp máy chủ trong mọi dự án bạn mở, hãy chỉnh sửa cài đặt người dùng:
"mcp": {
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Trình chỉnh sửa Windsurf
Để định cấu hình Windsurf Editor, hãy chỉnh sửa tệp ~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
Cấu hình không bắt buộc
Ngoài cấu hình cơ bản cho mỗi ứng dụng (như đã trình bày trước đó), bạn có thể chỉ định 2 thông số không bắt buộc:
--dir ABSOLUTE_DIR_PATH
: Đường dẫn tuyệt đối của một thư mục chứafirebase.json
, để đặt bối cảnh dự án cho máy chủ MCP. Nếu bạn không chỉ định, các công cụget_project_directory
vàset_project_directory
sẽ có sẵn và thư mục mặc định sẽ là thư mục đang hoạt động nơi máy chủ MCP được khởi động.--only FEATURE_1,FEATURE_2
: Danh sách được phân tách bằng dấu phẩy gồm các nhóm tính năng cần kích hoạt. Sử dụng chế độ này để giới hạn các công cụ chỉ ở những tính năng mà bạn đang sử dụng. Xin lưu ý rằng các công cụ cốt lõi luôn có sẵn
Ví dụ:
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "experimental:mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Các chức năng của máy chủ MCP
Bảng sau đây liệt kê các công cụ mà máy chủ MCP cung cấp. Bạn cũng có thể xem thông tin này bằng lệnh:
npx firebase-tools@latest experimental:mcp --generate-tool-list
Tên công cụ | Nhóm tính năng | Mô tả |
---|---|---|
firebase_login | core | Đăng nhập người dùng vào Firebase CLI và máy chủ MCP. |
firebase_logout | core | Đăng xuất CLI khỏi Firebase |
firebase_get_project | core | Truy xuất thông tin về dự án Firebase hiện đang hoạt động. |
firebase_list_apps | core | Truy xuất các ứng dụng đã đăng ký trong dự án Firebase hiện tại. |
firebase_get_admin_sdk_config | core | Lấy cấu hình Admin SDK cho dự án hiện tại. |
firebase_list_projects | core | Truy xuất danh sách các dự án Firebase cho đến tổng số lượng được chỉ định. |
firebase_get_sdk_config | core | Truy xuất thông tin cấu hình SDK Firebase cho nền tảng được chỉ định. Bạn phải chỉ định một nền tảng hoặc app_id. |
firebase_create_project | core | Tạo một dự án Firebase mới. |
firebase_create_app | core | Tạo một ứng dụng mới trong dự án Firebase cho Web, iOS hoặc Android. |
firebase_create_android_sha | core | Thêm hàm băm chứng chỉ SHA vào một ứng dụng Android hiện có. |
firebase_consult_assistant | core | Sử dụng một trợ lý AI chuyên về mọi khía cạnh của Firebase. Hãy sử dụng công cụ này để nhận được thông tin chi tiết, các phương pháp hay nhất, các bước khắc phục sự cố, ví dụ về mã và trợ giúp theo bối cảnh liên quan đến các dịch vụ, tính năng và cấu hình dự án của Firebase. Chẳng hạn như các câu hỏi về Firestore, Xác thực, Cloud Functions, Hosting, Storage, Analytics và nhiều dịch vụ khác. Công cụ này cũng có thể cung cấp thông tin chi tiết dựa trên ngữ cảnh dự án Firebase hiện tại. |
firebase_get_environment | core | Truy xuất thông tin về môi trường Firebase hiện tại, bao gồm cả người dùng đã xác thực hiện tại, thư mục dự án, dự án đang hoạt động và nhiều thông tin khác. |
firebase_update_environment | core | Cập nhật cấu hình môi trường Firebase, chẳng hạn như thư mục dự án, dự án đang hoạt động, tài khoản người dùng đang hoạt động, v.v. Sử dụng firebase_get_environment để xem môi trường hiện được định cấu hình. |
firebase_init | core | Khởi động các tính năng Firebase đã chọn trong không gian làm việc (Firestore, Data Connect, Cơ sở dữ liệu theo thời gian thực). Bạn không bắt buộc phải sử dụng tất cả các tính năng; chỉ cung cấp những sản phẩm mà bạn muốn thiết lập. Bạn có thể khởi tạo các tính năng mới vào một thư mục dự án hiện có, nhưng việc khởi tạo lại một tính năng hiện có có thể ghi đè cấu hình. Để triển khai các tính năng đã khởi tạo, hãy chạy lệnh firebase deploy sau công cụ firebase_init . |
firestore_delete_document | firestore | Xoá các tài liệu trên Firestore khỏi cơ sở dữ liệu trong dự án hiện tại theo đường dẫn đầy đủ của tài liệu. Sử dụng tuỳ chọn này nếu bạn biết đường dẫn chính xác của một tài liệu. |
firestore_get_documents | firestore | Truy xuất một hoặc nhiều tài liệu trên Firestore từ cơ sở dữ liệu trong dự án hiện tại theo đường dẫn đầy đủ của tài liệu. Sử dụng tuỳ chọn này nếu bạn biết đường dẫn chính xác của một tài liệu. |
firestore_list_collections | firestore | Truy xuất danh sách các bộ sưu tập từ cơ sở dữ liệu Firestore trong dự án hiện tại. |
firestore_query_collection | firestore | Truy xuất một hoặc nhiều tài liệu trên Firestore từ một bộ sưu tập là cơ sở dữ liệu trong dự án hiện tại theo một bộ sưu tập có đường dẫn đầy đủ đến tài liệu. Sử dụng phương thức này nếu bạn biết đường dẫn chính xác của một bộ sưu tập và mệnh đề lọc mà bạn muốn cho tài liệu. |
firestore_get_rules | firestore | Truy xuất các quy tắc bảo mật Firestore đang hoạt động cho dự án hiện tại. |
firestore_validate_rules | firestore | Kiểm tra nguồn Quy tắc Firestore được cung cấp để tìm lỗi cú pháp và xác thực. Cung cấp MỘT TRONG HAI: mã nguồn để xác thực HOẶC đường dẫn đến tệp nguồn. |
auth_get_user | auth | Truy xuất người dùng dựa trên địa chỉ email, số điện thoại hoặc UID. |
auth_disable_user | auth | Tắt hoặc bật người dùng dựa trên UID. |
auth_list_users | auth | Truy xuất tất cả người dùng trong dự án cho đến giới hạn được chỉ định. |
auth_set_claim | auth | Đặt một câu lệnh xác nhận tuỳ chỉnh trên tài khoản của một người dùng cụ thể. Dùng để tạo các giá trị đáng tin cậy được liên kết với một người dùng, ví dụ: đánh dấu họ là quản trị viên. Kích thước của các khai báo bị giới hạn và tên cũng như giá trị của các khai báo phải ngắn gọn. Chỉ định MỘT TRONG CÁC tham số value hoặc json_value . |
auth_set_sms_region_policy | auth | Đặt Chính sách khu vực SMS cho Firebase Auth để hạn chế những khu vực có thể nhận tin nhắn văn bản dựa trên danh sách CHO PHÉP hoặc TỪ CHỐI gồm các mã quốc gia. Chính sách này sẽ ghi đè mọi chính sách hiện có khi được đặt. |
dataconnect_build | dataconnect | Sử dụng lệnh này để biên dịch giản đồ, các thao tác và/hoặc trình kết nối Firebase Data Connect, đồng thời kiểm tra lỗi bản dựng. |
dataconnect_generate_schema | dataconnect | Tạo một Sơ đồ kết nối dữ liệu Firebase dựa trên nội dung mô tả của người dùng về một ứng dụng. |
dataconnect_generate_operation | dataconnect | Tạo một truy vấn hoặc đột biến Firebase Data Connect duy nhất dựa trên giản đồ hiện được triển khai và câu lệnh được cung cấp. |
dataconnect_list_services | dataconnect | Liệt kê các dịch vụ Firebase Data Connect cục bộ và phụ trợ hiện có |
dataconnect_execute | dataconnect | Thực thi một thao tác GraphQL đối với dịch vụ Data Connect hoặc trình mô phỏng của dịch vụ đó. |
storage_get_rules | lượng nước giữ lại | Truy xuất các quy tắc bảo mật Storage đang hoạt động cho dự án hiện tại. |
storage_validate_rules | lượng nước giữ lại | Kiểm tra nguồn Quy tắc lưu trữ được cung cấp để tìm lỗi cú pháp và xác thực. Cung cấp MỘT TRONG HAI: mã nguồn để xác thực HOẶC đường dẫn đến tệp nguồn. |
storage_get_object_download_url | lượng nước giữ lại | Truy xuất URL tải xuống cho một đối tượng trong Firebase Storage. |
messaging_send_message | nhắn tin | Gửi thông báo đến một mã thông báo đăng ký hoặc chủ đề của Giải pháp gửi thông báo qua đám mây của Firebase. CHỈ ĐƯỢC cung cấp MỘT trong hai thuộc tính registration_token hoặc topic trong một cuộc gọi cụ thể. |
remoteconfig_get_template | remoteconfig | Truy xuất một mẫu cấu hình từ xa cho dự án |
remoteconfig_publish_template | remoteconfig | Xuất bản một mẫu cấu hình từ xa mới cho dự án |
remoteconfig_rollback_template | remoteconfig | Khôi phục về một phiên bản cụ thể của mẫu Cấu hình từ xa cho một dự án |
crashlytics_add_note | crashlytics | Thêm ghi chú vào một vấn đề trong Crashlytics. |
crashlytics_delete_note | crashlytics | Xoá ghi chú khỏi một vấn đề trong Crashlytics. |
crashlytics_get_issue_details | crashlytics | Lấy thông tin chi tiết về một vấn đề cụ thể trong Crashlytics. |
crashlytics_get_sample_crash_for_issue | crashlytics | Lấy sự cố mẫu cho một vấn đề. |
crashlytics_list_notes | crashlytics | Liệt kê tất cả ghi chú cho một vấn đề trong Crashlytics. |
crashlytics_list_top_devices | crashlytics | Liệt kê các thiết bị hàng đầu từ Crashlytics cho một ứng dụng. |
crashlytics_list_top_issues | crashlytics | Liệt kê các sự cố hàng đầu từ crashlytics xảy ra trong ứng dụng. |
crashlytics_list_top_operating_systems | crashlytics | Liệt kê các hệ điều hành hàng đầu từ Crashlytics cho một ứng dụng. |
crashlytics_list_top_versions | crashlytics | Liệt kê các phiên bản hàng đầu của một ứng dụng trên Crashlytics. |
crashlytics_update_issue | crashlytics | Cập nhật trạng thái của một vấn đề trong Crashlytics. |
apphosting_fetch_logs | apphosting | Tìm nạp nhật ký gần đây nhất cho một phần phụ trợ lưu trữ ứng dụng được chỉ định. Nếu bạn chỉ định buildLogs , thì nhật ký từ quy trình tạo cho bản dựng gần đây nhất sẽ được trả về. Nhật ký gần đây nhất sẽ được liệt kê trước. |
apphosting_list_backends | apphosting | Truy xuất danh sách các phần phụ trợ của Dịch vụ lưu trữ ứng dụng trong dự án hiện tại. Danh sách trống có nghĩa là không có phần phụ trợ nào. uri là URL công khai của phần phụ trợ. Phần phụ trợ đang hoạt động sẽ có một mảng managed_resources chứa một mục nhập run_service . run_service.service là tên tài nguyên của dịch vụ Cloud Run đang phân phát phần phụ trợ Lưu trữ ứng dụng. Phân đoạn cuối cùng của tên đó là mã nhận dạng dịch vụ. domains là danh sách các miền được liên kết với phần phụ trợ. Chúng có kiểu CUSTOM hoặc DEFAULT . Mỗi phần phụ trợ phải có một miền DEFAULT . Miền thực tế mà người dùng sẽ sử dụng để kết nối với phần phụ trợ là tham số cuối cùng của tên tài nguyên miền. Nếu được thiết lập đúng cách, miền tuỳ chỉnh sẽ có trạng thái kết thúc bằng ACTIVE . |
database_get_data | cơ sở dữ liệu | Trả về dữ liệu RTDB từ vị trí được chỉ định |
database_set_data | cơ sở dữ liệu | Ghi dữ liệu RTDB vào vị trí đã chỉ định |
database_get_rules | cơ sở dữ liệu | Lấy các quy tắc của cơ sở dữ liệu RTDB |
database_validate_rules | cơ sở dữ liệu | Xác thực các quy tắc của cơ sở dữ liệu RTDB |