Narzędzie: search_threads
Wyświetla wątki e-maili z konta Gmail uwierzytelnionego użytkownika.
To narzędzie może filtrować wątki na podstawie ciągu zapytania i obsługuje paginację. Zwraca listę wątków, w tym ich identyfikatory i powiązane wiadomości. Każda powiązana wiadomość zawiera szczegóły, takie jak fragment treści wiadomości, temat, nadawca, odbiorcy itp. Parametr view określa, które pola są wypełniane w powiązanych wiadomościach. Domyślnie (lub w przypadku THREAD_VIEW_MINIMAL) zawiera temat i krótki opis. Użyj THREAD_VIEW_METADATA_ONLY, aby wykluczyć temat i fragment. Pamiętaj, że to narzędzie nie zwraca pełnych treści wiadomości. Jeśli potrzebujesz pełnej treści wiadomości, użyj narzędzia „get_thread” z identyfikatorem wątku. W wynikach mogą się nadal wyświetlać wątki zawierające wykluczone elementy. Dzieje się tak, ponieważ Gmail najpierw identyfikuje pasujące wiadomości. Jeśli na przykład wyszukasz -is:starred, Gmail znajdzie cały wątek, jeśli zawiera on co najmniej 1 wiadomość bez gwiazdki, nawet jeśli inne e-maile w tej samej rozmowie są oznaczone gwiazdką.
Poniższy przykład pokazuje, jak za pomocą curl wywołać narzędzie search_threads MCP.
| Żądanie curl |
|---|
curl --location 'https://gmailmcp.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_threads", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Schemat danych wejściowych
Wiadomość z prośbą o wywołanie RPC SearchThreads.
SearchThreadsRequest
| Zapis JSON |
|---|
{
"pageSize": integer
"pageToken": string
"query": string
"includeTrash": boolean
"view": enum ( |
| Pola | |
|---|---|
Pole zbiorcze Pole |
|
pageSize |
Opcjonalnie. Maksymalna liczba wątków do zwrócenia. Jeśli nie podasz żadnej wartości, domyślnie zostanie użyta wartość 20. Maksymalna dozwolona wartość to 50. |
Pole zbiorcze Pole |
|
pageToken |
Opcjonalnie. Token strony umożliwiający pobranie konkretnej strony wyników na liście. Aby pobrać pierwszą stronę, pozostaw to pole puste. Jest to używane głównie w przypadku podziału na strony, aby kontynuować pobieranie wyników od miejsca, w którym zakończyło się poprzednie wywołanie |
Pole zbiorcze Pole |
|
query |
Opcjonalnie. Ciąg zapytania do filtrowania wątków. Aby korzystać z tego narzędzia, zapytania w języku naturalnym muszą być wcześniej przekonwertowane na zapytania w składni Gmaila. Jeśli ten parametr zostanie pominięty, wyświetlone zostaną wszystkie wątki (z wyjątkiem spamu i kosza). Obsługiwane operatory według kategorii: Nadawca i odbiorca:
Godzina i data:
Treść:
Etykiety i kategorie:
Stan:
Rozmiar:
Logika i grupowanie:
Przykłady:
|
Pole zbiorcze Pole |
|
includeTrash |
Opcjonalnie. Uwzględnij w wynikach wątki z folderu KOSZ. Wartość domyślna to fałsz. |
Pole zbiorcze Pole |
|
view |
Opcjonalnie. Określa pola wypełniane w przypadku wątków na liście wątków. Domyślna wartość to THREAD_VIEW_MINIMAL. THREAD_VIEW_MINIMAL zwraca id, snippet, subject, from, to, cc, date, labelIds. THREAD_VIEW_METADATA_ONLY zwraca id, from, to, cc, date, labelIds. |
ThreadView
Wyliczenie określające pola wypełniane w przypadku wątków w odpowiedziach ListThreads i SearchThreads.
| Wartości w polu enum | |
|---|---|
THREAD_VIEW_UNSPECIFIED |
W celu zapewnienia zgodności wstecznej jest mapowane na THREAD_VIEW_MINIMAL. |
THREAD_VIEW_METADATA_ONLY |
Zwraca identyfikator, od, do, cc, datę i identyfikatory etykiet. |
THREAD_VIEW_MINIMAL |
Zwraca identyfikator, fragment, temat, od, do, cc, datę i identyfikatory etykiet. |
Schemat wyjściowy
Wiadomość z odpowiedzią na RPC SearchThreads.
SearchThreadsResponse
| Zapis JSON |
|---|
{
"threads": [
{
object ( |
| Pola | |
|---|---|
threads[] |
Lista podsumowań wątków. |
nextPageToken |
Token, którego można użyć w kolejnym wywołaniu, aby pobrać następną stronę wątków. Wyświetlany tylko wtedy, gdy jest więcej wyników. Jeśli liczba wątków pasujących do zapytania przekracza limit page_size, odpowiedź będzie zawierać |
resultCountEstimate |
Szacunkowa liczba wyników tego zapytania. Należy ją traktować jako dolną granicę, więc jeśli np. wynosi 500, użytkownikowi można podać liczbę „500+”. |
Wątek
| Zapis JSON |
|---|
{
"id": string,
"messages": [
{
object ( |
| Pola | |
|---|---|
id |
Unikalny identyfikator wątku. |
messages[] |
Lista wiadomości w wątku, uporządkowana chronologicznie. |
Wiadomość
| Zapis JSON |
|---|
{
"id": string,
"snippet": string,
"subject": string,
"sender": string,
"toRecipients": [
string
],
"ccRecipients": [
string
],
"date": string,
"plaintextBody": string,
"attachmentIds": [
string
],
"htmlBody": string,
"attachments": [
{
object ( |
| Pola | |
|---|---|
id |
Unikalny identyfikator wiadomości. |
snippet |
Fragment treści wiadomości. |
subject |
Temat wiadomości wyodrębniony z nagłówków: |
sender |
Adres e-mail nadawcy. |
toRecipients[] |
Adresy e-mail odbiorców. |
ccRecipients[] |
Adresy e-mail odbiorców w polu DW. |
date |
Data wiadomości w formacie ISO 8601 (RRRR-MM-DD). |
plaintextBody |
Pełna treść, wypełniana tylko wtedy, gdy MessageFormat ma wartość FULL_CONTENT. |
attachmentIds[] |
Tylko dane wyjściowe. Identyfikatory załączników, wypełniane tylko wtedy, gdy MessageFormat ma wartość FULL_CONTENT. |
htmlBody |
Zawartość HTML e-maila. Wypełniana tylko wtedy, gdy MessageFormat ma wartość FULL_CONTENT. |
attachments[] |
Tylko dane wyjściowe. Załączniki, wypełniane tylko wtedy, gdy MessageFormat ma wartość FULL_CONTENT. |
labelIds[] |
Identyfikatory etykiet dołączonych do wiadomości. Zawiera identyfikatory etykiet użytkownika i standardowych etykiet systemowych, które są ograniczone do |
AttachmentMetadata
| Zapis JSON |
|---|
{ "id": string, "mimeType": string, "filename": string } |
| Pola | |
|---|---|
id |
Tylko dane wyjściowe. Identyfikator załącznika. |
mimeType |
Typ MIME załącznika. |
filename |
Nazwa pliku załącznika. |
Adnotacje narzędzi
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌
Zakresy autoryzacji
Wymaga jednego z tych zakresów OAuth:
https://mail.google.com/https://www.googleapis.com/auth/gmail.modifyhttps://www.googleapis.com/auth/gmail.readonly