MCP Tools Reference: chatmcp.googleapis.com

도구: list_messages

지정된 Google Chat 대화 (스페이스, 채팅 메시지 (DM) 또는 그룹 DM)에서 메시지를 Markdown 형식으로 가져옵니다. 스레드, 시간 범위, 메시지 수별로 필터링할 수 있습니다. 또한 메시지의 다음 페이지를 검색하여 더 많은 컨텍스트를 확인할 수 있습니다. 비공개 메시지 (단일 사용자에게만 표시되는 메시지)는 필터링됩니다.

다음 코드 샘플은 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 tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

입력 스키마

ListChatMessagesRequest

JSON 표현
{
  "conversationId": string,
  "threadId": string,
  "pageSize": integer,
  "pageToken": string,
  "startTime": string,
  "endTime": string
}
필드
conversationId

string

필수 항목입니다. 대화의 ID입니다. 대화는 스페이스, 채팅 메시지 (DM) 또는 그룹 DM/채팅일 수 있습니다. 형식: spaces/{space}

threadId

string

선택사항입니다. 대화 내 특정 대화목록의 ID입니다. 제공된 경우 이 대화목록의 메시지만 반환됩니다. 생략하면 대화의 모든 대화목록에 있는 메시지가 고려됩니다. 형식: spaces/{space}/threads/{thread}

pageSize

integer

선택사항입니다. 반환할 최대 메시지 수입니다. 서비스가 이 값보다 더 적게 반환할 수 있습니다. 지정하지 않으면 기본값은 20입니다. 최댓값은 50입니다. 50보다 큰 값을 사용하면 자동으로 50으로 변경됩니다.

pageToken

string

선택사항입니다. 이전 list_messages 호출에서 수신된 페이지 토큰입니다. 후속 페이지를 검색하려면 이를 입력합니다.

startTime

string

선택사항입니다. 메일을 필터링하는 ISO 8601 타임스탬프입니다. 이 시간 이후에 생성된 메시지만 반환됩니다.

endTime

string

선택사항입니다. 메일을 필터링하는 ISO 8601 타임스탬프입니다. 이 시간 이전에 생성된 메시지만 반환됩니다.

출력 스키마

요청된 대화의 메시지 목록이 포함된 응답입니다.

ListChatMessagesResponse

JSON 표현
{
  "messages": [
    {
      object (ChatMessage)
    }
  ],
  "nextPageToken": string
}
필드
messages[]

object (ChatMessage)

가져온 메시지 목록입니다. 시간 역순으로 정렬됩니다 (최신순).

nextPageToken

string

다음 페이지의 메시지를 검색하기 위해 후속 ListMessagesRequest에서 page_token으로 보낼 수 있는 토큰입니다. 이 필드가 비어 있으면 더 이상 페이지가 없습니다.

ChatMessage

JSON 표현
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ]
}
필드
messageId

string

메시지의 리소스 이름입니다. 형식: spaces/{space}/messages/{message}

threadId

string

이 메시지가 속한 대화목록입니다. 메시지가 스레드되지 않은 경우 비어 있습니다. 형식: spaces/{space}/threads/{thread}

plaintextBody

string

마크다운 서식을 사용하는 메시지의 텍스트 본문입니다.

sender

object (User)

메시지 발신자입니다.

createTime

string

출력 전용입니다. 메시지가 생성된 타임스탬프입니다.

threadedReply

boolean

메일이 대화목록 답장인지 여부입니다.

attachments[]

object (ChatAttachmentMetadata)

메일에 포함된 첨부파일입니다.

reactionSummaries[]

object (ReactionSummary)

메일에 포함된 그림 이모티콘 반응 요약입니다.

사용자

JSON 표현
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
필드
userId

string

Chat 사용자의 리소스 이름입니다. 형식: users/{user}

displayName

string

Chat 사용자의 표시 이름입니다.

email

string

사용자의 이메일 주소입니다. 이 필드는 사용자 유형이 HUMAN인 경우에만 채워집니다.

userType

enum (UserType)

사용자 유형입니다.

ChatAttachmentMetadata

JSON 표현
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source)
}
필드
attachmentId

string

첨부파일의 리소스 이름입니다. 형식: spaces/{space}/messages/{message}/attachments/{attachment}

filename

string

첨부파일의 이름입니다.

mimeType

string

콘텐츠 유형 (MIME 유형)입니다.

source

enum (Source)

첨부파일의 소스입니다.

ReactionSummary

JSON 표현
{
  "emoji": string,
  "count": integer
}
필드
emoji

string

그림 이모티콘 유니코드 문자열 또는 맞춤 그림 이모티콘 이름입니다.

count

integer

연결된 이모티콘을 사용한 반응의 총수입니다.

UserType

Google Chat 사용자의 유형입니다.

열거형
USER_TYPE_UNSPECIFIED 지정되지 않음.
HUMAN 실제 사용자
APP 앱 사용자

소스

첨부파일의 소스입니다.

열거형
SOURCE_UNSPECIFIED 예약됨
DRIVE_FILE 파일이 Google Drive 파일입니다.
UPLOADED_CONTENT 파일이 Chat에 업로드됩니다.

도구 주석

도구 주석은 특정 도구의 기본 위험을 설명하기 위해 MCP 클라이언트로 전송됩니다. 대부분의 클라이언트는 이러한 힌트를 신뢰할 수 없는 것으로 취급하지만, 사용자에게 확인 메시지를 전송할 시점을 결정하는 데 사용할 수 있습니다.

제목 문자열과 함께 다음 불리언 힌트가 다음과 같이 정의됩니다.

  • readOnlyHint: true인 경우 도구가 환경을 수정하지 않습니다. 기본값: false.
  • destructiveHint: true인 경우 도구가 파괴적인 작업을 실행할 수 있습니다. false인 경우 도구는 추가 작업만 실행할 수 있습니다. 기본값은 true입니다.
  • idempotentHint: true인 경우 동일한 인수로 도구를 반복적으로 호출해도 환경에 추가적인 영향을 미치지 않습니다. 기본값: false.
  • openWorldHint: true인 경우 도구가 외부 엔티티의 '오픈 월드'와 상호작용할 수 있습니다. false인 경우 도구는 내부 항목과만 상호작용할 수 있습니다. 예를 들어 웹 검색 도구는 오픈 월드이지만 메모리 도구는 오픈 월드가 아닙니다.

파괴적 힌트: ❌ | 멱등성 힌트: ✅ | 읽기 전용 힌트: ✅ | 오픈 월드 힌트: ❌

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

  • https://www.googleapis.com/auth/chat.messages
  • https://www.googleapis.com/auth/chat.messages.readonly