שימוש בשרת MCP מרוחק של Firestore

במאמר הזה מוסבר איך להשתמש בשרת Model Context Protocol‏ (MCP) מרוחק של Firestore כדי להתחבר לאפליקציות מבוססות-AI, כולל Antigravity, ‏ ChatGPT, ‏ Claude ואפליקציות בהתאמה אישית שאתם מפתחים. שרת ה-MCP המרוחק של Firestore מאפשר לכם להשתמש במסמכים שמאוחסנים במסד נתונים של Firestore באפליקציית ה-AI שלכם. שרת ה-MCP המרוחק של Firestore מופעל כשמפעילים את Firestore API.

‫Model Context Protocol (‏MCP) הוא תקן שמגדיר איך מודלים גדולים של שפה (LLM) ואפליקציות או סוכנים של AI מתחברים למקורות נתונים חיצוניים. שרתי MCP מאפשרים לכם להשתמש בכלים, במשאבים ובהנחיות שלהם כדי לבצע פעולות ולקבל נתונים מעודכנים משירות הקצה העורפי שלהם.

מה ההבדל בין שרתי MCP מקומיים לשרתי MCP מרוחקים?

שרתי MCP מקומיים
בדרך כלל פועלים במחשב המקומי ומשתמשים בזרמי הקלט והפלט הסטנדרטיים (stdio) לתקשורת בין שירותים באותו מכשיר.
שרתי MCP מרוחקים
הם פועלים בתשתית של השירות ומציעים נקודת קצה (endpoint) מסוג HTTP לאפליקציות AI, כדי לאפשר תקשורת בין לקוח ה-MCP של ה-AI לבין שרת ה-MCP. מידע נוסף על ארכיטקטורת MCP

ליבה ללא שמירת מצב

בגרסת MCP‏ 2026-07-28, פרוטוקול MCP משתנה מפרוטוקול דו-כיווני עם שמירת מצב (stateful) לפרוטוקול ללא שמירת מצב (stateless). כל בקשת MCP מתארת את עצמה ואפשר לנתב אותה באמצעות כותרות. אין צורך בלחיצת היד של initialize/initialized או ב-Mcp-Session-Id כי כל בקשה כוללת את כל המידע שנדרש בכותרות HTTP או בפרמטר _meta. שרתי MCP יכולים לבקש מידע נוסף שנדרש לכלי באמצעות בקשות הלוך ושוב (MRTR).

כדי לנתב ולעבד בקשות בלי לנתח את גוף הבקשה, נדרשות כמה כותרות MCP, כולל:

למידע נוסף על הארכיטקטורה של MCP, קראו את המפרט של MCP בגרסה 2026-07-28 ואת השינויים העיקריים.

לפני שמתחילים

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Firestore API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. Configure the gcloud CLI to use your federated identity.

    For more information, see Sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. בוחרים מסד נתונים של Firestore במצב Native או יוצרים אחד. רק מסדי נתונים במצב Native במהדורת Enterprise או Standard תומכים בשרת MCP מרוחק.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לשימוש בשרת ה-MCP של Firestore ולביצוע פעולות במסמכי Firestore, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט שבו אתם רוצים להשתמש בשרת ה-MCP של Firestore:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי להשתמש בשרת ה-MCP של Firestore ולבצע פעולות במסמכים ב-Firestore. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי להשתמש בשרת ה-MCP של Firestore ולבצע פעולות במסמכים של Firestore, נדרשות ההרשאות הבאות:

  • מפעיל קריאות לכלי MCP: mcp.tools.call
  • לקרוא ולערוך מסמכים ב-Firestore:
    • datastore.entities.allocateIds
    • datastore.entities.create
    • datastore.entities.delete
    • datastore.entities.get
    • datastore.entities.list
    • datastore.entities.update

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

אימות והרשאה

שרת ה-MCP המרוחק של Firestore משתמש בפרוטוקול OAuth 2.0 עם ניהול זהויות והרשאות גישה (IAM) לאימות ולהרשאה. כל Google Cloud הזהויות נתמכות לאימות בשרתי MCP.

