MCP Tools Reference: chatmcp.googleapis.com

ツール: search_messages

キーワードとフィルタを使用して Google Chat メッセージを検索し、マークダウン形式で返します。ユーザーがアクセスできるすべてのスペースで機能します。特定の会話に限定することもできます。

search_messages と他の検索ツールまたは読み取りツールのどちらを使用するかを判断する際は、次のガイダンスに従ってください。

  • search_messages は、特定のメッセージの内容、キーワード、メンション、リンク、送信者、未読メッセージを検索する場合に使用します。複数のスペースにまたがっている可能性のある場合や、会話 ID が不明な場合にも使用できます。
  • 特定のスペースまたはスレッド ID がわかっていて、メッセージを時系列で順番に読み取る場合は、list_messages を使用します。
  • search_conversations を使用して、スペースの表示名または参加者で会話 ID などのスペースのメタデータを検索します(メッセージの内容ではなく、メタデータのみを検索します)。

特定のフィルタを指定せずに searchParameters を指定すると、ユーザーがアクセスできる会話全体の最近のメッセージが返されます。

次のコードサンプルは、curl を使用して search_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": "search_messages",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

入力スキーマ

SearchMessagesRequest

JSON 表現
{
  "searchParameters": {
    object (SearchParameters)
  },
  "pageSize": integer,
  "pageToken": string
}
フィールド
searchParameters

object (SearchParameters)

必須。検索に使用する検索パラメータ。

pageSize

integer

省略可。返される結果の最大件数(最大 100 件)。指定されていない場合、最大で 25 個が返されます。

pageToken

string

省略可。前回の search_messages 呼び出しから受け取ったページトークン。後続のページを取得するにはこれを指定します。

SearchParameters

JSON 表現
{
  "keywords": [
    string
  ],
  "conversationId": string,
  "sender": string,
  "isUnread": boolean,
  "hasLink": boolean,
  "startTime": string,
  "endTime": string,
  "mentionsMe": boolean,
  "conversationIncludesUser": string,
  "spaceDisplayNames": [
    string
  ],
  "conversationTypes": [
    enum (ConversationType)
  ],
  "hasAttachment": boolean
}
フィールド
keywords[]

string

省略可。結果のフィルタリングに使用されるキーワードのセット。

conversationId

string

省略可。search_conversations ツールから返された特定の会話識別子に検索を絞り込みます。形式: spaces/{ID}。

sender

string

省略可。特定のユーザーからのメッセージをフィルタします。送信者のメールアドレスまたはリソース名のいずれかを使用できます。ユーザー リソース名の形式は users/{ID} です。{ID} は個人 ID またはメールアドレスです。

isUnread

boolean

省略可。呼び出し元のユーザーがまだ読んでいないメッセージをフィルタします。

hasLink

boolean

省略可。1 つ以上の URL を含むメッセージをフィルタします。

startTime

string

省略可。この時刻より後に作成されたメッセージをフィルタします。形式: ISO 8601 タイムスタンプ。

endTime

string

省略可。この時刻より前に作成されたメッセージをフィルタします。形式: ISO 8601 タイムスタンプ。

mentionsMe

boolean

省略可。呼び出し元のユーザーを明示的にメンションしているメッセージをフィルタします。

conversationIncludesUser

string

省略可。特定のユーザーのメールアドレスまたは ID が含まれる DM やグループ チャットのメッセージをフィルタします。

spaceDisplayNames[]

string

省略可。スペース名のリストでフィルタします。スペースの表示名は部分一致します。注: 上位 5 件の一致のみが返されます。

conversationTypes[]

enum (ConversationType)

省略可。会話の種類でフィルタします。

hasAttachment

boolean

省略可。1 つ以上の添付ファイルを含むメールをフィルタします。注: このフィールドは開発中のため、一部の環境ではまだサポートされていない可能性があります。

ConversationType

会話の種類を定義します。

列挙型
CONVERSATION_TYPE_UNSPECIFIED 指定なし。
NAMED_SPACE 名前付きスペース。
GROUP_CHAT 3 人以上のユーザーによるグループ チャット。
DIRECT_MESSAGE 2 人のユーザー間、またはユーザーと Chat 用アプリ間のダイレクト メッセージ。

出力スキーマ

Google Chat のチャット メッセージを検索するためのレスポンス。next_page_token が入力されている場合、そのトークンを使用して SearchMessages を再度呼び出すと、結果の次のページを取得できます。

SearchMessagesResponse

JSON 表現
{
  "messages": [
    {
      object (ChatMessage)
    }
  ],
  "nextPageToken": string
}
フィールド
messages[]

object (ChatMessage)

検索条件に一致するメッセージ オブジェクトのリスト。

nextPageToken

string

次のページを取得するために page_token として送信できるトークン。このフィールドを省略すると、後続のページはなくなります。

ChatMessage

JSON 表現
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ],
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  }
}
フィールド
messageId

string

メッセージのリソース名。形式: spaces/{space}/messages/{message}

threadId

string

このメッセージが属するスレッド。メッセージがスレッド化されていない場合、このフィールドは空になります。形式: spaces/{space}/threads/{thread}

plaintextBody

string

マークダウン形式を使用したメッセージのテキスト本文。

sender

object (User)

メッセージの送信者。

createTime

string

出力専用。メッセージが作成されたときのタイムスタンプ。形式: ISO 8601 タイムスタンプ。

