คุณสามารถใช้เซิร์ฟเวอร์ 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
รายการเหล่านี้เป็นเพียงรายการบางส่วน โปรดดูรายการเครื่องมือทั้งหมดที่พร้อมใช้งานสำหรับเอดิเตอร์ในส่วนความสามารถของเซิร์ฟเวอร์
เมื่อเซิร์ฟเวอร์ Firebase MCP เรียกใช้เครื่องมือ เซิร์ฟเวอร์จะใช้ข้อมูลเข้าสู่ระบบของผู้ใช้เดียวกันกับที่ให้สิทธิ์ Firebase CLI ในสภาพแวดล้อมที่กำลังเรียกใช้ ซึ่งอาจเป็นผู้ใช้ที่เข้าสู่ระบบหรือ ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อม
ก่อนเริ่มต้น
ตรวจสอบว่าคุณได้ติดตั้ง Node.js และ npm ที่ใช้งานได้แล้ว
ตรวจสอบสิทธิ์ Firebase CLI โดยเรียกใช้คำสั่งต่อไปนี้
npx -y firebase-tools@latest login --reauth
เซิร์ฟเวอร์ MCP ของ Firebase ใช้ CLI เพื่อจัดการการตรวจสอบสิทธิ์กับโปรเจ็กต์ Firebase คุณต้องตรวจสอบสิทธิ์ด้วย CLI ก่อนใช้ MCP server หากคุณพยายามใช้เซิร์ฟเวอร์โดยไม่ได้ลงชื่อเข้าใช้ หรือหากโทเค็นการตรวจสอบสิทธิ์หมดอายุ เซิร์ฟเวอร์จะพิมพ์ข้อความแสดงข้อผิดพลาดที่แจ้งให้คุณตรวจสอบสิทธิ์อีกครั้ง
ตั้งค่าไคลเอ็นต์ MCP
เซิร์ฟเวอร์ MCP ของ Firebase สามารถทำงานร่วมกับไคลเอ็นต์ MCP ใดก็ได้ที่รองรับ I/O มาตรฐาน (stdio) เป็นสื่อกลางในการรับส่ง วิธีการเฉพาะสำหรับเครื่องมือยอดนิยมบางอย่างมีดังนี้
การกำหนดค่าพื้นฐาน
Claude Desktop
หากต้องการกำหนดค่า Claude Desktop ให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase ให้แก้ไขไฟล์
claude_desktop_config.json
คุณเปิดหรือสร้างไฟล์นี้ได้จากเมนู Claude > การตั้งค่า
เลือกแท็บนักพัฒนาซอฟต์แวร์ แล้วคลิก
แก้ไขการกำหนดค่า
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
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"]
}
}
Firebase Studio
หากต้องการกำหนดค่า Firebase Studio ให้ใช้เซิร์ฟเวอร์ MCP ของ Firebase ให้แก้ไขหรือ สร้างไฟล์การกำหนดค่า
- Gemini ในแชทของ Firebase ใช้
.idx/mcp.json
- Gemini CLI ใช้
.gemini/settings.json
หากยังไม่มีไฟล์ ให้สร้างโดยคลิกขวาที่ไดเรกทอรีหลัก แล้วเลือกไฟล์ใหม่ เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์
{
"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
ชื่อเครื่องมือ | กลุ่มฟีเจอร์ | คำอธิบาย |
---|---|---|
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_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_list_services | dataconnect | แสดงรายการบริการ Firebase Data Connect ที่พร้อมใช้งานในโปรเจ็กต์ปัจจุบัน |
dataconnect_generate_schema | dataconnect | สร้างสคีมาการเชื่อมต่อข้อมูล Firebase ตามคำอธิบายแอปของผู้ใช้ |
dataconnect_generate_operation | dataconnect | สร้างการค้นหาหรือการเปลี่ยนแปลง Firebase Data Connect รายการเดียวโดยอิงตามสคีมาที่กําหนดไว้ในปัจจุบันและพรอมต์ที่ระบุ |
dataconnect_get_schema | dataconnect | ดึงข้อมูลเกี่ยวกับสคีมาการเชื่อมต่อข้อมูล Firebase ในโปรเจ็กต์ ซึ่งรวมถึงแหล่งข้อมูล Cloud SQL และสคีมา GraphQL ที่อธิบายโมเดลข้อมูล |
dataconnect_get_connectors | dataconnect | รับตัวเชื่อมต่อ Firebase Data Connect ในโปรเจ็กต์ ซึ่งรวมถึงการค้นหา GraphQL ที่กำหนดไว้ล่วงหน้าซึ่ง SDK ของไคลเอ็นต์เข้าถึงได้ |
dataconnect_execute_graphql | dataconnect | เรียกใช้ GraphQL ที่กำหนดเองกับบริการ Data Connect หรือโปรแกรมจำลอง |
dataconnect_execute_graphql_read | dataconnect | เรียกใช้การค้นหา GraphQL ที่กำหนดเองกับบริการ Data Connect หรือโปรแกรมจำลอง เขียนข้อมูลไม่ได้ |
dataconnect_execute_mutation | dataconnect | เรียกใช้การเปลี่ยนแปลง Data Connect ที่ติดตั้งใช้งานกับบริการหรือโปรแกรมจำลองของบริการ อ่านและเขียนข้อมูลได้ |
dataconnect_execute_query | dataconnect | เรียกใช้การค้นหา 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_list_top_issues | 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 |