אנחנו ממליצים ליצור זהות נפרדת לסוכנים שמשתמשים בכלים של MCP, כדי שתוכלו לשלוט בגישה למשאבים ולעקוב אחריה. מידע נוסף על אימות זמין במאמר אימות בשרתי MCP.

היקפי ההרשאות של OAuth ב-Firestore MCP

ב-OAuth 2.0 משתמשים בהיקפי הרשאות ובפרטי כניסה כדי לקבוע אם לחשבון משתמש מאומת מסוים מותר לבצע פעולה מסוימת במשאב. למידע נוסף על היקפי ההרשאות של OAuth 2.0 ב-Google, קראו את המאמר שימוש ב-OAuth 2.0 כדי לגשת אל Google APIs.

ל-Firestore יש את היקפי ההרשאות הבאים של OAuth לכלי MCP:

URI של היקף ההרשאות ל-CLI של gcloud תיאור
https://www.googleapis.com/auth/cloud-platform הצגה, עריכה, הגדרה ומחיקה של הנתונים שלך ב- Google Cloud והצגת כתובת האימייל של חשבון Google שלך.

יכול להיות שיידרשו היקפי הרשאות נוספים במשאבים שאליהם ניגשים במהלך קריאת API לכלי. כדי לראות את רשימת היקפי ההרשאות שנדרשים ל-Firestore, עיינו במאמר Firestore API.

הגדרת לקוח MCP לשימוש בשרת MCP של Firestore

אפליקציות וסוכני AI, כמו Claude או Antigravity, יכולים ליצור מופע של לקוח MCP שמתחבר לשרת MCP יחיד. לאפליקציית AI יכולים להיות כמה לקוחות שמתחברים לשרתי MCP שונים. אם האפליקציה שלכם לא מופיעה בהנחיות הספציפיות ללקוח, תוכלו להשתמש במידע הבא כדי להתחבר מרוב האפליקציות.

באפליקציית ה-AI, מחפשים דרך להוסיף שרת MCP מרוחק או להתחבר אליו. בשרת ה-MCP של Firestore, מזינים את הפרטים הבאים:

  • שם השרת: שרת MCP של Firestore
  • כתובת ה-URL של השרת או נקודת הקצה: https://firestore.googleapis.com/mcp
  • תעבורה: HTTP שניתן להעביר בסטרימינג
  • פרטי אימות: בהתאם לשיטת האימות שאתם רוצים להשתמש בה, אתם יכולים להזין את Google Cloud פרטי הכניסה, את מזהה הלקוח והסוד של OAuth או את פרטי הכניסה והזהות של הנציג. מידע נוסף על אימות זמין במאמר אימות בשרתי MCP.
  • ‫OAuth scope: היקף ההרשאות של OAuth 2.0 שבו רוצים להשתמש כשמתחברים לשרת MCP של Firestore.
במדריך הספציפי ללקוח מוסבר איך להגדיר שרת MCP ולהתחבר אליו באפליקציות ספציפיות.

למידע כללי נוסף, אפשר לעיין במקורות המידע הבאים:

שימוש בשרת Firestore MCP עם ADK ב-Python

אתם יכולים להשתמש בערכה לפיתוח סוכנים (ADK) ל-Python כדי ליצור אינטראקציה עם שרת ה-MCP המרוחק של Firestore.

בדוגמה הבאה מוסבר איך להגדיר נציג עם שרת Firestore MCP ולהריץ הנחיה.

import os
import google.auth
from google.auth.transport.requests import Request

from google.adk import Agent
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset, StreamableHTTPConnectionParams
from google.adk.runners import InMemoryRunner, print_event
from google.genai import types

# Set your project configuration
PROJECT_ID = os.environ.get("PROJECT_ID", "your-project-id")
TARGET_PROJECT_ID = os.environ.get("TARGET_PROJECT_ID", "your-target-project-id")

