도구: list_messages
지정된 Google Chat 대화 (스페이스, 채팅 메시지 (DM) 또는 그룹 DM)에서 마크다운 형식으로 메시지를 가져옵니다. 대화목록, 기간, 메시지 수로 필터링할 수 있습니다. 또한 다음 페이지의 메시지를 가져와 더 많은 컨텍스트를 제공할 수 있습니다. 비공개 메시지 (단일 사용자에게만 표시되는 메시지)는 필터링됩니다.
다음 코드 샘플은 curl를 사용하여 list_messages 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": "list_messages", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
입력 스키마
ListChatMessagesRequest
| JSON 표현 |
|---|
{ "conversationId": string, "threadId": string, "pageSize": integer, "pageToken": string, "startTime": string, "endTime": string } |
| 필드 | |
|---|---|
conversationId |
필수 항목입니다. 대화의 ID입니다. 대화는 스페이스, 채팅 메시지 (DM) 또는 그룹 DM/채팅일 수 있습니다. 형식: spaces/{space} |
threadId |
선택사항입니다. 대화 내 특정 대화목록의 ID입니다. 제공된 경우 이 대화목록의 메시지만 반환됩니다. 생략하면 대화의 모든 대화목록에 있는 메시지가 고려됩니다. 형식: spaces/{space}/threads/{thread} |
pageSize |
선택사항입니다. 반환할 최대 메시지 수입니다. 서비스가 이 값보다 더 적게 반환할 수 있습니다. 지정하지 않으면 기본값은 20입니다. 최댓값은 50입니다. 50을 초과하는 값을 사용하면 자동으로 50으로 변경됩니다. |
pageToken |
선택사항입니다. 이전 list_messages 호출에서 수신한 페이지 토큰입니다. 후속 페이지를 검색하려면 이를 입력합니다. |
startTime |
선택사항입니다. 메시지를 필터링하는 ISO 8601 타임스탬프입니다. 이 시간 이후에 생성된 메시지만 반환됩니다. |
endTime |
선택사항입니다. 메시지를 필터링하는 ISO 8601 타임스탬프입니다. 이 시간 이전에 생성된 메시지만 반환됩니다. |
출력 스키마
요청된 대화의 메시지 목록이 포함된 응답입니다.
ListChatMessagesResponse
| JSON 표현 |
|---|
{
"messages": [
{
object ( |
| 필드 | |
|---|---|
messages[] |
검색된 메시지 목록으로, 시간 역순 (최신순)으로 정렬됩니다. |
nextPageToken |
다음 메시지 페이지를 검색하기 위해 후속 |
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 |
Reserved. |
DRIVE_FILE |
파일이 Google Drive 파일입니다. |
UPLOADED_CONTENT |
파일이 Chat에 업로드됩니다. |
QuoteType
메시지가 인용 답장인지 전달된 메시지인지 나타내는 인용 유형입니다.
| 열거형 | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
Reserved. 정의되지 않은 견적 유형입니다. |
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.readonly