ツール: search_messages
キーワードとフィルタを使用して Google Chat メッセージを検索し、Markdown 形式で返します。ユーザーがアクセスできるすべてのスペースで機能します。特定の会話にスコープを設定することもできます。
search_messages を使用するか、他の検索ツールや読み取りツールを使用するかを判断する際は、次のガイダンスに従ってください。
- 複数のスペースにまたがる可能性のある特定のメッセージ コンテンツ、キーワード、メンション、リンク、送信者、未読のメッセージを検索する場合や、既知の会話 ID がない場合は、
search_messagesを使用します。 - 特定のスペースまたはスレッドの 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 tool MCP 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 ] } |
| フィールド | |
|---|---|
keywords[] |
省略可。結果のフィルタリングに使用されるキーワードのセット。 |
conversationId |
省略可。search_conversations ツールから返された特定の会話識別子に検索を限定します。形式: |
sender |
省略可。特定のユーザーからのメッセージをフィルタします。送信者のメールアドレスまたはリソース名のいずれかを使用できます。ユーザー リソース名の形式は |
isUnread |
省略可。通話ユーザーが読んでいないメッセージをフィルタします。 |
hasLink |
省略可。URL を 1 つ以上含むメッセージをフィルタします。 |
startTime |
省略可。この時刻以降に作成されたメッセージのフィルタ。形式: ISO 8601 タイムスタンプ。 |
endTime |
省略可。この時刻より前に作成されたメッセージをフィルタします。形式: ISO 8601 タイムスタンプ。 |
mentionsMe |
省略可。呼び出し元のユーザーが明示的に言及されているメッセージをフィルタします。 |
conversationIncludesUser |
省略可。特定のユーザーのメールアドレスまたは ID を含む DM やグループ チャットのメッセージをフィルタします。 |
spaceDisplayNames[] |
省略可。スペース名のリストでフィルタします。スペースの表示名が部分的に一致します。注: 上位 5 件の一致のみが返されます。 |
出力スキーマ
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 |
出力専用。メッセージが作成されたときのタイムスタンプ。 |
threadedReply |
メッセージがスレッドの返信かどうか。 |
attachments[] |
メッセージに含まれる添付ファイル。 |
reactionSummaries[] |
メッセージに含まれる絵文字のリアクションの概要。 |
ユーザー
| 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 |
添付ファイルのソース。 |
ReactionSummary
| JSON 表現 |
|---|
{ "emoji": string, "count": integer } |
| フィールド | |
|---|---|
emoji |
絵文字の Unicode 文字列またはカスタム絵文字の名前。 |
count |
関連付けられた絵文字を使用したリアクションの合計数。 |
UserType
Google Chat ユーザーのタイプ。
| 列挙型 | |
|---|---|
USER_TYPE_UNSPECIFIED |
指定なし。 |
HUMAN |
人間のユーザー。 |
APP |
アプリユーザー。 |
ソース
添付ファイルのソース。
| 列挙型 | |
|---|---|
SOURCE_UNSPECIFIED |
予約済み。 |
DRIVE_FILE |
ファイルが Google ドライブのファイルである。 |
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.readonlyhttps://www.googleapis.com/auth/chat.spaces.readonlyhttps://www.googleapis.com/auth/chat.memberships.readonlyhttps://www.googleapis.com/auth/chat.users.readstate.readonly