# Authenticate and get token
credentials, _ = google.auth.default()
credentials.refresh(Request())

# Configure the Firestore remote MCP server
mcp_toolset = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url="https://firestore.googleapis.com/mcp",
        headers={
            "Accept": "text/event-stream, application/json",
            "Content-Type": "application/json",
            "Authorization": f"Bearer {credentials.token}"
        },
    ),
)

model_path = f"projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/gemini-2.5-flash"

root_agent = Agent(
    name="mcp_codelab_agent",
    model=model_path,
    instruction="You are a Firestore database assistant. Use the available Firestore MCP tools to query, retrieve, and manage documents in the database based on the user's request.",
    tools=[mcp_toolset],
)

if __name__ == "__main__":
    prompt = f"Please list all Firestore databases under the project `{TARGET_PROJECT_ID}`"

    print("--- Running Agent ---")
    runner = InMemoryRunner(agent=root_agent)
    runner.auto_create_session = True
    events = runner.run(
        user_id="user",
        session_id="session",
        new_message=types.Content(
            parts=[types.Part.from_text(text=prompt)]
        )
    )

    for event in events:
        print_event(event, verbose=True)

באילו כלים אפשר להשתמש

כדי לראות את הפרטים והתיאורים של כלי ה-MCP שזמינים לשרת ה-MCP של Firestore, עיינו בחומר העזר בנושא MCP של Firestore.

כלים לרשימות

משתמשים ב-MCP inspector כדי להציג רשימה של כלים, או שולחים בקשת HTTP מסוג tools/list ישירות לשרת ה-MCP המרוחק של Firestore. השיטה tools/list לא דורשת אימות.

curl -X POST https://firestore.googleapis.com/TOOLSET_ENDPOINT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'MCP-Protocol-Version: MCP_PROTOCOL_VERSION' \
    -H 'Mcp-Method: tools/list' \
    -d '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/list",
      "params": {
        "_meta": {
          "io.modelcontextprotocol/protocolVersion": "MCP_PROTOCOL_VERSION",
          "io.modelcontextprotocol/clientCapabilities": {
            "extensions": {
              "io.modelcontextprotocol/ui": {
                "mimeTypes": ["text/html;profile=mcp-app"]
              }
            }
          }
        }
      }
    }'

מחליפים את מה שכתוב בשדות הבאים:

  • ‫TOOLSET_ENDPOINT: החלק שנותר בנקודת הקצה של ה-MCP אחרי שם השירות. לדוגמה, ב-Firestore, זה יכול להיות mcp/toolset-name.
  • ‫MCP_PROTOCOL_VERSION: גרסת פרוטוקול ה-MCP. לדוגמה, 2026-07-28.

תרחישים לדוגמה

הנה כמה דוגמאות לתרחישי שימוש ולהנחיות לשרת MCP של Firestore:

  • "אילו כלים זמינים לשרת ה-MCP של Firestore?"
  • "הוסף מסמך עם אוסף "book" במסד הנתונים "my-database" ב-Firestore Google Cloud בפרויקט "my-project" עם פרטי ספר שנוצרו."
  • "Get the information for the book with ID 3VyGFIAPRHUNeuH5h2eb from the book collection."
  • "עדכן את שדה השנה של המסמך 3VyGFIAPRHUNeuH5h2eb ל-1995".
  • "הצגת רשימה של כל הספרים באוסף הספרים".
  • "הצגת רשימה של כל מזהי האוספים ברמה הבסיסית (root) של מסד הנתונים "my-database" ב-Firestore".
  • "מחק את המסמך 3VyGFIAPRHUNeuH5h2eb באוסף הספרים".
  • "הצגת רשימה של כל מסדי הנתונים בפרויקט".
  • "Create a Firestore Enterprise database with MongoDB compatibility mode in nam5."
  • "הצגת כל הרשומות באינדקסים של קבוצת האוספים users".