threadedReply

boolean

メッセージがスレッドの返信かどうか。

attachments[]

object (ChatAttachmentMetadata)

メールに含まれる添付ファイル。

reactionSummaries[]

object (ReactionSummary)

メッセージに含まれる絵文字のリアクションの概要。

quotedMessageMetadata

object (QuotedMessageMetadata)

出力専用。このメッセージで引用または転送されている元のメッセージに関する情報。注: このフィールドは開発中のため、まだすべての環境に表示されるわけではありません。

ユーザー

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),
  "driveFileId": string
}
フィールド
attachmentId

string

添付ファイルのリソース名。形式: spaces/{space}/messages/{message}/attachments/{attachment}。

filename

string

添付ファイルの名前。

mimeType

string

コンテンツ タイプ(MIME タイプ)。

source

enum (Source)

添付ファイルのソース。

driveFileId

string

出力専用。Google ドライブ ファイルの ID。ソースが DRIVE_FILE の場合にのみ入力されます。Google ドライブ MCP と組み合わせて使用します。

ReactionSummary

JSON 表現
{
  "emoji": string,
  "count": integer
}
フィールド
emoji

string

絵文字の Unicode 文字列またはカスタム絵文字名。

count

integer

関連付けられた絵文字を使用したリアクションの合計数。

QuotedMessageMetadata

JSON 表現
{
  "messageId": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "plaintextBody": string,
  "sender": string,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
フィールド
messageId

string

出力専用。引用または転送された元のメッセージのリソース名。形式: spaces/{space}/messages/{message}

lastUpdateTime

string

出力専用。元のメッセージが作成された、または引用や転送の前に最後に更新されたときのタイムスタンプ。形式: ISO 8601 タイムスタンプ。

quoteType

enum (QuoteType)

出力専用。見積もりの種類。

plaintextBody

string

出力専用。引用または転送時の元のメッセージのテキスト本文のスナップショット。FORWARD にはマークダウン、REPLY には書式なしテキストを使用してフォーマットされます。

sender

string

出力専用。元のメッセージの作成者の表示名。

attachments[]

object (ChatAttachmentMetadata)

出力専用。元のメッセージに含まれていた添付ファイル。FORWARD 見積もりタイプの場合にのみ入力されます。

forwardedMetadata

object (ForwardedMetadata)

出力専用。転送されたメッセージのソース会話に関するメタデータ。FORWARD 見積もりタイプの場合にのみ入力されます。

ForwardedMetadata

JSON 表現
{
  "conversationId": string,
  "conversationDisplayName": string
}
フィールド
conversationId

string

出力専用。ソース会話のリソース名。形式: spaces/{space}

conversationDisplayName

string

出力専用。メッセージが転送された時点のソース会話の表示名。名前付きスペースの場合、これはスペース名です。1 対 1 のダイレクト メッセージの場合、これは相手の名前です。名前のないグループ チャットの場合、これはメンバーの名前に基づいて生成された名前です。

UserType

Google Chat ユーザーのタイプ。

列挙型
USER_TYPE_UNSPECIFIED 指定なし。
HUMAN 人間のユーザー。
APP アプリユーザー。

ソース

添付ファイルのソース。

列挙型
SOURCE_UNSPECIFIED 予約済み。
DRIVE_FILE ファイルが Google ドライブのファイルである。
UPLOADED_CONTENT ファイルが Chat にアップロードされます。

QuoteType

メッセージが引用返信か転送メッセージかを示す引用タイプ。

列挙型
QUOTE_TYPE_UNSPECIFIED Reserved. 未定義の見積もりタイプ。
REPLY メッセージが、同じスレッド内の元のメッセージに対する引用返信である。
FORWARD メッセージが、別の会話の元のメッセージから、または同じ会話の別のスレッドから転送されている。

ツールのアノテーション

ツールのアノテーションは、特定のツールの基本的なリスクを説明するために MCP クライアントに送信されます。ほとんどのクライアントは、これらのヒントを信頼できないものとして扱いますが、確認プロンプトをユーザーに送信するタイミングを決定するために使用できます。

タイトル文字列とともに、次のブール値のヒントが定義されています。

  • readOnlyHint: true の場合、ツールは環境を変更しません。デフォルトは false です。
  • destructiveHint: true の場合、ツールは破壊的なアクションを実行できます。false の場合、ツールは追加アクションのみを実行できます。デフォルト値は true です。
  • idempotentHint: true の場合、同じ引数でツールを繰り返し呼び出しても、環境に副次的影響は発生しません。デフォルトは false です。
  • openWorldHint: true の場合、ツールは外部エンティティの「オープンワールド」とやり取りできます。false の場合、ツールは内部エンティティとのみやり取りできます。たとえば、ウェブ検索ツールはオープン ワールドですが、メモリツールはオープン ワールドではありません。

破壊的ヒント: ❌ | べき等ヒント: ✅ | 読み取り専用ヒント: ✅ | オープン ワールド ヒント: ❌

認可スコープ

次の OAuth スコープのいずれかが必要です。

  • https://www.googleapis.com/auth/chat.messages.readonly
  • https://www.googleapis.com/auth/chat.spaces.readonly
  • https://www.googleapis.com/auth/chat.memberships.readonly
  • https://www.googleapis.com/auth/chat.users.readstate.readonly