도구: send_message
마크다운 형식으로 대화에 Google Chat 메시지를 보냅니다.
이 도구는 대화 ID, 선택적 스레드 ID, 메시지 텍스트를 입력으로 사용합니다.
대화 ID는 search_conversations 도구를 사용하여 찾을 수 있습니다.
생성된 메시지를 반환합니다.
다음 코드 샘플은 curl를 사용하여 send_message MCP 도구를 호출하는 방법을 보여줍니다.
| 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 |
필수 항목입니다. 메시지를 보낼 대화의 ID(예: 'spaces/AAAA…')입니다. |
threadId |
선택사항입니다. 메시지를 보낼 대화목록의 ID(예: 'spaces/AAAA…/threads/BBBB…')입니다. 설정하지 않으면 메시지가 새 대화목록으로 전송됩니다. |
messageText |
필수 항목입니다. 메시지의 기본 콘텐츠입니다. 표준 마크다운을 사용하여 서식을 추가할 수 있습니다(표는 지원되지 않음). 지원되는 형식은 다음과 같습니다.
|
cards[] |
선택사항입니다. 메일에 첨부된 카드입니다. 카드당 최대 크기는 32KB입니다. 각 카드는 Google Chat 카드 형식 (Google Workspace UIKit 카드/카드 v2)에 따라 JSON 구조로 표현됩니다. 메시지에 카드를 첨부하려면 Chat 앱이 스페이스의 멤버여야 합니다. 카드의 이미지는 지원되지 않습니다. 카드 식별:
|
inlineCitations[] |
선택사항입니다. |
footerCitedSources[] |
선택사항입니다. 메시지 하단 (바닥글)에 참조 카드로 표시되는 최상위 인용 소스입니다. 메시지의 모든 인라인 인용 및 하단 출처에서 인용된 출처는 총 50개까지 허용됩니다. |
구조체
| 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 |
JSON |
numberValue |
JSON 숫자를 나타냅니다. JSON에서 지원되지 않으므로 |
stringValue |
JSON 문자열을 나타냅니다. |
boolValue |
JSON 불리언(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 개발자 프리뷰 프로그램'). 제목에는 마크다운 형식이 지원되지 않습니다. |
url |
필수 항목입니다. 인용된 리소스의 URL입니다. 유효한 http:// 또는 https:// URL이어야 합니다(예: 'https://developers.google.com/workspace/preview'). |
snippet |
선택사항입니다. 소스에서 직접 가져온 짧은 발췌문 또는 스니펫입니다. 호버 카드 또는 바닥글에 표시됩니다. 일반 텍스트만 사용합니다. 최대 길이는 1,000자(영문 기준)입니다. |
imageUrl |
선택사항입니다. 이미지 미리보기 썸네일의 URL입니다(https:// URL을 사용해야 함). |
footer |
선택사항입니다. 카드 바닥글에 표시되는 추가 저작자 표시 텍스트입니다(예: 도메인 이름 'developers.google.com' 또는 작성자/조직 이름). |
NullValue
JSON null을 나타냅니다.
NullValue는 센티널로, 값이 하나만 있는 enum을 사용하여 Value 유형 공용체의 null 값을 나타냅니다.
0 이외의 값이 있는 NullValue 유형의 필드는 잘못된 것으로 간주됩니다. 대부분의 ProtoJSON 직렬 변환기는 정수 값과 관계없이 JSON null로 설정된 null_value가 있는 Value를 내보내므로 0 값으로 왕복합니다.
| 열거형 | |
|---|---|
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 |
마크다운 형식을 사용하는 메시지의 텍스트 본문입니다. |
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 파일의 ID입니다. 소스가 DRIVE_FILE인 경우에만 채워집니다. Google Drive MCP와 함께 사용합니다. |
ReactionSummary
| JSON 표현 |
|---|
{ "emoji": string, "count": integer } |
| 필드 | |
|---|---|
emoji |
이모티콘 유니코드 문자열 또는 맞춤 이모티콘 이름입니다. |
count |
연결된 이모티콘을 사용한 총 반응 수입니다. |
QuotedMessageMetadata
| JSON 표현 |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| 필드 | |
|---|---|
messageId |
출력 전용입니다. 인용되거나 전달된 원본 메시지의 리소스 이름입니다. 형식: spaces/{space}/messages/{message} |
lastUpdateTime |
출력 전용입니다. 인용되거나 전달되기 전에 원본 메시지가 생성되거나 마지막으로 업데이트된 시점의 타임스탬프입니다. 형식: ISO 8601 타임스탬프 |
quoteType |
출력 전용입니다. 견적 유형입니다. |
plaintextBody |
출력 전용입니다. 인용 또는 전달 시점의 원본 메시지 본문 텍스트 스냅샷입니다. |
sender |
출력 전용입니다. 원본 메시지의 작성자 표시 이름입니다. |
attachments[] |
출력 전용입니다. 원본 메일에 포함된 첨부파일입니다. |
forwardedMetadata |
출력 전용입니다. 전달된 메시지의 소스 대화에 관한 메타데이터입니다. |
ForwardedMetadata
| JSON 표현 |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| 필드 | |
|---|---|
conversationId |
출력 전용입니다. 소스 대화의 리소스 이름입니다. 형식: spaces/{space} |
conversationDisplayName |
출력 전용입니다. 메시지가 전달된 시점의 원본 대화 표시 이름입니다. 이름이 지정된 스페이스의 경우 스페이스 이름입니다. 1:1 채팅 메시지의 경우 다른 참여자의 이름입니다. 이름이 지정되지 않은 그룹 채팅의 경우 구성원 이름을 기반으로 생성된 이름입니다. |
UserType
Google Chat 사용자의 유형입니다.
| 열거형 | |
|---|---|
USER_TYPE_UNSPECIFIED |
지정되지 않음. |
HUMAN |
인간 사용자 |
APP |
앱 사용자 |
소스
첨부파일의 소스입니다.
| 열거형 | |
|---|---|
SOURCE_UNSPECIFIED |
예약됨 |
DRIVE_FILE |
파일이 Google Drive 파일입니다. |
UPLOADED_CONTENT |
파일이 Chat에 업로드됩니다. |
QuoteType
메시지가 인용 답장인지 전달된 메시지인지 나타내는 인용 유형입니다.
| 열거형 | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
예약됨 정의되지 않은 견적 유형입니다. |
REPLY |
메시지가 동일한 대화목록에 있는 원본 메시지에 대한 인용 답장입니다. |
FORWARD |
메시지가 다른 대화의 원본 메시지 또는 동일한 대화의 다른 대화목록에서 전달됩니다. |
도구 주석
도구 주석은 특정 도구의 기본 위험을 설명하기 위해 MCP 클라이언트에 전송됩니다. 대부분의 클라이언트는 이러한 힌트를 신뢰할 수 없는 것으로 취급하지만, 사용자에게 확인 메시지를 보낼 시점을 결정하는 데 사용할 수 있습니다.
제목 문자열과 함께 다음 불리언 힌트가 정의됩니다.
readOnlyHint: true인 경우 도구가 환경을 수정하지 않습니다. 기본값: false.destructiveHint: true이면 도구가 파괴적인 작업을 수행할 수 있습니다. false이면 도구는 추가 작업만 수행할 수 있습니다. 기본값은 true입니다.idempotentHint: true인 경우 동일한 인수로 도구를 반복적으로 호출해도 환경에 추가적인 영향을 미치지 않습니다. 기본값: false.openWorldHint: true인 경우 도구는 외부 항목의 '오픈 월드'와 상호작용할 수 있습니다. false이면 도구는 내부 항목과만 상호작용할 수 있습니다. 예를 들어 웹 검색 도구는 오픈 월드이지만 메모리 도구는 오픈 월드가 아닙니다.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ✅
승인 범위
다음 OAuth 범위 중 하나가 필요합니다.
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.create