שימוש בשרת MCP מרוחק של Firestore
במאמר הזה נסביר איך להשתמש בשרת Model Context Protocol (MCP) מרוחק של Firestore כדי להתחבר לאפליקציות מבוססות-AI, כולל Gemini CLI, ChatGPT, Claude ואפליקציות בהתאמה אישית שאתם מפתחים. שרת ה-MCP המרוחק של Firestore מאפשר לכם ליצור אינטראקציה עם מסמכים שמאוחסנים במסד נתונים של Firestore מתוך אפליקציית ה-AI שלכם. שרת ה-MCP המרוחק של Firestore מופעל כשמפעילים את Firestore API.Model Context Protocol (MCP) הוא תקן שקובע איך מודלים גדולים של שפה (LLM) ואפליקציות או סוכני AI מתחברים למקורות נתונים חיצוניים. שרתי MCP מאפשרים לכם להשתמש בכלים, במשאבים ובהנחיות שלהם כדי לבצע פעולות ולקבל נתונים מעודכנים משירות ה-Backend שלהם.
מה ההבדל בין שרתי MCP מקומיים לבין שרתי MCP מרחוק?
- שרתי MCP מקומיים
- בדרך כלל פועלים במחשב המקומי ומשתמשים בזרמי הקלט והפלט הרגילים (stdio) לתקשורת בין שירותים באותו מכשיר.
- שרתי MCP מרוחקים
- פועל בתשתית של השירות ומציע נקודת קצה של HTTP לאפליקציות AI לצורך תקשורת בין לקוח ה-MCP של ה-AI לבין שרת ה-MCP. מידע נוסף על ארכיטקטורת MCP זמין במאמר ארכיטקטורת MCP.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Firestore API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Firestore API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - בוחרים מסד נתונים של Firestore במצב Native שרוצים להשתמש בו או יוצרים מסד נתונים. רק מסדי נתונים במצב Native במהדורות Enterprise או Standard תומכים בשרת MCP מרוחק.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לשימוש בשרת ה-MCP של Firestore ולאינטראקציה עם מסמכי Firestore, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט שבו אתם רוצים להשתמש בשרת ה-MCP של Firestore:
-
ביצוע קריאות לכלי ה-MCP:
משתמש בכלי ה-MCP (
roles/mcp.toolUser) -
קריאה ועריכה של מסמכי Firestore:
משתמש Firestore (
roles/datastore.user)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש כוללים את ההרשאות שנדרשות לשימוש בשרת ה-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 של כלי ה-MCP ב-Firestore
ב-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. |
יכול להיות שיידרשו היקפי הרשאות נוספים במשאבים שאליהם ניגשים במהלך הפעלת כלי. כדי לראות רשימה של היקפי ההרשאות שנדרשים ל-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
- Transport: HTTP
- פרטי אימות: בהתאם לשיטת האימות שבה רוצים להשתמש, אפשר להזין את Google Cloud פרטי הכניסה, את מזהה הלקוח וסוד הלקוח של OAuth, או את הזהות ופרטי הכניסה של סוכן. מידע נוסף על אימות זמין במאמר אימות לשרתי MCP.
- היקף OAuth: היקף OAuth 2.0 שבו רוצים להשתמש כשמתחברים לשרת MCP של Firestore.
הנחיות ספציפיות לאפליקציות לגבי הגדרה וחיבור לשרת MCP מפורטות במאמר הנחיות ספציפיות ללקוחות.
הנחיות כלליות נוספות זמינות במקורות המידע הבאים:
שימוש בשרת MCP של Firestore עם ADK ב-Python
אתם יכולים להשתמש בערכה לפיתוח סוכנים (ADK) ל-Python כדי ליצור אינטראקציה עם שרת ה-MCP המרוחק של Firestore.
בדוגמה הבאה מוצג איך להגדיר סוכן עם שרת MCP של Firestore ולהריץ הנחיה.
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 כדי להציג רשימה של כלים, או לשלוח בקשת HTTP tools/list ישירות לשרת MCP מרוחק של Firestore. בשיטה tools/list לא נדרש אימות.
POST /mcp HTTP/1.1
Host: firestore.googleapis.com
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/list",
}
תרחישים לדוגמה
הנה כמה תרחישי שימוש והנחיות לדוגמה לשרת Firestore MCP:
- "אילו כלים זמינים לשרת ה-MCP של Firestore?"
- "Add a document with collection "book" under my Firestore database "my-database" with the Google Cloud project "my-project" with generated book info."
- "Get the information for the book with ID 3VyGFIAPRHUNeuH5h2eb from the book collection." (קבלת המידע על הספר עם המזהה 3VyGFIAPRHUNeuH5h2eb מאוסף הספרים).
- "Update the year field of document 3VyGFIAPRHUNeuH5h2eb to 1995." (עדכן את שדה השנה של המסמך 3VyGFIAPRHUNeuH5h2eb ל-1995).
- "תציג את כל הספרים באוסף הספרים".
- "תציג את כל מזהי האוספים מתחת לשורש של מסד הנתונים 'my-database' ב-Firestore".
- "Delete the document 3VyGFIAPRHUNeuH5h2eb under the book collection." (מחק את המסמך 3VyGFIAPRHUNeuH5h2eb באוסף הספרים).
- "List all databases under the project."
- "Create a Firestore Enterprise database with MongoDB compatibility mode in nam5."
- "תציג את כל הערכים באינדקס של משתמשי קבוצת האוסף".
הגדרות אבטחה ובטיחות אופציונליות
השימוש ב-MCP כרוך בסיכוני אבטחה חדשים ובשיקולים חדשים, בגלל המגוון הרחב של הפעולות שאפשר לבצע באמצעות כלי MCP. כדי למזער את הסיכונים האלה ולנהל אותם,Google Cloud מציע הגדרות ברירת מחדל ומדיניות שניתנת להתאמה אישית כדי לשלוט בשימוש בכלי MCP בארגון או בפרויקט שלכם ב- Google Cloud.
מידע נוסף על אבטחה וניהול של MCP זמין במאמר בנושא אבטחה ובטיחות של AI.
שימוש בהגנה מוגברת על המודל
Model Armor הואGoogle Cloud שירות שנועד לשפר את האבטחה והבטיחות של אפליקציות ה-AI שלכם. היא פועלת על ידי סינון יזום של הנחיות ותשובות של מודלים גדולים של שפה (LLM), הגנה מפני סיכונים שונים ותמיכה בשיטות עבודה אחראיות בתחום ה-AI. בין אם אתם פורסים AI בסביבת הענן שלכם או אצל ספקי שירותי ענן חיצוניים, הגנה מוגברת על המודל יכול לעזור לכם למנוע קלט זדוני, לאמת את בטיחות התוכן, להגן על מידע אישי רגיש, לשמור על תאימות ולאכוף את מדיניות הבטיחות והאבטחה של ה-AI באופן עקבי בסביבת ה-AI המגוונת שלכם.
כשמפעילים את Model Armor עם הפעלת רישום ביומן, המערכת רושמת ביומן את כל מטען הנתונים. הפעולה הזו עלולה לחשוף מידע רגיש ביומני הרישום.
ניתוב בקשות של MCP אל Model Armor
Model Armor זמין באזורים מסוימים. כש-Model Armor מופעל ואתם משתמשים בשרת MCP בתחום שיפוט ש-Model Armor לא תומך בו, יכול להיות שהתנהגות הניתוב של השיחה תהיה שונה עבור שרתי MCP שונים, ושהיא תפגע בתאימות של נתוני השימוש והנתונים במעבר לדרישות של שמירת נתונים. מידע נוסף על ההתנהגות של שרתי MCP בודדים זמין במאמר בנושא הגנה מוגברת על המודל: מוצרים נתמכים.הפעלת הגנה מוגברת על המודל
כדי להשתמש ב-Model Armor, צריך להפעיל את ממשקי ה-API של Model Armor.
המסוף
מפעילים את הגנה מוגברת על המודל API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםבוחרים את הפרויקט שבו רוצים להפעיל את הגנה מוגברת על המודל.
gcloud
לפני שמתחילים, צריך לבצע את השלבים הבאים באמצעות Google Cloud CLI עם Model Armor API:
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
-
מריצים את הפקודה הבאה כדי להגדיר את נקודת קצה ל-API לשירות הגנה מוגברת על המודל.
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
מחליפים את
LOCATIONבאזור שבו רוצים להשתמש בהגנה מוגברת על המודל.
הגדרת הגנה לשרתי MCP של Google ושרתי MCP מרוחקים Google Cloud
כדי להגן על השיחות עם כלי ה-MCP והתשובות שלו, אפשר להשתמש בהגדרות של Model Armor. הגדרת רמת בסיס מגדירה את מסנני האבטחה המינימליים שחלים על הפרויקט. ההגדרה הזו מחילה קבוצה עקבית של מסננים על כל הקריאות והתשובות של כלי 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: רמת הסמך של ההגדרות של המסנן 'אתיקה של בינה מלאכותית – מסוכן'. אפשר לשנות את ההגדרה הזו, אבל ערכים נמוכים יותר עלולים להוביל ליותר תוצאות חיוביות כוזבות. מידע נוסף זמין במאמר בנושא רמות הסמך של הגנה מוגברת על המודל.
השבתת סריקת תעבורת נתונים של MCP באמצעות הגנה מוגברת על המודל
כדי להפסיק את הסריקה האוטומטית של התנועה אל השרתים של Google MCP וממנה על ידי Model Armor על סמך הגדרות הרצפה של הפרויקט, מריצים את הפקודה הבאה:
gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--remove-integrated-services=GOOGLE_MCP_SERVER
מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud . התכונה הגנה מוגברת על המודל לא מחילה באופן אוטומטי את הכללים שמוגדרים בהגדרות אבטחה מינימליות של הפרויקט הזה על תעבורת נתונים של שרת MCP.
ההגדרות של הסף התחתון של Model Armor וההגדרה הכללית יכולות להשפיע על יותר דברים מאשר רק על MCP. Model Armor משולב עם שירותים כמו 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(בטא): התפלגות זמני האחזור של קריאות ל-Firestore MCP.
אפשר לקבץ ולסנן את המדדים האלה לפי התוויות הבאות:
-
tool_name: השם של כלי ה-MCP שמבצע את הקריאה ל-MCP.
מידע נוסף על מדדים של Firestore זמין במאמר מדדים של Firestore.
המאמרים הבאים
- קוראים את מסמכי העזרה של Firestore MCP.
- מידע נוסף על השרתים של Google Cloud MCP
- איך משתמשים בהנחיית AI כדי לנסח כללי אבטחה