คุณสามารถใช้เซิร์ฟเวอร์ MCP ของ Firebase เพื่อให้เครื่องมือพัฒนาที่ทำงานด้วยระบบ AI มีความสามารถในการทำงานกับโปรเจ็กต์ Firebase เซิร์ฟเวอร์ MCP ของ Firebase ทำงานร่วมกับ เครื่องมือใดก็ได้ที่ทำหน้าที่เป็นไคลเอ็นต์ MCP รวมถึง Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor และอื่นๆ
เอดิเตอร์ที่กำหนดค่าให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase จะใช้ความสามารถของ AI เพื่อช่วยคุณในเรื่องต่อไปนี้ได้
- สร้างและจัดการโปรเจ็กต์ Firebase
- จัดการผู้ใช้การตรวจสอบสิทธิ์ Firebase
- ทำงานกับข้อมูลใน Cloud Firestore และ Firebase Data Connect
- ดึงข้อมูลสคีมา Firebase Data Connect
- ทำความเข้าใจกฎความปลอดภัยสำหรับ Firestore และ Cloud Storage for Firebase
- ส่งข้อความด้วย Firebase Cloud Messaging
เครื่องมือบางอย่างใช้ Gemini ใน Firebase เพื่อช่วยคุณในเรื่องต่อไปนี้
- สร้างสคีมาและการดำเนินการของ Firebase Data Connect
- ปรึกษา Gemini เกี่ยวกับผลิตภัณฑ์ Firebase
รายการเหล่านี้เป็นเพียงรายการบางส่วน โปรดดูรายการเครื่องมือทั้งหมดที่พร้อมใช้งานสำหรับเอดิเตอร์ในส่วนความสามารถของเซิร์ฟเวอร์
เมื่อเซิร์ฟเวอร์ MCP ของ Firebase เรียกใช้เครื่องมือ เซิร์ฟเวอร์จะใช้ข้อมูลเข้าสู่ระบบของผู้ใช้เดียวกันกับที่ให้สิทธิ์ Firebase CLI ในสภาพแวดล้อมที่กำลังทำงาน ซึ่งอาจเป็นผู้ใช้ที่เข้าสู่ระบบหรือ ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อม
ก่อนเริ่มต้น
ตรวจสอบว่าคุณได้ติดตั้ง Node.js และ npm ที่ใช้งานได้
ตั้งค่าไคลเอ็นต์ MCP
เซิร์ฟเวอร์ MCP ของ Firebase สามารถทำงานร่วมกับไคลเอ็นต์ MCP ใดก็ได้ที่รองรับ I/O มาตรฐาน (stdio) เป็นสื่อกลางในการรับส่ง วิธีการเฉพาะสำหรับเครื่องมือยอดนิยมบางอย่างมีดังนี้
การกำหนดค่าพื้นฐาน
Firebase Studio
หากต้องการกำหนดค่า Firebase Studio ให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase ให้แก้ไขหรือ
สร้างไฟล์กำหนดค่า .idx/mcp.json
หากยังไม่มีไฟล์ ให้สร้างโดยคลิกขวาที่ไดเรกทอรีหลัก แล้วเลือกไฟล์ใหม่ เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Gemini CLI และ Gemini Code Assist
หากต้องการกำหนดค่า Gemini CLI หรือ Gemini Code Assist ให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase ให้แก้ไขหรือ สร้างไฟล์การกำหนดค่า
- ในโปรเจ็กต์ของคุณ
.gemini/settings.json
- ในไดเรกทอรีหน้าแรก ให้ทำดังนี้
~/.gemini/settings.json
หากยังไม่มีไฟล์ ให้สร้างโดยคลิกขวาที่ไดเรกทอรีหลัก แล้วเลือกไฟล์ใหม่ เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Claude Desktop
หากต้องการกำหนดค่า Claude Desktop ให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase ให้แก้ไขไฟล์
claude_desktop_config.json
คุณเปิดหรือสร้างไฟล์นี้ได้จากเมนู Claude > การตั้งค่า
เลือกแท็บนักพัฒนาซอฟต์แวร์ แล้วคลิก
แก้ไขการกำหนดค่า
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Claude Code
หากต้องการกำหนดค่า Claude Code ให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase ให้เรียกใช้คำสั่งต่อไปนี้ในโฟลเดอร์แอป
claude mcp add firebase npx -- -y firebase-tools@latest experimental:mcp
คุณยืนยันการติดตั้งได้โดยเรียกใช้คำสั่งต่อไปนี้
claude mcp list
โดยจะแสดงข้อมูลต่อไปนี้
firebase: npx -y firebase-tools@latest experimental:mcp - ✓ Connected
Cline
หากต้องการกำหนดค่า Cline ให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase ให้แก้ไขไฟล์
cline_mcp_settings.json
คุณเปิดหรือสร้างไฟล์นี้ได้โดยคลิกไอคอนเซิร์ฟเวอร์ MCP ที่ด้านบนของแผง Cline แล้วคลิกปุ่มกำหนดค่าเซิร์ฟเวอร์ MCP
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"],
"disabled": false
}
}
}
เคอร์เซอร์
หากต้องการกำหนดค่า Cursor ให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase ให้แก้ไขไฟล์
.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
หากต้องการกำหนดค่าโปรแกรมแก้ไข Windsurf ให้แก้ไขไฟล์
~/.codeium/windsurf/mcp_config.json
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
การกำหนดค่าที่ไม่บังคับ
นอกเหนือจากการกำหนดค่าพื้นฐานสำหรับไคลเอ็นต์แต่ละรายที่แสดงก่อนหน้านี้แล้ว ยังมีพารามิเตอร์ที่ไม่บังคับ 2 รายการที่คุณระบุได้ ดังนี้
--dir ABSOLUTE_DIR_PATH
: เส้นทางแบบสัมบูรณ์ของไดเรกทอรีที่มีfirebase.json
เพื่อตั้งค่าบริบทของโปรเจ็กต์สำหรับเซิร์ฟเวอร์ MCP หากไม่ได้ระบุไว้ เครื่องมือ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
ตารางต่อไปนี้แสดงเครื่องมือที่เซิร์ฟเวอร์ MCP จัดเตรียมไว้ให้ นอกจากนี้ คุณยังดูข้อมูลนี้ได้โดยใช้คำสั่งต่อไปนี้
npx firebase-tools@latest experimental:mcp --generate-tool-list
ชื่อเครื่องมือ | กลุ่มฟีเจอร์ | คำอธิบาย |
---|---|---|
firebase_login | แกนกลาง | บันทึกการเข้าสู่ระบบ Firebase CLI และเซิร์ฟเวอร์ MCP ของผู้ใช้ |
firebase_logout | แกนกลาง | ออกจากระบบ Firebase ใน CLI |
firebase_get_project | แกนกลาง | ดึงข้อมูลเกี่ยวกับโปรเจ็กต์ Firebase ที่ใช้งานอยู่ในปัจจุบัน |
firebase_list_apps | แกนกลาง | ดึงข้อมูลแอปที่ลงทะเบียนในโปรเจ็กต์ Firebase ปัจจุบัน |
firebase_get_admin_sdk_config | แกนกลาง | รับการกำหนดค่า Admin SDK สำหรับโปรเจ็กต์ปัจจุบัน |
firebase_list_projects | แกนกลาง | เรียกข้อมูลรายการโปรเจ็กต์ Firebase ได้สูงสุดตามจำนวนทั้งหมดที่ระบุ |
firebase_get_sdk_config | แกนกลาง | ดึงข้อมูลการกำหนดค่า Firebase SDK สำหรับแพลตฟอร์มที่ระบุ คุณต้องระบุแพลตฟอร์มหรือ app_id |
firebase_create_project | แกนกลาง | สร้างโปรเจ็กต์ Firebase ใหม่ |
firebase_create_app | แกนกลาง | สร้างแอปใหม่ในโปรเจ็กต์ Firebase สำหรับเว็บ, iOS หรือ Android |
firebase_create_android_sha | แกนกลาง | เพิ่มแฮชใบรับรอง SHA ลงในแอป Android ที่มีอยู่ |
firebase_consult_assistant | แกนกลาง | เข้าถึงผู้ช่วย AI ที่เชี่ยวชาญด้านFirebase ทุกแง่มุม ใช้เครื่องมือนี้เพื่อดูข้อมูลโดยละเอียด แนวทางปฏิบัติแนะนำ ขั้นตอนการแก้ปัญหา ตัวอย่างโค้ด และความช่วยเหลือตามบริบทเกี่ยวกับบริการ ฟีเจอร์ และการกำหนดค่าโปรเจ็กต์ของ Firebase ซึ่งรวมถึงคำถามเกี่ยวกับ Firestore, การตรวจสอบสิทธิ์, Cloud Functions, Hosting, พื้นที่เก็บข้อมูล, Analytics และอื่นๆ นอกจากนี้ยังให้ข้อมูลเชิงลึกตามบริบทโปรเจ็กต์ Firebase ปัจจุบันได้ด้วย |
firebase_get_environment | แกนกลาง | ดึงข้อมูลเกี่ยวกับสภาพแวดล้อม Firebase ปัจจุบัน รวมถึงผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ในปัจจุบัน ไดเรกทอรีโปรเจ็กต์ โปรเจ็กต์ที่ใช้งานอยู่ และอื่นๆ |
firebase_update_environment | แกนกลาง | อัปเดตการกำหนดค่าสภาพแวดล้อม Firebase เช่น ไดเรกทอรีโปรเจ็กต์ โปรเจ็กต์ที่ใช้งานอยู่ บัญชีผู้ใช้ที่ใช้งานอยู่ และอื่นๆ ใช้ firebase_get_environment เพื่อดูสภาพแวดล้อมที่กำหนดค่าไว้ในปัจจุบัน |
firebase_init | แกนกลาง | เริ่มต้นฟีเจอร์ Firebase ที่เลือกในพื้นที่ทํางาน (Firestore, Data Connect, ฐานข้อมูลเรียลไทม์) ฟีเจอร์ทั้งหมดเป็นแบบไม่บังคับ โปรดระบุเฉพาะผลิตภัณฑ์ที่คุณต้องการตั้งค่า คุณสามารถเริ่มต้นใช้งานฟีเจอร์ใหม่ในไดเรกทอรีโปรเจ็กต์ที่มีอยู่ได้ แต่การเริ่มต้นใช้งานฟีเจอร์ที่มีอยู่อีกครั้งอาจเขียนทับการกำหนดค่า หากต้องการทําให้ฟีเจอร์ที่เริ่มต้นใช้งานได้ ให้เรียกใช้คําสั่ง firebase deploy หลังจากเครื่องมือ firebase_init |
firestore_delete_document | firestore | ลบเอกสาร Firestore จากฐานข้อมูลในโปรเจ็กต์ปัจจุบันตามเส้นทางเอกสารแบบเต็ม ใช้ตัวเลือกนี้หากคุณทราบเส้นทางที่แน่นอนของเอกสาร |
firestore_get_documents | firestore | ดึงเอกสาร Firestore อย่างน้อย 1 รายการจากฐานข้อมูลในโปรเจ็กต์ปัจจุบันตามเส้นทางเอกสารแบบเต็ม ใช้ตัวเลือกนี้หากคุณทราบเส้นทางที่แน่นอนของเอกสาร |
firestore_list_collections | firestore | ดึงรายการคอลเล็กชันจากฐานข้อมูล Firestore ในโปรเจ็กต์ปัจจุบัน |
firestore_query_collection | firestore | ดึงข้อมูลเอกสาร Firestore อย่างน้อย 1 รายการจากคอลเล็กชันซึ่งเป็นฐานข้อมูลในโปรเจ็กต์ปัจจุบันตามคอลเล็กชันที่มีเส้นทางเอกสารแบบเต็ม ใช้คำสั่งนี้หากคุณทราบเส้นทางที่แน่นอนของคอลเล็กชันและข้อกำหนดการกรองที่คุณต้องการสำหรับเอกสาร |
firestore_get_rules | firestore | ดึงข้อมูลกฎการรักษาความปลอดภัยของ Firestore ที่ใช้งานอยู่สำหรับโปรเจ็กต์ปัจจุบัน |
firestore_validate_rules | firestore | ตรวจสอบแหล่งที่มาของกฎ Firestore ที่ระบุเพื่อหาข้อผิดพลาดด้านไวยากรณ์และการตรวจสอบ ระบุซอร์สโค้ดเพื่อตรวจสอบหรือเส้นทางไปยังไฟล์ต้นฉบับ |
auth_get_user | การตรวจสอบสิทธิ์ | ดึงข้อมูลผู้ใช้ตามอีเมล หมายเลขโทรศัพท์ หรือ UID |
auth_disable_user | การตรวจสอบสิทธิ์ | ปิดใช้หรือเปิดใช้ผู้ใช้ตาม UID |
auth_list_users | การตรวจสอบสิทธิ์ | ดึงข้อมูลผู้ใช้ทั้งหมดในโปรเจ็กต์จนถึงขีดจํากัดที่ระบุ |
auth_set_claim | การตรวจสอบสิทธิ์ | ตั้งค่าการอ้างสิทธิ์ที่กำหนดเองในบัญชีของผู้ใช้ที่เฉพาะเจาะจง ใช้เพื่อสร้างค่าที่เชื่อถือซึ่งเชื่อมโยงกับผู้ใช้ เช่น การทําเครื่องหมายผู้ใช้เป็นผู้ดูแลระบบ การอ้างสิทธิ์มีขนาดจำกัด และควรมีชื่อและค่าที่กระชับ ระบุพารามิเตอร์ value หรือ json_value เพียงอย่างเดียว |
auth_set_sms_region_policy | การตรวจสอบสิทธิ์ | ตั้งค่านโยบายภูมิภาค SMS สำหรับ Firebase Auth เพื่อจำกัดภูมิภาคที่รับข้อความได้ตามรายการรหัสประเทศที่อนุญาตหรือปฏิเสธ นโยบายนี้จะลบล้างนโยบายที่มีอยู่เมื่อมีการตั้งค่า |
dataconnect_build | dataconnect | ใช้เพื่อรวบรวมสคีมา การดำเนินการ และ/หรือตัวเชื่อมต่อของ Firebase Data Connect และตรวจสอบข้อผิดพลาดในการสร้าง |
dataconnect_generate_schema | dataconnect | สร้างสคีมาการเชื่อมต่อข้อมูล Firebase ตามคำอธิบายแอปของผู้ใช้ |
dataconnect_generate_operation | dataconnect | สร้างการค้นหาหรือการเปลี่ยนแปลง Firebase Data Connect รายการเดียวโดยอิงตามสคีมาที่กําหนดไว้ในปัจจุบันและพรอมต์ที่ระบุ |
dataconnect_list_services | dataconnect | แสดงรายการบริการ Firebase Data Connect ในเครื่องและแบ็กเอนด์ที่มีอยู่ |
dataconnect_execute | dataconnect | เรียกใช้การดำเนินการ GraphQL กับบริการ Data Connect หรือโปรแกรมจำลอง |
storage_get_rules | พื้นที่เก็บข้อมูล | ดึงข้อมูลกฎความปลอดภัยของ Storage ที่ใช้งานอยู่สำหรับโปรเจ็กต์ปัจจุบัน |
storage_validate_rules | พื้นที่เก็บข้อมูล | ตรวจสอบแหล่งที่มาของกฎการจัดเก็บที่ระบุเพื่อหาข้อผิดพลาดด้านไวยากรณ์และการตรวจสอบ ระบุซอร์สโค้ดเพื่อตรวจสอบหรือเส้นทางไปยังไฟล์ต้นฉบับ |
storage_get_object_download_url | พื้นที่เก็บข้อมูล | ดึงข้อมูล URL สำหรับดาวน์โหลดออบเจ็กต์ใน Firebase Storage |
messaging_send_message | การรับส่งข้อความ | ส่งข้อความไปยังโทเค็นการลงทะเบียนหรือหัวข้อ Firebase Cloud Messaging ในแต่ละการเรียกใช้ คุณจะระบุได้เพียง registration_token หรือ topic เท่านั้น |
remoteconfig_get_template | remoteconfig | ดึงข้อมูลเทมเพลตการกำหนดค่าระยะไกลสำหรับโปรเจ็กต์ |
remoteconfig_publish_template | remoteconfig | เผยแพร่เทมเพลตการกำหนดค่าระยะไกลใหม่สำหรับโปรเจ็กต์ |
remoteconfig_rollback_template | remoteconfig | ย้อนกลับไปใช้เทมเพลตการกำหนดค่าระยะไกลเวอร์ชันที่เฉพาะเจาะจงสำหรับโปรเจ็กต์ |
crashlytics_add_note | crashlytics | เพิ่มหมายเหตุในปัญหาจาก Crashlytics |
crashlytics_delete_note | crashlytics | ลบหมายเหตุจากปัญหาใน Crashlytics |
crashlytics_get_issue_details | crashlytics | รับรายละเอียดเกี่ยวกับปัญหา Crashlytics ที่เฉพาะเจาะจง |
crashlytics_get_sample_crash_for_issue | crashlytics | รับการขัดข้องตัวอย่างสำหรับปัญหา |
crashlytics_list_notes | crashlytics | แสดงโน้ตทั้งหมดสำหรับปัญหาใน Crashlytics |
crashlytics_list_top_devices | crashlytics | แสดงรายการอุปกรณ์ยอดนิยมจาก Crashlytics สำหรับแอปพลิเคชัน |
crashlytics_list_top_issues | crashlytics | แสดงรายการข้อขัดข้องยอดนิยมจาก Crashlytics ที่เกิดขึ้นในแอปพลิเคชัน |
crashlytics_list_top_operating_systems | crashlytics | แสดงรายการระบบปฏิบัติการยอดนิยมจาก Crashlytics สำหรับแอปพลิเคชัน |
crashlytics_list_top_versions | crashlytics | แสดงรายการเวอร์ชันยอดนิยมจาก Crashlytics สำหรับแอปพลิเคชัน |
crashlytics_update_issue | crashlytics | อัปเดตสถานะของปัญหาใน Crashlytics |
apphosting_fetch_logs | apphosting | ดึงข้อมูลบันทึกล่าสุดสำหรับแบ็กเอนด์ App Hosting ที่ระบุ หากระบุ buildLogs ระบบจะแสดงบันทึกจากกระบวนการบิลด์สำหรับบิลด์ล่าสุด โดยระบบจะแสดงบันทึกล่าสุดก่อน |
apphosting_list_backends | apphosting | ดึงข้อมูลรายการแบ็กเอนด์ของ App Hosting ในโปรเจ็กต์ปัจจุบัน รายการที่ว่างเปล่าหมายความว่าไม่มีแบ็กเอนด์ uri คือ URL สาธารณะของแบ็กเอนด์ แบ็กเอนด์ที่ใช้งานได้จะมีอาร์เรย์ managed_resources ที่มีรายการ run_service run_service.service คือชื่อทรัพยากรของบริการ Cloud Run ที่ให้บริการแบ็กเอนด์ของ App Hosting ส่วนสุดท้ายของชื่อนั้นคือรหัสบริการ domains คือรายการโดเมนที่เชื่อมโยงกับแบ็กเอนด์ โดยมีประเภทเป็น CUSTOM หรือ DEFAULT แบ็กเอนด์ทุกรายการควรมีโดเมน DEFAULT โดเมนจริงที่ผู้ใช้จะใช้เพื่อเชื่อมต่อกับแบ็กเอนด์คือพารามิเตอร์สุดท้ายของชื่อทรัพยากรโดเมน หากตั้งค่าโดเมนที่กำหนดเองอย่างถูกต้อง โดเมนจะมีสถานะที่ลงท้ายด้วย ACTIVE |
database_get_data | ฐานข้อมูล | แสดงผลข้อมูล RTDB จากตำแหน่งที่ระบุ |
database_set_data | ฐานข้อมูล | เขียนข้อมูล RTDB ไปยังตำแหน่งที่ระบุ |
database_get_rules | ฐานข้อมูล | รับกฎของฐานข้อมูล RTDB |
database_validate_rules | ฐานข้อมูล | ตรวจสอบกฎของฐานข้อมูล RTDB |