הגדרות אופציונליות של אבטחה ובטיחות

בגלל המגוון הרחב של הפעולות שאפשר לבצע באמצעות כלי MCP, הוא מביא איתו סיכוני אבטחה ושיקולים חדשים. כדי לצמצם ולנהל את הסיכונים האלה,Google Cloud מציע הגדרות ברירת מחדל וכללי מדיניות שניתן להתאים אישית כדי לשלוט בשימוש בכלי MCP בארגון או בפרויקט ב- Google Cloud.

מידע נוסף על אבטחה ופיקוח ב-MCP זמין במאמר אבטחה ובטיחות ב-AI.

שימוש ב-Model Armor

הגנה מוגברת על המודל היא שירות שלGoogle Cloud שנועד לשפר את האבטחה והבטיחות של אפליקציות ה-AI שלכם. הוא פועל באופן יזום כדי לסנן הנחיות ותשובות של מודלי LLM, להגן מפני סיכונים שונים ולתמוך בשיטות לפיתוח אחראי של AI. לא משנה אם אתם פורסים את ה-AI בסביבת הענן שלכם או אצל ספקי שירותי ענן חיצוניים, אתם יכולים להשתמש ב"הגנה מוגברת על המודל" כדי למנוע קלט זדוני, לוודא שהתוכן בטוח, להגן על מידע אישי רגיש, לשמור על תאימות ולאכוף את מדיניות הבטיחות והאבטחה של ה-AI באופן עקבי בכל סביבת ה-AI המגוונת שלכם.

כשהתכונה "הגנה מוגברת על המודל" מופעלת והרישום ביומן מופעל, התכונה מתעדת ביומן את כל המטען הייעודי (payload). זה עלול לחשוף מידע רגיש ביומנים.

ניתוב בקשות של MCP ל-Model Armor

התכונה "הגנה מוגברת על המודל" זמינה באזורים מסוימים. אם אתם מפעילים את Model Armor ומשתמשים בשרת MCP בסמכות שיפוט שבה Model Armor לא נתמך, יכול להיות שההתנהגות של ניתוב הקריאה תהיה שונה בשרתי MCP שונים, ושהיא תפר את התאימות של מיקום אחסון הנתונים לנתונים שנמצאים בשימוש ובמעבר. מידע נוסף על ההתנהגות של שרתי MCP ספציפיים זמין במאמר מוצרים שנתמכים ב-Model Armor.

הפעלת Model Armor

כדי להשתמש ב-Model Armor, צריך להפעיל את ממשקי ה-API של Model Armor.

המסוף

  1. מפעילים את Model Armor API, אם הוא עדיין לא מופעל.

    התפקידים שנדרשים כדי להפעיל ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?

    להפעלת ה-API

  2. בוחרים את הפרויקט שבו רוצים להפעיל את Model Armor.

gcloud

לפני שמתחילים, מבצעים את השלבים הבאים באמצעות Google Cloud CLI עם Model Armor API:

  1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

    gcloud init

  2. מריצים את הפקודה הבאה כדי להגדיר את נקודת הקצה ל-API של שירות Model Armor.

    gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"

    מחליפים את LOCATION באזור שבו רוצים להשתמש ב-Model Armor.

הגדרת הגנה לשרתי MCP של Google ו Google Cloud שרתי MCP מרוחקים

כדי להגן על קריאות ה-API לכלי והתשובות של כלי ה-MCP, אתם יכולים להשתמש בהגדרות אבטחה מינימליות של הגנה מוגברת על המודל. הגדרת רצפה קובעת את מסנני האבטחה המינימליים שחלים על הפרויקט. ההגדרה הזו מחילה קבוצה עקבית של מסננים על כל הקריאות לכלים של MCP והתשובות שלהם בפרויקט.

מגדירים את ההגנה המוגברת על המודל עם הסרת תוכן זדוני או רגיש ב-MCP. מידע נוסף זמין במאמר הגדרת רמות הסינון של Model Armor.

