ツール: 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 |
省略可。返される結果の最大件数(最大 100 件)。指定されていない場合、最大で 25 個が返されます。 |
pageToken |
省略可。前回の |
SearchParameters
| JSON 表現 |
|---|
{
"keywords": [
string
],
"conversationId": string,
"sender": string,
"isUnread": boolean,
"hasLink": boolean,
"startTime": string,
"endTime": string,
"mentionsMe": boolean,
"conversationIncludesUser": string,
"spaceDisplayNames": [
string
],
"conversationTypes": [
enum ( |
| フィールド | |
|---|---|
keywords[] |
省略可。結果のフィルタリングに使用されるキーワードのセット。 |
conversationId |
省略可。search_conversations ツールから返された特定の会話識別子に検索を絞り込みます。形式: |
sender |
省略可。特定のユーザーからのメッセージをフィルタします。送信者のメールアドレスまたはリソース名のいずれかを使用できます。ユーザー リソース名の形式は |
isUnread |
省略可。呼び出し元のユーザーがまだ読んでいないメッセージをフィルタします。 |
hasLink |
省略可。1 つ以上の URL を含むメッセージをフィルタします。 |
startTime |
省略可。この時刻より後に作成されたメッセージをフィルタします。形式: ISO 8601 タイムスタンプ。 |
endTime |
省略可。この時刻より前に作成されたメッセージをフィルタします。形式: ISO 8601 タイムスタンプ。 |
mentionsMe |
省略可。呼び出し元のユーザーを明示的にメンションしているメッセージをフィルタします。 |
conversationIncludesUser |
省略可。特定のユーザーのメールアドレスまたは ID が含まれる DM やグループ チャットのメッセージをフィルタします。 |
spaceDisplayNames[] |
省略可。スペース名のリストでフィルタします。スペースの表示名は部分一致します。注: 上位 5 件の一致のみが返されます。 |
conversationTypes[] |
省略可。会話の種類でフィルタします。 |
hasAttachment |
省略可。1 つ以上の添付ファイルを含むメールをフィルタします。注: このフィールドは開発中のため、一部の環境ではまだサポートされていない可能性があります。 |
ConversationType
会話の種類を定義します。
| 列挙型 | |
|---|---|
CONVERSATION_TYPE_UNSPECIFIED |
指定なし。 |
NAMED_SPACE |
名前付きスペース。 |
GROUP_CHAT |
3 人以上のユーザーによるグループ チャット。 |
DIRECT_MESSAGE |
2 人のユーザー間、またはユーザーと Chat 用アプリ間のダイレクト メッセージ。 |
出力スキーマ
Google Chat のチャット メッセージを検索するためのレスポンス。next_page_token が入力されている場合、そのトークンを使用して SearchMessages を再度呼び出すと、結果の次のページを取得できます。
SearchMessagesResponse
| 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 ドライブ ファイルの ID。ソースが DRIVE_FILE の場合にのみ入力されます。Google ドライブ MCP と組み合わせて使用します。 |
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 |
出力専用。引用または転送時の元のメッセージのテキスト本文のスナップショット。 |
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 ドライブのファイルである。 |
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.readonlyhttps://www.googleapis.com/auth/chat.spaces.readonlyhttps://www.googleapis.com/auth/chat.memberships.readonlyhttps://www.googleapis.com/auth/chat.users.readstate.readonly