می توانید از سرور Firebase MCP استفاده کنید تا به ابزارهای توسعه مبتنی بر هوش مصنوعی توانایی کار با پروژه های Firebase خود را بدهید. سرور Firebase MCP با هر ابزاری که می تواند به عنوان یک مشتری MCP عمل کند، از جمله Claude Desktop، Cline، Cursor، Visual Studio Code Copilot، Windsurf Editor و غیره کار می کند.
ویرایشگر پیکربندی شده برای استفاده از سرور Firebase MCP می تواند از قابلیت های هوش مصنوعی خود برای کمک به شما استفاده کند:
- پروژه های Firebase را ایجاد و مدیریت کنید
- کاربران Firebase Authentication خود را مدیریت کنید
- با داده ها در Cloud Firestore و Firebase Data Connect کار کنید
- طرحواره های Firebase Data Connect را بازیابی کنید
- قوانین امنیتی خود را برای Firestore و Cloud Storage برای Firebase بدانید
- با Firebase Cloud Messaging پیام ارسال کنید
برخی از ابزارها از Gemini در Firebase برای کمک به شما استفاده می کنند:
- طرح و عملیات Firebase Data Connect را ایجاد کنید
- در مورد محصولات Firebase با Gemini مشورت کنید
اینها فقط لیست های جزئی هستند. برای لیست کامل ابزارهای موجود در ویرایشگر خود، بخش قابلیت های سرور را ببینید.
هنگامی که سرور Firebase MCP تماس ابزار برقرار می کند، از همان اعتبار کاربری استفاده می کند که Firebase CLI را در محیطی که در آن اجرا می شود مجاز می کند. بسته به محیط، این می تواند یک کاربر وارد شده یا اعتبار پیش فرض برنامه باشد.
قبل از شروع
مطمئن شوید که Node.js و npm را نصب کرده اید.
سرویس گیرنده MCP خود را تنظیم کنید
سرور Firebase MCP می تواند با هر مشتری MCP که از I/O استاندارد (stdio) به عنوان رسانه انتقال پشتیبانی می کند، کار کند.
پیکربندی اولیه
در این بخش، میتوانید دستورالعملهای خاصی را برای برخی از ابزارهای محبوب کمکی هوش مصنوعی بیابید:
- استودیو Firebase
- Gemini CLI و Gemini Code Assist
- کد کلود
- کلود دسکتاپ
- کلین
- مکان نما
- Visual Studio Code Copilot
- ویرایشگر Windsurf
استودیو Firebase
برای پیکربندی Firebase Studio برای استفاده از سرور Firebase MCP، فایل پیکربندی را ویرایش یا ایجاد کنید: .idx/mcp.json
.
اگر فایل هنوز وجود ندارد، با کلیک راست روی پوشه والد و انتخاب فایل جدید ، آن را ایجاد کنید. مطالب زیر را به فایل اضافه کنید:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Gemini CLI و Gemini Code Assist
روش توصیه شده برای راه اندازی Gemini CLI یا Gemini Code Assist برای استفاده از سرور Firebase MCP، نصب افزونه Firebase برای Gemini CLI است:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
نصب برنامه افزودنی Firebase به طور خودکار سرور Firebase MCP را پیکربندی می کند و همچنین با یک فایل زمینه ارائه می شود که می تواند عملکرد توسعه برنامه Firebase Gemini را بهبود بخشد.
همچنین، میتوانید Gemini CLI یا Gemini Code Assist را برای استفاده از سرور MCP Firebase (اما نه فایل زمینه پسوند Firebase) با ویرایش یا ایجاد یکی از فایلهای پیکربندی پیکربندی کنید:
- در پروژه شما:
.gemini/settings.json
- در فهرست اصلی شما:
~/.gemini/settings.json
اگر فایل هنوز وجود ندارد، با کلیک راست روی پوشه والد و انتخاب فایل جدید ، آن را ایجاد کنید. مطالب زیر را به فایل اضافه کنید:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
کد کلود
برای پیکربندی Claude Code برای استفاده از سرور Firebase MCP، دستور زیر را در پوشه برنامه خود اجرا کنید:
claude mcp add firebase npx -- -y firebase-tools@latest experimental:mcp
می توانید نصب را با اجرای زیر تأیید کنید:
claude mcp list
باید نشان دهد:
firebase: npx -y firebase-tools@latest experimental:mcp - ✓ Connected
کلود دسکتاپ
برای پیکربندی Claude Desktop برای استفاده از سرور Firebase MCP، فایل claude_desktop_config.json
را ویرایش کنید. می توانید این فایل را از منوی Claude > Settings باز یا ایجاد کنید. برگه Developer را انتخاب کنید، سپس روی Edit Config کلیک کنید.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
کلین
برای پیکربندی Cline برای استفاده از سرور MCP Firebase، فایل cline_mcp_settings.json
را ویرایش کنید. میتوانید این فایل را با کلیک کردن روی نماد سرورهای MCP در بالای صفحه Cline باز یا ایجاد کنید، سپس روی دکمه پیکربندی سرورهای MCP کلیک کنید.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"],
"disabled": false
}
}
}
مکان نما
برای پیکربندی مکان نما برای استفاده از سرور 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"]
}
}
پیکربندی اختیاری
علاوه بر پیکربندی اولیه برای هر مشتری، که قبلا نشان داده شده است، دو پارامتر اختیاری وجود دارد که می توانید مشخص کنید:
--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 MCP سه دسته مختلف از ویژگی های MCP را ارائه می دهد: درخواست ها، ابزارها و منابع.
درخواست می کند
سرور Firebase MCP دارای یک کتابخانه از دستورات از پیش نوشته شده است که برای توسعه برنامه Firebase بهینه شده است. شما می توانید این دستورات را برای تکمیل وظایف مختلف توسعه Firebase اجرا کنید.
اکثر ابزارهای توسعه ای که از MCP پشتیبانی می کنند، راه مناسبی برای اجرای این دستورات ارائه می دهند. به عنوان مثال، Gemini CLI این دستورات را به عنوان دستورات اسلش در دسترس قرار می دهد:
/firebase:init
/firebase:
را در Gemini CLI تایپ کنید تا لیستی از دستورات موجود را ببینید که در جدول زیر نیز فهرست شده است:
شما همچنین می توانید این اطلاعات را با استفاده از دستور مشاهده کنید:
npx firebase-tools@latest mcp --generate-prompt-list
نام درخواستی | گروه ویژه | توضیحات |
---|---|---|
firebase: مستقر | هسته | از این دستور برای استقرار منابع در Firebase استفاده کنید. استدلال ها: <prompt> (اختیاری): هر دستورالعمل خاصی که می خواهید در مورد استقرار ارائه دهید |
firebase:init | هسته | از این دستور برای راه اندازی سرویس های Firebase مانند ویژگی های Backend و AI استفاده کنید. |
firebase: مشورت | هسته | از این دستور برای مشورت با دستیار Firebase با دسترسی به اسناد به روز دقیق پلت فرم Firebase استفاده کنید. استدلال ها: <prompt>: یک سوال برای ارسال به Gemini در مدل Firebase |
crashlytics: اتصال | crashlytics | به داده های Crashlytics یک برنامه Firebase دسترسی داشته باشید. |
ابزار
سرور Firebase MCP همچنین تعدادی ابزار را فراهم می کند که به LLM ها اجازه می دهد مستقیماً با پروژه Firebase شما (با تأیید شما!) کار کنند. برخلاف دستورات، شما مستقیماً با این ابزارها تماس نمیگیرید. در عوض، مدل هایی که از فراخوانی ابزار پشتیبانی می کنند (مانند Gemini، Claude و GPT) می توانند به طور خودکار این ابزارها را برای انجام وظایف توسعه در صورت نیاز فراخوانی کنند.
جدول زیر ابزارهایی را که سرور MCP در دسترس قرار می دهد فهرست می کند.
شما همچنین می توانید این اطلاعات را با استفاده از دستور مشاهده کنید:
npx firebase-tools@latest mcp --generate-tool-list
نام ابزار | گروه ویژه | توضیحات |
---|---|---|
firebase_login | هسته | از این برای ورود کاربر به سرور Firebase CLI و Firebase MCP استفاده کنید. این به یک حساب Google نیاز دارد و برای ایجاد و کار با Firebase Projects به سیستم وارد شوید. |
firebase_logout | هسته | از این برای خروج کاربر از سرور Firebase CLI و Firebase MCP استفاده کنید. |
firebase_validate_security_rules | هسته | از این برای بررسی قوانین امنیتی Firebase برای Firestore، Storage یا Realtime Database برای خطاهای نحوی و اعتبارسنجی استفاده کنید. |
firebase_get_project | هسته | از این برای بازیابی اطلاعات در مورد پروژه Firebase فعال فعلی استفاده کنید. |
firebase_list_apps | هسته | از این برای بازیابی لیستی از برنامه های Firebase ثبت شده در پروژه Firebase فعال فعلی استفاده کنید. برنامه های Firebase می توانند iOS، Android یا Web باشند. |
firebase_list_projects | هسته | از این برای بازیابی لیستی از پروژه های Firebase استفاده کنید که کاربر وارد شده به آن دسترسی دارد. |
firebase_get_sdk_config | هسته | از این برای بازیابی اطلاعات پیکربندی Firebase برای یک برنامه Firebase استفاده کنید. شما باید یک پلتفرم یا شناسه برنامه Firebase را برای یک برنامه Firebase که در پروژه Firebase فعال فعلی ثبت شده است، مشخص کنید. |
firebase_create_project | هسته | از این برای ایجاد یک پروژه Firebase جدید استفاده کنید. |
firebase_create_app | هسته | از این برای ایجاد یک برنامه Firebase جدید در پروژه Firebase فعال فعلی استفاده کنید. برنامه های Firebase می توانند iOS، Android یا Web باشند. |
firebase_create_android_sha | هسته | از این برای اضافه کردن هش گواهی SHA مشخص شده به برنامه Firebase Android مشخص شده استفاده کنید. |
firebase_get_environment | هسته | از این برای بازیابی پیکربندی محیط Firebase فعلی برای سرور Firebase CLI و Firebase MCP، از جمله کاربر تأیید شده فعلی، فهرست پروژه، پروژه Firebase فعال و موارد دیگر استفاده کنید. |
firebase_update_environment | هسته | از این برای بهروزرسانی پیکربندی محیط برای سرور Firebase CLI و Firebase MCP، مانند فهرست راهنمای پروژه، پروژه فعال، حساب کاربری فعال، پذیرش شرایط خدمات و موارد دیگر استفاده کنید. برای مشاهده محیط پیکربندی شده فعلی از firebase_get_environment استفاده کنید. |
firebase_init | هسته | از این برای مقداردهی اولیه خدمات Firebase انتخاب شده در فضای کاری (پایگاه داده Cloud Firestore، Firebase Data Connect، Firebase Realtime Database، Firebase AI Logic) استفاده کنید. همه خدمات اختیاری هستند. فقط محصولاتی را که می خواهید تنظیم کنید مشخص کنید. میتوانید ویژگیهای جدید را در فهرست پروژه موجود مقداردهی کنید، اما راهاندازی مجدد یک ویژگی موجود ممکن است پیکربندی را بازنویسی کند. برای استقرار ویژگی های اولیه، دستور firebase deploy بعد از ابزار firebase_init اجرا کنید. |
firebase_get_security_rules | هسته | از این برای بازیابی قوانین امنیتی یک سرویس Firebase مشخص شده استفاده کنید. اگر چندین نمونه از آن سرویس در محصول وجود داشته باشد، قوانین مربوط به نمونه defualt برگردانده می شود. |
firebase_read_resources | هسته | از این برای خواندن محتویات منابع firebase:// یا فهرست منابع موجود استفاده کنید |
firestore_delete_document | آتش نشانی | از این برای حذف اسناد Firestore از پایگاه داده در پروژه فعلی توسط مسیرهای سند کامل استفاده کنید. اگر مسیر دقیق یک سند را می دانید از این استفاده کنید. |
firestore_get_documents | آتش نشانی | از این برای بازیابی یک یا چند سند Firestore از پایگاه داده در پروژه فعلی توسط مسیرهای سند کامل استفاده کنید. اگر مسیر دقیق یک سند را می دانید از این استفاده کنید. |
firestore_list_collections | آتش نشانی | از این برای بازیابی لیستی از مجموعه ها از پایگاه داده Firestore در پروژه فعلی استفاده کنید. |
firestore_query_collection | آتش نشانی | از این برای بازیابی یک یا چند سند Firestore از یک مجموعه پایگاه داده در پروژه فعلی توسط مجموعه ای با یک مسیر سند کامل استفاده کنید. اگر مسیر دقیق یک مجموعه و بند فیلتری را که برای سند می خواهید می دانید، از این استفاده کنید. |
auth_get_users | اعتبار | از این برای بازیابی یک یا چند کاربر Firebase Auth بر اساس لیستی از UID ها یا لیستی از ایمیل ها استفاده کنید. |
auth_update_user | اعتبار | از این برای غیرفعال کردن، فعال کردن یا تنظیم یک ادعای سفارشی در حساب کاربری خاص استفاده کنید. |
auth_set_sms_region_policy | اعتبار | از این برای تنظیم یک خط مشی منطقه پیامک برای احراز هویت Firebase استفاده کنید تا مناطقی را که میتوانند پیامهای متنی را بر اساس فهرست ALLOW یا DENY از کدهای کشور دریافت کنند، محدود کند. این خطمشی پس از تنظیم، همه خطمشیهای موجود را لغو میکند. |
dataconnect_build | داده اتصال | از این برای کامپایل طرحواره، عملیات و/یا اتصالات Firebase Data Connect و بررسی خطاهای ساخت استفاده کنید. |
dataconnect_generate_schema | داده اتصال | از این برای ایجاد طرحواره اتصال داده Firebase بر اساس توضیحات کاربران یک برنامه استفاده کنید. |
dataconnect_generate_operation | داده اتصال | از این برای ایجاد یک پرس و جو یا جهش داده Firebase Data Connect بر اساس طرحی که در حال حاضر مستقر شده و درخواست ارائه شده استفاده کنید. |
dataconnect_list_services | داده اتصال | از این برای فهرست کردن سرویسهای محلی و باطنی Firebase Data Connect استفاده کنید |
dataconnect_execute | داده اتصال | از این برای اجرای یک عملیات GraphQL در برابر سرویس Data Connect یا شبیه ساز آن استفاده کنید. |
storage_get_object_download_url | ذخیره سازی | از این برای بازیابی URL دانلود برای یک شی در سطل Cloud Storage for Firebase استفاده کنید. |
messaging_send_message | پیام رسانی | از این برای ارسال پیام به رمز یا موضوع ثبت نام Firebase Cloud Messaging استفاده کنید. فقط یکی از registration_token یا topic ممکن است در یک تماس خاص ارائه شود. |
functions_get_logs | توابع | از این برای بازیابی صفحه ای از ورودی های گزارش عملکردهای ابری با استفاده از فیلترهای پیشرفته Google Cloud Logging استفاده کنید. |
remoteconfig_get_template | remoteconfig | از این برای بازیابی الگوی مشخص شده Firebase Remote Config از پروژه Firebase فعال فعلی استفاده کنید. |
remoteconfig_update_template | remoteconfig | از این برای انتشار یک الگوی پیکربندی راه دور جدید استفاده کنید یا به نسخه خاصی برای پروژه برگردید |
crashlytics_create_note | crashlytics | یک یادداشت به یک مشکل از crashlytics اضافه کنید. |
crashlytics_delete_note | crashlytics | یک یادداشت را از یک مشکل Crashlytics حذف کنید. |
crashlytics_get_issue | crashlytics | داده هایی را برای یک مشکل Crashlytics دریافت می کند، که می تواند به عنوان نقطه شروع برای اشکال زدایی استفاده شود. |
crashlytics_list_events | crashlytics | از این برای فهرست کردن آخرین رویدادهای مطابق با فیلترهای داده شده استفاده کنید. می تواند برای واکشی نمونه خرابی ها و استثناها برای یک مشکل استفاده شود، که شامل ردیابی پشته و سایر داده های مفید برای اشکال زدایی خواهد بود. |
crashlytics_batch_get_events | crashlytics | رویدادهای خاص را با نام منبع دریافت می کند. می تواند برای واکشی نمونه خرابی ها و استثناها برای یک مشکل استفاده شود، که شامل ردیابی پشته و سایر داده های مفید برای اشکال زدایی خواهد بود. |
crashlytics_list_notes | crashlytics | از این برای فهرست کردن همه یادداشتها برای یک مشکل در Crashlytics استفاده کنید. |
crashlytics_get_top_issues | crashlytics | از این برای شمارش رویدادها و کاربران متمایز متاثر، گروهبندی شده بر اساس مشکل استفاده کنید. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. |
crashlytics_get_top_variants | crashlytics | رویدادها و کاربران متمایز متاثر را میشمارد که بر اساس نوع مشکل گروهبندی میشوند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. |
crashlytics_get_top_versions | crashlytics | رویدادها و کاربران متمایز متاثر را بر اساس نسخه گروهبندی میکند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. |
crashlytics_get_top_apple_devices | crashlytics | رویدادها و کاربران متمایز متاثر را میشمارد که بر اساس دستگاه اپل گروهبندی میشوند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. فقط مربوط به برنامه های iOS، iPadOS و MacOS است. |
crashlytics_get_top_android_devices | crashlytics | رویدادها و کاربران متمایز متاثر را بر اساس دستگاه اندرویدی گروهبندی میکند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. فقط مربوط به برنامه های اندروید است. |
crashlytics_get_top_operating_systems | crashlytics | رویدادها و کاربران متمایز متاثر را بر اساس سیستم عامل گروهبندی میکند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. |
crashlytics_update_issue | crashlytics | از این برای بهروزرسانی وضعیت مشکل Crashlytics استفاده کنید. |
apphosting_fetch_logs | apphosting | از این برای واکشی جدیدترین گزارشها برای باطن میزبانی برنامه مشخص شده استفاده کنید. اگر buildLogs مشخص شده باشد، گزارشهای مربوط به فرآیند ساخت آخرین بیلد برگردانده میشوند. آخرین گزارشها ابتدا فهرست میشوند. |
apphosting_list_backends | apphosting | از این برای بازیابی لیستی از برنامه های پشتیبان میزبانی برنامه در پروژه فعلی استفاده کنید. لیست خالی به این معنی است که هیچ Backend وجود ندارد. uri نشانی اینترنتی عمومی باطن است. یک باطن کار دارای یک آرایه managed_resources خواهد بود که حاوی یک ورودی run_service است. این run_service.service نام منبع سرویس Cloud Run است که به بخش پشتیبان App Hosting خدمت می کند. آخرین بخش آن نام شناسه سرویس است. domains لیستی از دامنه هایی است که با backend مرتبط هستند. آنها یا نوع CUSTOM یا DEFAULT دارند. هر Backend باید یک دامنه DEFAULT داشته باشد. دامنه واقعی که کاربر برای اتصال به backend استفاده می کند آخرین پارامتر نام منبع دامنه است. اگر یک دامنه سفارشی به درستی تنظیم شده باشد، وضعیت هایی خواهد داشت که به ACTIVE ختم می شوند. |
realtimedatabase_get_data | پایگاه داده واقعی | از این برای بازیابی داده ها از مکان مشخص شده در پایگاه داده بیدرنگ Firebase استفاده کنید. |
realtimedatabase_set_data | پایگاه داده واقعی | از این برای نوشتن داده ها در مکان مشخص شده در پایگاه داده بیدرنگ Firebase استفاده کنید. |
منابع
سرور MCP منابعی را فراهم می کند که فایل های مستندی هستند که برای استفاده توسط LLM ها در نظر گرفته شده است. مدل هایی که از استفاده از منابع پشتیبانی می کنند به طور خودکار منابع مربوطه را در زمینه جلسه شامل می شوند.
جدول زیر منابعی را که سرور MCP در دسترس قرار می دهد فهرست می کند.
شما همچنین می توانید این اطلاعات را با استفاده از دستور مشاهده کنید:
npx firebase-tools@latest mcp --generate-resource-list
نام منبع | توضیحات |
---|---|
backend_init_guide | Firebase Backend Init Guide: عامل برنامه نویسی را از طریق پیکربندی سرویس های Backend Firebase در پروژه فعلی راهنمایی می کند. |
ai_init_guide | Firebase GenAI Init Guide: عامل برنامه نویسی را از طریق پیکربندی قابلیت های GenAI در پروژه فعلی با استفاده از Firebase راهنمایی می کند. |
data_connect_init_guide | Firebase Data Connect Init Guide: عامل برنامه نویسی را از طریق پیکربندی Data Connect برای دسترسی PostgreSQL در پروژه فعلی راهنمایی می کند. |
firestore_init_guide | Firestore Init Guide: عامل کدنویسی را از طریق پیکربندی Firestore در پروژه فعلی راهنمایی می کند |
firestore_rules_init_guide | راهنمای شروع قوانین Firestore: عامل کد نویسی را از طریق تنظیم قوانین امنیتی Firestore در پروژه راهنمایی می کند. |
rtdb_init_guide | Firebase Realtime Database Init Guide: عامل برنامه نویسی را از طریق پیکربندی پایگاه داده Realtime در پروژه فعلی راهنمایی می کند. |
auth_init_guide | Firebase Authentication Init Guide: عامل برنامه نویسی را از طریق پیکربندی Firebase Authentication در پروژه فعلی راهنمایی می کند. |
hosting_init_guide | راهنمای استقرار میزبانی Firebase: عامل برنامه نویسی را از طریق استقرار در میزبانی Firebase در پروژه فعلی راهنمایی می کند. |
اسناد | Firebase Docs: محتوای متنی ساده را از اسناد Firebase بارگیری می کند، به عنوان مثال https://firebase.google.com/docs/functions تبدیل به firebase://docs/functions می شود |
می توانید از سرور Firebase MCP استفاده کنید تا به ابزارهای توسعه مبتنی بر هوش مصنوعی توانایی کار با پروژه های Firebase خود را بدهید. سرور Firebase MCP با هر ابزاری که می تواند به عنوان یک مشتری MCP عمل کند، از جمله Claude Desktop، Cline، Cursor، Visual Studio Code Copilot، Windsurf Editor و غیره کار می کند.
ویرایشگر پیکربندی شده برای استفاده از سرور Firebase MCP می تواند از قابلیت های هوش مصنوعی خود برای کمک به شما استفاده کند:
- پروژه های Firebase را ایجاد و مدیریت کنید
- کاربران Firebase Authentication خود را مدیریت کنید
- با داده ها در Cloud Firestore و Firebase Data Connect کار کنید
- طرحواره های Firebase Data Connect را بازیابی کنید
- قوانین امنیتی خود را برای Firestore و Cloud Storage برای Firebase بدانید
- با Firebase Cloud Messaging پیام ارسال کنید
برخی از ابزارها از Gemini در Firebase برای کمک به شما استفاده می کنند:
- طرح و عملیات Firebase Data Connect را ایجاد کنید
- در مورد محصولات Firebase با Gemini مشورت کنید
اینها فقط لیست های جزئی هستند. برای لیست کامل ابزارهای موجود در ویرایشگر خود، بخش قابلیت های سرور را ببینید.
هنگامی که سرور Firebase MCP تماس ابزار برقرار می کند، از همان اعتبار کاربری استفاده می کند که Firebase CLI را در محیطی که در آن اجرا می شود مجاز می کند. بسته به محیط، این می تواند یک کاربر وارد شده یا اعتبار پیش فرض برنامه باشد.
قبل از شروع
مطمئن شوید که Node.js و npm را نصب کرده اید.
سرویس گیرنده MCP خود را تنظیم کنید
سرور Firebase MCP می تواند با هر مشتری MCP که از I/O استاندارد (stdio) به عنوان رسانه انتقال پشتیبانی می کند، کار کند.
پیکربندی اولیه
در این بخش، میتوانید دستورالعملهای خاصی را برای برخی از ابزارهای محبوب کمکی هوش مصنوعی بیابید:
- استودیو Firebase
- Gemini CLI و Gemini Code Assist
- کد کلود
- کلود دسکتاپ
- کلین
- مکان نما
- Visual Studio Code Copilot
- ویرایشگر Windsurf
استودیو Firebase
برای پیکربندی Firebase Studio برای استفاده از سرور Firebase MCP، فایل پیکربندی را ویرایش یا ایجاد کنید: .idx/mcp.json
.
اگر فایل هنوز وجود ندارد، با کلیک راست روی پوشه والد و انتخاب فایل جدید ، آن را ایجاد کنید. مطالب زیر را به فایل اضافه کنید:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
Gemini CLI و Gemini Code Assist
روش توصیه شده برای راه اندازی Gemini CLI یا Gemini Code Assist برای استفاده از سرور Firebase MCP، نصب افزونه Firebase برای Gemini CLI است:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
نصب برنامه افزودنی Firebase به طور خودکار سرور Firebase MCP را پیکربندی می کند و همچنین با یک فایل زمینه ارائه می شود که می تواند عملکرد توسعه برنامه Firebase Gemini را بهبود بخشد.
همچنین، میتوانید Gemini CLI یا Gemini Code Assist را برای استفاده از سرور MCP Firebase (اما نه فایل زمینه پسوند Firebase) با ویرایش یا ایجاد یکی از فایلهای پیکربندی پیکربندی کنید:
- در پروژه شما:
.gemini/settings.json
- در فهرست اصلی شما:
~/.gemini/settings.json
اگر فایل هنوز وجود ندارد، با کلیک راست روی پوشه والد و انتخاب فایل جدید ، آن را ایجاد کنید. مطالب زیر را به فایل اضافه کنید:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
کد کلود
برای پیکربندی Claude Code برای استفاده از سرور Firebase MCP، دستور زیر را در پوشه برنامه خود اجرا کنید:
claude mcp add firebase npx -- -y firebase-tools@latest experimental:mcp
می توانید نصب را با اجرای زیر تأیید کنید:
claude mcp list
باید نشان دهد:
firebase: npx -y firebase-tools@latest experimental:mcp - ✓ Connected
کلود دسکتاپ
برای پیکربندی Claude Desktop برای استفاده از سرور Firebase MCP، فایل claude_desktop_config.json
را ویرایش کنید. می توانید این فایل را از منوی Claude > Settings باز یا ایجاد کنید. برگه Developer را انتخاب کنید، سپس روی Edit Config کلیک کنید.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
کلین
برای پیکربندی Cline برای استفاده از سرور MCP Firebase، فایل cline_mcp_settings.json
را ویرایش کنید. میتوانید این فایل را با کلیک کردن روی نماد سرورهای MCP در بالای صفحه Cline باز یا ایجاد کنید، سپس روی دکمه پیکربندی سرورهای MCP کلیک کنید.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"],
"disabled": false
}
}
}
مکان نما
برای پیکربندی مکان نما برای استفاده از سرور 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"]
}
}
پیکربندی اختیاری
علاوه بر پیکربندی اولیه برای هر مشتری، که قبلا نشان داده شده است، دو پارامتر اختیاری وجود دارد که می توانید مشخص کنید:
--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 MCP سه دسته مختلف از ویژگی های MCP را ارائه می دهد: درخواست ها، ابزارها و منابع.
درخواست می کند
سرور Firebase MCP دارای یک کتابخانه از دستورات از پیش نوشته شده است که برای توسعه برنامه Firebase بهینه شده است. شما می توانید این دستورات را برای تکمیل وظایف مختلف توسعه Firebase اجرا کنید.
اکثر ابزارهای توسعه ای که از MCP پشتیبانی می کنند، راه مناسبی برای اجرای این دستورات ارائه می دهند. به عنوان مثال، Gemini CLI این دستورات را به عنوان دستورات اسلش در دسترس قرار می دهد:
/firebase:init
/firebase:
را در Gemini CLI تایپ کنید تا لیستی از دستورات موجود را ببینید که در جدول زیر نیز فهرست شده است:
شما همچنین می توانید این اطلاعات را با استفاده از دستور مشاهده کنید:
npx firebase-tools@latest mcp --generate-prompt-list
نام درخواستی | گروه ویژه | توضیحات |
---|---|---|
firebase: مستقر | هسته | از این دستور برای استقرار منابع در Firebase استفاده کنید. استدلال ها: <prompt> (اختیاری): هر دستورالعمل خاصی که می خواهید در مورد استقرار ارائه دهید |
firebase:init | هسته | از این دستور برای راه اندازی سرویس های Firebase مانند ویژگی های Backend و AI استفاده کنید. |
firebase: مشورت | هسته | از این دستور برای مشورت با دستیار Firebase با دسترسی به اسناد به روز دقیق پلت فرم Firebase استفاده کنید. استدلال ها: <prompt>: یک سوال برای ارسال به Gemini در مدل Firebase |
crashlytics: اتصال | crashlytics | به داده های Crashlytics یک برنامه Firebase دسترسی داشته باشید. |
ابزار
سرور Firebase MCP همچنین تعدادی ابزار را فراهم می کند که به LLM ها اجازه می دهد مستقیماً با پروژه Firebase شما (با تأیید شما!) کار کنند. برخلاف دستورات، شما مستقیماً با این ابزارها تماس نمیگیرید. در عوض، مدل هایی که از فراخوانی ابزار پشتیبانی می کنند (مانند Gemini، Claude و GPT) می توانند به طور خودکار این ابزارها را برای انجام وظایف توسعه در صورت نیاز فراخوانی کنند.
جدول زیر ابزارهایی را که سرور MCP در دسترس قرار می دهد فهرست می کند.
شما همچنین می توانید این اطلاعات را با استفاده از دستور مشاهده کنید:
npx firebase-tools@latest mcp --generate-tool-list
نام ابزار | گروه ویژه | توضیحات |
---|---|---|
firebase_login | هسته | از این برای ورود کاربر به سرور Firebase CLI و Firebase MCP استفاده کنید. این به یک حساب Google نیاز دارد و برای ایجاد و کار با Firebase Projects به سیستم وارد شوید. |
firebase_logout | هسته | از این برای خروج کاربر از سرور Firebase CLI و Firebase MCP استفاده کنید. |
firebase_validate_security_rules | هسته | از این برای بررسی قوانین امنیتی Firebase برای Firestore، Storage یا Realtime Database برای خطاهای نحوی و اعتبارسنجی استفاده کنید. |
firebase_get_project | هسته | از این برای بازیابی اطلاعات در مورد پروژه Firebase فعال فعلی استفاده کنید. |
firebase_list_apps | هسته | از این برای بازیابی لیستی از برنامه های Firebase ثبت شده در پروژه Firebase فعال فعلی استفاده کنید. برنامه های Firebase می توانند iOS، Android یا Web باشند. |
firebase_list_projects | هسته | از این برای بازیابی لیستی از پروژه های Firebase استفاده کنید که کاربر وارد شده به آن دسترسی دارد. |
firebase_get_sdk_config | هسته | از این برای بازیابی اطلاعات پیکربندی Firebase برای یک برنامه Firebase استفاده کنید. شما باید یک پلتفرم یا شناسه برنامه Firebase را برای یک برنامه Firebase که در پروژه Firebase فعال فعلی ثبت شده است، مشخص کنید. |
firebase_create_project | هسته | از این برای ایجاد یک پروژه Firebase جدید استفاده کنید. |
firebase_create_app | هسته | از این برای ایجاد یک برنامه Firebase جدید در پروژه Firebase فعال فعلی استفاده کنید. برنامه های Firebase می توانند iOS، Android یا Web باشند. |
firebase_create_android_sha | هسته | از این برای اضافه کردن هش گواهی SHA مشخص شده به برنامه Firebase Android مشخص شده استفاده کنید. |
firebase_get_environment | هسته | از این برای بازیابی پیکربندی محیط Firebase فعلی برای سرور Firebase CLI و Firebase MCP، از جمله کاربر تأیید شده فعلی، فهرست پروژه، پروژه Firebase فعال و موارد دیگر استفاده کنید. |
firebase_update_environment | هسته | از این برای بهروزرسانی پیکربندی محیط برای سرور Firebase CLI و Firebase MCP، مانند فهرست راهنمای پروژه، پروژه فعال، حساب کاربری فعال، پذیرش شرایط خدمات و موارد دیگر استفاده کنید. برای مشاهده محیط پیکربندی شده فعلی از firebase_get_environment استفاده کنید. |
firebase_init | هسته | از این برای مقداردهی اولیه خدمات Firebase انتخاب شده در فضای کاری (پایگاه داده Cloud Firestore، Firebase Data Connect، Firebase Realtime Database، Firebase AI Logic) استفاده کنید. همه خدمات اختیاری هستند. فقط محصولاتی را که می خواهید تنظیم کنید مشخص کنید. میتوانید ویژگیهای جدید را در فهرست پروژه موجود مقداردهی کنید، اما راهاندازی مجدد یک ویژگی موجود ممکن است پیکربندی را بازنویسی کند. برای استقرار ویژگی های اولیه، دستور firebase deploy بعد از ابزار firebase_init اجرا کنید. |
firebase_get_security_rules | هسته | از این برای بازیابی قوانین امنیتی یک سرویس Firebase مشخص شده استفاده کنید. اگر چندین نمونه از آن سرویس در محصول وجود داشته باشد، قوانین مربوط به نمونه defualt برگردانده می شود. |
firebase_read_resources | هسته | از این برای خواندن محتویات منابع firebase:// یا فهرست منابع موجود استفاده کنید |
firestore_delete_document | آتش نشانی | از این برای حذف اسناد Firestore از پایگاه داده در پروژه فعلی توسط مسیرهای سند کامل استفاده کنید. اگر مسیر دقیق یک سند را می دانید از این استفاده کنید. |
firestore_get_documents | آتش نشانی | از این برای بازیابی یک یا چند سند Firestore از پایگاه داده در پروژه فعلی توسط مسیرهای سند کامل استفاده کنید. اگر مسیر دقیق یک سند را می دانید از این استفاده کنید. |
firestore_list_collections | آتش نشانی | از این برای بازیابی لیستی از مجموعه ها از پایگاه داده Firestore در پروژه فعلی استفاده کنید. |
firestore_query_collection | آتش نشانی | از این برای بازیابی یک یا چند سند Firestore از یک مجموعه پایگاه داده در پروژه فعلی توسط مجموعه ای با یک مسیر سند کامل استفاده کنید. اگر مسیر دقیق یک مجموعه و بند فیلتری را که برای سند می خواهید می دانید، از این استفاده کنید. |
auth_get_users | اعتبار | از این برای بازیابی یک یا چند کاربر Firebase Auth بر اساس لیستی از UID ها یا لیستی از ایمیل ها استفاده کنید. |
auth_update_user | اعتبار | از این برای غیرفعال کردن، فعال کردن یا تنظیم یک ادعای سفارشی در حساب کاربری خاص استفاده کنید. |
auth_set_sms_region_policy | اعتبار | از این برای تنظیم یک خط مشی منطقه پیامک برای احراز هویت Firebase استفاده کنید تا مناطقی را که میتوانند پیامهای متنی را بر اساس فهرست ALLOW یا DENY از کدهای کشور دریافت کنند، محدود کند. این خطمشی پس از تنظیم، همه خطمشیهای موجود را لغو میکند. |
dataconnect_build | داده اتصال | از این برای کامپایل طرحواره، عملیات و/یا اتصالات Firebase Data Connect و بررسی خطاهای ساخت استفاده کنید. |
dataconnect_generate_schema | داده اتصال | از این برای ایجاد طرحواره اتصال داده Firebase بر اساس توضیحات کاربران یک برنامه استفاده کنید. |
dataconnect_generate_operation | داده اتصال | از این برای ایجاد یک پرس و جو یا جهش داده Firebase Data Connect بر اساس طرحی که در حال حاضر مستقر شده و درخواست ارائه شده استفاده کنید. |
dataconnect_list_services | داده اتصال | از این برای فهرست کردن سرویسهای محلی و باطنی Firebase Data Connect استفاده کنید |
dataconnect_execute | داده اتصال | از این برای اجرای یک عملیات GraphQL در برابر سرویس Data Connect یا شبیه ساز آن استفاده کنید. |
storage_get_object_download_url | ذخیره سازی | از این برای بازیابی URL دانلود برای یک شی در سطل Cloud Storage for Firebase استفاده کنید. |
messaging_send_message | پیام رسانی | از این برای ارسال پیام به رمز یا موضوع ثبت نام Firebase Cloud Messaging استفاده کنید. فقط یکی از registration_token یا topic ممکن است در یک تماس خاص ارائه شود. |
functions_get_logs | توابع | از این برای بازیابی صفحه ای از ورودی های گزارش عملکردهای ابری با استفاده از فیلترهای پیشرفته Google Cloud Logging استفاده کنید. |
remoteconfig_get_template | remoteconfig | از این برای بازیابی الگوی مشخص شده Firebase Remote Config از پروژه Firebase فعال فعلی استفاده کنید. |
remoteconfig_update_template | remoteconfig | از این برای انتشار یک الگوی پیکربندی راه دور جدید استفاده کنید یا به نسخه خاصی برای پروژه برگردید |
crashlytics_create_note | crashlytics | یک یادداشت به یک مشکل از crashlytics اضافه کنید. |
crashlytics_delete_note | crashlytics | یک یادداشت را از یک مشکل Crashlytics حذف کنید. |
crashlytics_get_issue | crashlytics | داده هایی را برای یک مشکل Crashlytics دریافت می کند، که می تواند به عنوان نقطه شروع برای اشکال زدایی استفاده شود. |
crashlytics_list_events | crashlytics | از این برای فهرست کردن آخرین رویدادهای مطابق با فیلترهای داده شده استفاده کنید. می تواند برای واکشی نمونه خرابی ها و استثناها برای یک مشکل استفاده شود، که شامل ردیابی پشته و سایر داده های مفید برای اشکال زدایی خواهد بود. |
crashlytics_batch_get_events | crashlytics | رویدادهای خاص را با نام منبع دریافت می کند. می تواند برای واکشی نمونه خرابی ها و استثناها برای یک مشکل استفاده شود، که شامل ردیابی پشته و سایر داده های مفید برای اشکال زدایی خواهد بود. |
crashlytics_list_notes | crashlytics | از این برای فهرست کردن همه یادداشتها برای یک مشکل در Crashlytics استفاده کنید. |
crashlytics_get_top_issues | crashlytics | از این برای شمارش رویدادها و کاربران متمایز متاثر، گروهبندی شده بر اساس مشکل استفاده کنید. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. |
crashlytics_get_top_variants | crashlytics | رویدادها و کاربران متمایز متاثر را میشمارد که بر اساس نوع مشکل گروهبندی میشوند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. |
crashlytics_get_top_versions | crashlytics | رویدادها و کاربران متمایز متاثر را بر اساس نسخه گروهبندی میکند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. |
crashlytics_get_top_apple_devices | crashlytics | رویدادها و کاربران متمایز متاثر را میشمارد که بر اساس دستگاه اپل گروهبندی میشوند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. فقط مربوط به برنامه های iOS، iPadOS و MacOS است. |
crashlytics_get_top_android_devices | crashlytics | رویدادها و کاربران متمایز متاثر را بر اساس دستگاه اندرویدی گروهبندی میکند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. فقط مربوط به برنامه های اندروید است. |
crashlytics_get_top_operating_systems | crashlytics | رویدادها و کاربران متمایز متاثر را بر اساس سیستم عامل گروهبندی میکند. گروه ها بر اساس تعداد رویدادها به ترتیب نزولی مرتب شده اند. فقط رویدادهای منطبق با فیلترهای داده شده را شمارش می کند. |
crashlytics_update_issue | crashlytics | Use this to update the state of Crashlytics issue. |
apphosting_fetch_logs | apphosting | Use this to fetch the most recent logs for a specified App Hosting backend. If buildLogs is specified, the logs from the build process for the latest build are returned. The most recent logs are listed first. |
apphosting_list_backends | apphosting | Use this to retrieve a list of App Hosting backends in the current project. An empty list means that there are no backends. The uri is the public URL of the backend. A working backend will have a managed_resources array that will contain a run_service entry. That run_service.service is the resource name of the Cloud Run service serving the App Hosting backend. The last segment of that name is the service ID. domains is the list of domains that are associated with the backend. They either have type CUSTOM or DEFAULT . Every backend should have a DEFAULT domain. The actual domain that a user would use to conenct to the backend is the last parameter of the domain resource name. If a custom domain is correctly set up, it will have statuses ending in ACTIVE . |
realtimedatabase_get_data | realtimedatabase | Use this to retrieve data from the specified location in a Firebase Realtime Database. |
realtimedatabase_set_data | realtimedatabase | Use this to write data to the specified location in a Firebase Realtime Database. |
منابع
The MCP server provides resources, which are documentation files intended for use by LLMs. Models that support using resources will automatically include relevant resources in the session context.
The following table lists the resources the MCP server makes available.
You can also see this information using the command:
npx firebase-tools@latest mcp --generate-resource-list
نام منبع | توضیحات |
---|---|
backend_init_guide | Firebase Backend Init Guide: guides the coding agent through configuring Firebase backend services in the current project |
ai_init_guide | Firebase GenAI Init Guide: guides the coding agent through configuring GenAI capabilities in the current project utilizing Firebase |
data_connect_init_guide | Firebase Data Connect Init Guide: guides the coding agent through configuring Data Connect for PostgreSQL access in the current project |
firestore_init_guide | Firestore Init Guide: guides the coding agent through configuring Firestore in the current project |
firestore_rules_init_guide | Firestore Rules Init Guide: guides the coding agent through setting up Firestore security rules in the project |
rtdb_init_guide | Firebase Realtime Database Init Guide: guides the coding agent through configuring Realtime Database in the current project |
auth_init_guide | Firebase Authentication Init Guide: guides the coding agent through configuring Firebase Authentication in the current project |
hosting_init_guide | Firebase Hosting Deployment Guide: guides the coding agent through deploying to Firebase Hosting in the current project |
اسناد | Firebase Docs: loads plain text content from Firebase documentation, eg https://firebase.google.com/docs/functions becomes firebase://docs/functions |