דוגמה לפקודה:

gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--enable-floor-setting-enforcement=TRUE \
--add-integrated-services=GOOGLE_MCP_SERVER \
--google-mcp-server-enforcement-type=INSPECT_AND_BLOCK \
--enable-google-mcp-server-cloud-logging \
--malicious-uri-filter-settings-enforcement=ENABLED \
--add-rai-settings-filters='[{"confidenceLevel": "MEDIUM_AND_ABOVE", "filterType": "DANGEROUS"}]'

מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .

שימו לב להגדרות הבאות:

  • ‫INSPECT_AND_BLOCK: סוג האכיפה שבודק את התוכן בשרת MCP של Google וחוסם הנחיות ותשובות שתואמות למסננים.
  • ‫ENABLED: ההגדרה שמפעילה סינון או אכיפה.
  • ‫MEDIUM_AND_ABOVE: רמת הסמך של הגדרות הסינון של AI אחראי – תוכן מסוכן. אפשר לשנות את ההגדרה הזו, אבל ערכים נמוכים יותר עלולים לגרום ליותר תוצאות חיוביות כוזבות. מידע נוסף מופיע במאמר רמות הסמך של Model Armor.

השבתת הסריקה של תנועת MCP באמצעות Model Armor

כדי להפסיק את הסריקה האוטומטית של הגנה מוגברת על המודל לתעבורת נתונים אל שרתי MCP וממנה, על סמך הגדרות אבטחה מינימליות של הפרויקט, מריצים את הפקודה הבאה:

gcloud model-armor floorsettings update \
  --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
  --remove-integrated-services=GOOGLE_MCP_SERVER

מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud . התכונה "הגנה מוגברת על המודל" לא מחילה באופן אוטומטי את הכללים שמוגדרים בהגדרות המינימום של הפרויקט הזה על תנועה בשרת MCP של Google.

הגדרות הסף וההגדרות הכלליות של Model Armor יכולות להשפיע על יותר מאשר רק MCP. מכיוון שהגנה מוגברת על המודל משתלבת עם שירותים כמו Vertex AI, כל שינוי שתבצעו בהגדרות של רף הסינון יכול להשפיע על סריקת התנועה ועל התנהגויות הבטיחות בכל השירותים המשולבים, ולא רק ב-MCP.

שליטה בשימוש ב-MCP באמצעות מדיניות IAM

כללי מדיניות הדחייה וכללי מדיניות ההרשאה של ניהול זהויות והרשאות גישה (IAM) עוזרים לכם לאבטח את Google Cloud ואת שרתי Google MCP.

אתם יכולים לשלב כמה קריטריונים כדי ליצור מדיניות אבטחה ופיקוח בהתאמה אישית, על ידי מתן גישה או דחיית גישה על סמך:

  • חשבון המשתמש.
  • מאפייני כלים כמו המאפיין "לקריאה בלבד".
  • שם השירות או שם הכלי.
  • מזהה הלקוח ב-OAuth של האפליקציה.

מידע נוסף זמין במאמר שליטה בשימוש ב-MCP באמצעות ניהול זהויות והרשאות גישה.

מעקב אחרי השימוש ב-MCP

אתם יכולים לעקוב אחרי השימוש והזמן שלוקח לכלי ה-MCP של Firestore לפעול באמצעות Cloud Monitoring. המדדים הבאים זמינים למשאב במעקב firestore.googleapis.com/Database:

  • ‫mcp/request_count (בטא): מספר הקריאות ל-MCP של Firestore.
  • ‫mcp/request_latencies (בטא): התפלגות זמני האחזור של קריאות ל-MCP של Firestore.

אפשר לקבץ ולסנן את המדדים האלה לפי התוויות הבאות:

  • ‫tool_name: השם של כלי ה-MCP שמבצע את הקריאה ל-MCP.

למידע נוסף על מדדי Firestore, ראו מדדי Firestore.

המאמרים הבאים