כלי: send_message
שליחת הודעת צ'אט ב-Google Chat לשיחה עם עיצוב Markdown.
הכלי הזה משתמש במזהה שיחה, במזהה שרשור אופציונלי ובטקסט של הודעה כקלט.
אפשר למצוא את מזהי השיחות באמצעות הכלי search_conversations.
היא מחזירה את ההודעה שנוצרה.
בדוגמת הקוד הבאה מוסבר איך להשתמש ב-curl כדי להפעיל את כלי ה-MCP send_message.
| בקשת Curl |
|---|
curl --location 'https://chatmcp.googleapis.com/mcp/v1' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "send_message", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
סכימת הקלט
SendMessageRequest
| ייצוג ב-JSON |
|---|
{ "conversationId": string, "threadId": string, "messageText": string, "cards": [ { object } ], "inlineCitations": [ { object ( |
| שדות | |
|---|---|
conversationId |
חובה. המזהה של השיחה (למשל, "spaces/AAAA...") שאליה רוצים לשלוח את ההודעה. |
threadId |
אופציונלי. המזהה של השרשור (למשל, 'spaces/AAAA.../threads/BBBB...') שאליו רוצים לשלוח את ההודעה. אם לא מגדירים את הפרמטר הזה, ההודעה תישלח לשרשור חדש. |
messageText |
חובה. התוכן העיקרי של ההודעה. אפשר להוסיף עיצוב באמצעות Markdown רגיל (שימו לב שטבלאות לא נתמכות). אפשר להשתמש בפורמטים הבאים:
|
cards[] |
אופציונלי. כרטיסים שמצורפים להודעה. הגודל המקסימלי הוא 32KB לכל כרטיס. כל כרטיס מיוצג כמבנה JSON לפי הפורמט של כרטיס Google Chat (כרטיס Google Workspace UIKit / כרטיסים v2). כדי לצרף כרטיסים להודעה, האפליקציה ל-Chat צריכה להיות חלק מהמרחב. זיהוי הכרטיס:
|
inlineCitations[] |
אופציונלי. הפניות למקורות בגוף הטקסט בתוך |
footerCitedSources[] |
אופציונלי. מקורות מצוטטים ברמה העליונה שמוצגים ככרטיסי הפניה בחלק התחתון (כותרת תחתונה) של ההודעה. אפשר להוסיף עד 50 מקורות מצוטטים בסך הכול בכל הציטוטים בגוף הטקסט ורשימת המקורות בכותרת התחתונה בהודעה. |
Struct
| ייצוג ב-JSON |
|---|
{ "fields": { string: value, ... } } |
| שדות | |
|---|---|
fields |
מפה לא מסודרת של ערכים שהוקלדו באופן דינמי. אובייקט שמכיל רשימה של זוגות |
FieldsEntry
| ייצוג ב-JSON |
|---|
{ "key": string, "value": value } |
| שדות | |
|---|---|
key |
|
value |
|
ערך
| ייצוג ב-JSON |
|---|
{ "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array } |
| שדות | |
|---|---|
שדה של איחוד kind. סוג הערך. הערך kind יכול להיות רק אחד מהבאים: |
|
nullValue |
מייצג |
numberValue |
מייצג מספר ב-JSON. הערך לא יכול להיות |
stringValue |
מייצג מחרוזת JSON. |
boolValue |
מייצג ערך בוליאני של JSON (ליטרל |
structValue |
מייצג אובייקט JSON. |
listValue |
מייצג מערך JSON. |
ListValue
| ייצוג ב-JSON |
|---|
{ "values": [ value ] } |
| שדות | |
|---|---|
values[] |
שדה חוזר של ערכים שהוקלדו באופן דינמי. |
ציטוט ביבליוגרפי
| ייצוג ב-JSON |
|---|
{
"id": string,
"citedSources": [
{
object ( |
| שדות | |
|---|---|
id |
חובה. מזהה ייחודי שתואם למאפיין |
citedSources[] |
חובה. מקור אחד או יותר שמצורפים לכרטיס הצף של הציטוט הזה. אפשר להוסיף עד 50 מקורות מצוטטים בסך הכול בכל הציטוטים בגוף הטקסט ורשימת המקורות בכותרת התחתונה בהודעה. |
CitedSource
| ייצוג ב-JSON |
|---|
{ "title": string, "url": string, "snippet": string, "imageUrl": string, "footer": string } |
| שדות | |
|---|---|
title |
חובה. כותרת המקור בטקסט פשוט (לדוגמה, "תוכנית 'תצוגה מקדימה למפתחים' של Google Workspace"). אי אפשר להשתמש בפורמט Markdown בכותרות. |
url |
חובה. כתובת ה-URL של המשאב המצוטט (חייבת להיות כתובת URL חוקית מסוג http:// או https:// , למשל "https://developers.google.com/workspace/preview"). |
snippet |
אופציונלי. קטע קצר ישירות מהמקור. מוצג בכרטיס הצף או בכותרת התחתונה. טקסט פשוט בלבד. האורך המקסימלי הוא 1,000 תווים. |
imageUrl |
אופציונלי. כתובת URL של תמונה ממוזערת לתצוגה מקדימה (חייבת להיות כתובת URL מסוג https:// ). |
footer |
אופציונלי. טקסט נוסף לציון קרדיט שמוצג בכותרת התחתונה של הכרטיס (למשל, שם הדומיין developers.google.com או שם המחבר או הארגון). |
NullValue
מייצג null ב-JSON.
NullValue הוא sentinel, שמשתמש ב-enum עם ערך אחד בלבד כדי לייצג את הערך null לאיחוד מסוג Value.
שדה מסוג NullValue עם ערך שונה מ-0 נחשב לא תקין. רוב ה-serializers של ProtoJSON יפיקו Value עם null_value שמוגדר כ-null של JSON, בלי קשר לערך של המספר השלם, ולכן יחזרו לערך 0.
| טיפוסים בני מנייה (enum) | |
|---|---|
NULL_VALUE |
ערך Null. |
סכימת הפלט
תגובה לשליחת הודעה לשיחה ב-Google Chat.
SendMessageResponse
| ייצוג ב-JSON |
|---|
{
"message": {
object ( |
| שדות | |
|---|---|
message |
ההודעה שנשלחה. |
ChatMessage
| ייצוג ב-JSON |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| שדות | |
|---|---|
messageId |
שם המשאב של ההודעה. פורמט: spaces/{space}/messages/{message} |
threadId |
השרשור שההודעה הזו שייכת אליו. השדה הזה יהיה ריק אם ההודעה לא בשרשור. פורמט: spaces/{space}/threads/{thread} |
plaintextBody |
גוף הטקסט של ההודעה בפורמט Markdown. |
sender |
השולח של ההודעה. |
createTime |
פלט בלבד. חותמת הזמן של מועד יצירת ההודעה. פורמט: חותמת זמן לפי תקן ISO 8601. |
threadedReply |
אם ההודעה היא תשובה בשרשור. |
attachments[] |
קבצים מצורפים שכלולים בהודעה. |
reactionSummaries[] |
סיכום התגובות באמוג'י שכלולות בהודעה. |
quotedMessageMetadata |
פלט בלבד. מידע על הודעה מקורית שצוטטה או הועברה בהודעה הזו. הערה: השדה הזה נמצא בפיתוח ויכול להיות שהוא עדיין לא מופיע בכל הסביבות. |
משתמש
| ייצוג ב-JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| שדות | |
|---|---|
userId |
שם המשאב של המשתמש ב-Chat. פורמט: users/{user}. |
displayName |
השם המוצג של המשתמש ב-Chat. |
email |
כתובת האימייל של המשתמש. השדה הזה מאוכלס רק כשסוג המשתמש הוא HUMAN. |
userType |
סוג המשתמש. |
ChatAttachmentMetadata
| ייצוג ב-JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| שדות | |
|---|---|
attachmentId |
שם המשאב של הקובץ המצורף. פורמט: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
שם הקובץ המצורף. |
mimeType |
סוג התוכן (סוג MIME). |
source |
המקור של הקובץ המצורף. |
driveFileId |
פלט בלבד. המזהה של הקובץ ב-Google Drive. מאוכלס רק כשהמקור הוא DRIVE_FILE. אפשר להשתמש בה עם ה-MCP של Google Drive. |
ReactionSummary
| ייצוג ב-JSON |
|---|
{ "emoji": string, "count": integer } |
| שדות | |
|---|---|
emoji |
מחרוזת ה-Unicode של האמוג'י או השם של האמוג'י בהתאמה אישית. |
count |
המספר הכולל של התגובות באמצעות האמוג'י המשויך. |
QuotedMessageMetadata
| ייצוג ב-JSON |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| שדות | |
|---|---|
messageId |
פלט בלבד. שם המשאב של ההודעה המקורית שצוטטה או הועברה. פורמט: spaces/{space}/messages/{message} |
lastUpdateTime |
פלט בלבד. חותמת זמן של מועד היצירה או העדכון האחרון של ההודעה המקורית, לפני שהיא צוטטה או הועברה. פורמט: חותמת זמן לפי תקן ISO 8601. |
quoteType |
פלט בלבד. סוג הציטוט. |
plaintextBody |
פלט בלבד. תמונת מצב של גוף הטקסט של ההודעה המקורית בזמן הציטוט או ההעברה. מעוצב באמצעות Markdown עבור |
sender |
פלט בלבד. השם המוצג של מחבר ההודעה המקורית. |
attachments[] |
פלט בלבד. קבצים מצורפים שהיו חלק מההודעה המקורית. השדה הזה מאוכלס רק בסוג הציטוט |
forwardedMetadata |
פלט בלבד. מטא-נתונים על השיחה שממנה הועברה ההודעה. השדה הזה מאוכלס רק בסוג הציטוט |
ForwardedMetadata
| ייצוג ב-JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| שדות | |
|---|---|
conversationId |
פלט בלבד. שם המשאב של השיחה המקורית. פורמט: spaces/{space} |
conversationDisplayName |
פלט בלבד. השם המוצג של השיחה המקורית בזמן שההודעה הועברה. במרחבים משותפים עם שם, זה השם של המרחב. בצ'אטים אישיים, זה השם של המשתתף השני. בצ'אטים קבוצתיים ללא שם, השם נוצר על סמך שמות המשתתפים. |
UserType
סוג המשתמש ב-Google Chat.
| טיפוסים בני מנייה (enum) | |
|---|---|
USER_TYPE_UNSPECIFIED |
לא צוין. |
HUMAN |
משתמש אנושי. |
APP |
משתמש באפליקציה. |
מקור
המקור של הקובץ המצורף.
| טיפוסים בני מנייה (enum) | |
|---|---|
SOURCE_UNSPECIFIED |
שמורות. |
DRIVE_FILE |
הקובץ הוא קובץ ב-Google Drive. |
UPLOADED_CONTENT |
הקובץ יועלה ל-Chat. |
QuoteType
סוג הציטוט, שמציין אם ההודעה היא תשובה עם ציטוט או הודעה שהועברה.
| טיפוסים בני מנייה (enum) | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
שמורות. סוג הציטוט לא מוגדר. |
REPLY |
ההודעה היא תשובה עם ציטוט להודעה מקורית באותו שרשור. |
FORWARD |
ההודעה הועברה מהודעה מקורית בשיחה אחרת, או משרשור אחר באותה שיחה. |
הערות לגבי הכלים
הערות הכלים נשלחות ללקוחות MCP כדי לתאר את הסיכון הבסיסי של כלי מסוים. רוב הלקוחות מתייחסים לרמזים האלה כלא מהימנים, אבל אפשר להשתמש בהם כדי להחליט מתי לשלוח למשתמש בקשה לאישור.
בנוסף למחרוזת הכותרת, הרמזים הבוליאניים הבאים מוגדרים כך:
-
readOnlyHint: אם הערך הוא True, הכלי לא משנה את הסביבה שלו. ברירת המחדל: false. -
destructiveHint: אם הערך הוא True, הכלי יכול לבצע פעולות הרסניות. אם הערך הוא False, הכלי יכול לבצע רק פעולות הוספה. ברירת המחדל: true. -
idempotentHint: אם הערך הוא True, קריאה חוזרת לכלי עם אותם ארגומנטים לא תשפיע על הסביבה שלו. ברירת המחדל: false. -
openWorldHint: אם הערך הוא True, הכלי יכול לקיים אינטראקציה עם "עולם פתוח" של ישויות חיצוניות. אם הערך הוא false, הכלי יכול לקיים אינטראקציה רק עם ישויות פנימיות. לדוגמה, כלי חיפוש באינטרנט הוא כלי בעולם פתוח, אבל כלי זיכרון הוא לא כלי בעולם פתוח.
רמז לפעולה הרסנית: ❌ | רמז לפעולה אידמפוטנטית: ❌ | רמז לפעולה לקריאה בלבד: ❌ | רמז לפעולה בעולם פתוח: ✅
היקפי הרשאות
נדרש אחד מהיקפי ההרשאות הבאים של OAuth:
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.create