Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [],
"reason": null,
"safeguard_count": 2,
"summary": {
"annotation_conflict_tools": 2,
"bulk_access_tools": 2,
"capability_distribution": {
"delete": 4,
"export": 2,
"financial": 1,
"read": 5,
"secrets": 2,
"write": 8
},
"declared_non_read_only_tools": 8,
"destructive_tools": 4,
"egress_tools": 0,
"exec_tools": 0,
"has_mutating_capability": true,
"has_non_read_capability": true,
"high_risk_tools": 2,
"risk_distribution": {
"critical": 0,
"high": 2,
"low": 3,
"medium": 8
},
"secret_tools": 2,
"tool_count": 13
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": true,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": true
},
"enabled": [
"prompts",
"structured_outputs"
],
"enabled_count": 2,
"initialize_capability_keys": [
"prompts",
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": true
},
"high_risk_tools": 2,
"tool_count": 13,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "ef723ba2b4b995549eaad87287ba9b7b2f5efa63650abb01844436e80fcaf5da",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 139.26,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json; charset=UTF-8"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"prompts": {
"listChanged": false
},
"tools": {
"listChanged": false
}
},
"protocolVersion": "2025-03-26",
"serverInfo": {
"name": "StatelessServer",
"version": "ESF"
}
}
},
"url": "https://gmailmcp.googleapis.com/mcp/v1"
},
"latency_ms": 132.39,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://gmailmcp.googleapis.com/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://gmailmcp.googleapis.com/.well-known/oauth-protected-resource"
},
"latency_ms": 142.62,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": false,
"official_peer_count": 0,
"registry_source": "glama_registry"
},
"latency_ms": null,
"status": "missing"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/html; charset=UTF-8"
},
"http_status": 404,
"url": "https://gmailmcp.googleapis.com/robots.txt",
"validation_disallowed": false
},
"latency_ms": 143.96,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json; charset=UTF-8"
},
"http_status": 200,
"payload": {
"id": 3,
"jsonrpc": "2.0",
"result": {
"prompts": []
}
},
"url": "https://gmailmcp.googleapis.com/mcp/v1"
},
"latency_ms": 116.16,
"status": "ok"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"comparable_field_count": 0,
"compared_fields": [
"title",
"version",
"homepage",
"repository"
],
"direct_official_match": false,
"drift_fields": [],
"metadata_document_count": 1,
"readable_sources": [],
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "not_assessed"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"error": "Client error '404 Not Found' for url 'https://gmailmcp.googleapis.com/mcp/v1'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"headers": {
"content-type": "text/html; charset=UTF-8"
},
"http_status": 404,
"payload": {},
"reason": "not_supported",
"url": "https://gmailmcp.googleapis.com/mcp/v1"
},
"latency_ms": 33.17,
"status": "missing"
},
"schema_divergence_probe": {
"details": {
"card_server_name": null,
"compared_dimensions": [
"server_name",
"server_version",
"declared_vs_observed_auth",
"tool_membership",
"parameter_names",
"required_parameters",
"parameter_types",
"output_schema_presence"
],
"compared_tool_count": 0,
"live_server_name": "StatelessServer",
"reason": "no_server_card_tools",
"server_name_mismatch": false
},
"latency_ms": null,
"status": "missing"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://gmailmcp.googleapis.com/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://gmailmcp.googleapis.com/.well-known/mcp/server-card.json"
},
"latency_ms": 115.99,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-03-26",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 13,
"previous_tool_count": 13,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json; charset=UTF-8"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Create draft email"
},
"description": "Creates a new draft email in the authenticated user's Gmail account.\n\nThis tool takes recipient addresses, a subject, and body content as inputs. If the draft is created as a reply to an existing message, the ID of the original message should be passed to the tool in the replyToMessageId field.\n\nReturns a Draft object with only the `id` field populated.\n",
"inputSchema": {
"$defs": {
"Attachment": {
"description": "Represents an attachment to be included in an email.",
"properties": {
"content": {
"description": "Required. The base64-encoded content of the attachment.",
"format": "byte",
"type": "string"
},
"filename": {
"description": "Optional. The name of the file to be attached, e.g. \"invoice.pdf\". For inline attachments, this is used for Content-ID generation. For regular attachments, filename is used to specify the filename to email clients. If not provided, the attachment may be received with no name.",
"type": "string"
},
"id": {
"description": "Optional. Output only. When present, contains the ID of an external attachment that can be retrieved in a separate `GetMessageAttachment` request.",
"readOnly": true,
"type": "string"
},
"inline": {
"description": "Optional. If true, this attachment is handled as inline. An inline attachment is a content that is intended to be displayed within the body of an HTML email, as opposed to being listed as a separate file for download. If false or absent, defaults to false, and it's treated as a regular attachment.",
"type": "boolean"
},
"mimeType": {
"description": "Optional. The field representing a content or media type must use IANA MIME type, https://www.iana.org/assignments/media-types/media-types.xhtml. If not provided, defaults to \"application/octet-stream\".",
"type": "string"
}
},
"required": [
"content"
],
"type": "object"
}
},
"description": "Request message for CreateDraft RPC.",
"properties": {
"attachments": {
"description": "Optional. The attachments to include in the email. The combined size of attachments in the message cannot exceed 25MB. If you need to send files larger than 25MB, upload the file to Drive first and then insert the Drive link into `body` or `html_body`.",
"items": {
"$ref": "#/$defs/Attachment"
},
"type": "array"
},
"bcc": {
"description": "Optional. The blind carbon copy recipients of the email draft. Each string MUST be a valid plain email address (e.g., \"user@example.com\"). The \"Name \" format is NOT supported by this tool.",
"items": {
"type": "string"
},
"type": "array"
},
"body": {
"description": "Optional. The main body content of the email draft. If `html_body` is also provided, this field is treated as the plain-text alternative.",
"type": "string"
},
"cc": {
"description": "Optional. The carbon copy recipients of the email draft. Each string MUST be a valid plain email address (e.g., \"user@example.com\"). The \"Name \" format is NOT supported by this tool.",
"items": {
"type": "string"
},
"type": "array"
},
"htmlBody": {
"description": "The HTML content of the email draft. If provided, this will be used as the rich-text version of the email.",
"type": "string"
},
"replyToMessageId": {
"description": "Optional. The ID of the message to reply to. If provided, this will be used as the reply-to message ID for the email draft, and the `body` and `html_body` will be appended to the original message body.",
"type": "string"
},
"subject": {
"description": "Optional. The subject line of the email. Defaults to empty if not provided.",
"type": "string"
},
"to": {
"description": "Optional. The primary recipients of the email draft. Each string MUST be a valid plain email address (e.g., \"user@example.com\"). The \"Name \" format is NOT supported by this tool.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "create_draft",
"outputSchema": {
"description": "Details of a draft.",
"properties": {
"bccRecipients": {
"description": "List of 'Bcc' recipient email addresses extracted from headers.",
"items": {
"type": "string"
},
"type": "array"
},
"ccRecipients": {
"description": "List of 'Cc' recipient email addresses extracted from headers.",
"items": {
"type": "string"
},
"type": "array"
},
"date": {
"description": "Date of the draft in ISO 8601 format (YYYY-MM-DD).",
"type": "string"
},
"htmlBody": {
"description": "The HTML body content of the draft, if available.",
"type": "string"
},
"id": {
"description": "The unique identifier of the draft resource.",
"type": "string"
},
"plaintextBody": {
"description": "Plain text body content, if available.",
"type": "string"
},
"subject": {
"description": "The subject line of the draft message.",
"type": "string"
},
"threadId": {
"description": "The ID of the thread this draft belongs to.",
"type": "string"
},
"toRecipients": {
"description": "List of 'To' recipient email addresses extracted from headers.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List draft emails"
},
"description": "Lists draft emails from the authenticated user's Gmail account.\n\nThis tool can filter drafts based on a query string and supports pagination. It returns a list of drafts, including their IDs and subjects (unless `view` is set to `DRAFT_VIEW_METADATA_ONLY`). `page_token` can be used to paginate the results. To retrieve subsequent pages of results, use the `page_token` returned in the previous response.\n\nThe `view` parameter controls which fields are populated in the response. By default (or with `DRAFT_VIEW_FULL`), it returns full content. Use `DRAFT_VIEW_METADATA_ONLY` to exclude sensitive content like subject and body. \n",
"inputSchema": {
"description": "Request message for ListDrafts RPC.",
"properties": {
"pageSize": {
"description": "Optional. The maximum number of drafts to return. If unspecified, defaults to 20. The maximum allowed value is 50.",
"format": "int32",
"type": "integer"
},
"pageToken": {
"description": "Optional. A token received from a previous list_drafts call to retrieve the next page of results. Leave empty to fetch the first page. This is primarily used for pagination to continue fetching results from where the previous `ListDraft` call left off, especially when the number of drafts matching the query exceeds the page_size limit.",
"type": "string"
},
"query": {
"description": "Examples: - `subject:OneMCP Update` - `from:gduser1@workspacesamples.dev` - `to:gduser2@workspacesamples.dev AND newer_than:7d` - `project proposal has:attachment` - `is:unread` A space or a dash (`-`) will separate a number while a dot (`.`) will be a decimal. For example, `01.2047-100` is considered two numbers: `01.2047` and `100`. Note: If we want to ensure all drafts for the query are returned, we can paginate the results by making repeated calls to the tool until the response contains an empty list of drafts.",
"type": "string"
},
"view": {
"description": "Optional. Controls the fields populated for drafts in the draft list. Defaults to returning metadata only (`id`, `thread_id`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`). Set to `DRAFT_VIEW_FULL` to include `subject` and `plaintext_body` content.",
"enum": [
"DRAFT_VIEW_UNSPECIFIED",
"DRAFT_VIEW_METADATA_ONLY",
"DRAFT_VIEW_FULL"
],
"type": "string",
"x-google-enum-descriptions": [
"Unspecified view. Defaults to DRAFT_VIEW_METADATA_ONLY.",
"Returns metadata only (`id`, `thread_id`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`); omits `subject` and `plaintext_body` content.",
"Returns full draft content, including `subject` and `plaintext_body` in addition to draft metadata."
]
}
},
"type": "object"
},
"name": "list_drafts",
"outputSchema": {
"$defs": {
"Draft": {
"description": "Details of a draft.",
"properties": {
"bccRecipients": {
"description": "List of 'Bcc' recipient email addresses extracted from headers.",
"items": {
"type": "string"
},
"type": "array"
},
"ccRecipients": {
"description": "List of 'Cc' recipient email addresses extracted from headers.",
"items": {
"type": "string"
},
"type": "array"
},
"date": {
"description": "Date of the draft in ISO 8601 format (YYYY-MM-DD).",
"type": "string"
},
"htmlBody": {
"description": "The HTML body content of the draft, if available.",
"type": "string"
},
"id": {
"description": "The unique identifier of the draft resource.",
"type": "string"
},
"plaintextBody": {
"description": "Plain text body content, if available.",
"type": "string"
},
"subject": {
"description": "The subject line of the draft message.",
"type": "string"
},
"threadId": {
"description": "The ID of the thread this draft belongs to.",
"type": "string"
},
"toRecipients": {
"description": "List of 'To' recipient email addresses extracted from headers.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
"description": "Response message for ListDrafts RPC.",
"properties": {
"drafts": {
"description": "List of drafts.",
"items": {
"$ref": "#/$defs/Draft"
},
"type": "array"
},
"nextPageToken": {
"description": "A token that can be used in a subsequent call to retrieve the next page of drafts. If the number of drafts matching the query exceeds the page_size limit, the response will contain a `next_page_token`. To retrieve the next page of results, pass this token in the `page_token` field of the next `ListDraftsRequest`.",
"type": "string"
}
},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get email thread"
},
"description": "Retrieves a specific email thread from the authenticated user's Gmail account, including a list of its messages.\n\nThe optional `messageFormat` parameter controls the format of the messages returned. By default (or with `FULL_CONTENT`), it returns the full content of messages. Use `MINIMAL` to include only subject and snippet (excluding body). Use `METADATA_ONLY` to include only basic metadata (message ID, thread ID, labels, timestamp, and size estimate). \n",
"inputSchema": {
"description": "Request message for GetThread RPC.",
"properties": {
"messageFormat": {
"description": "Optional. Specifies the format of the messages returned within the thread. Defaults to `FULL_CONTENT`. Note: `MINIMAL` format returns `id`, `snippet`, `subject`, `sender`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`, `label_ids`. `METADATA_ONLY` format returns `id`, `sender`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`, `label_ids`. `FULL_CONTENT` returns `id`, `snippet`, `subject`, `sender`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`, `label_ids`, `attachment_ids`, `plaintext_body`, `html_body`, `attachments`.",
"enum": [
"MESSAGE_FORMAT_UNSPECIFIED",
"MINIMAL",
"FULL_CONTENT",
"METADATA_ONLY"
],
"type": "string",
"x-google-enum-descriptions": [
"Defaults to FULL_CONTENT.",
"Returns message snippets and key headers (Subject, From, To, Cc, Date).",
"Returns all information in \"MINIMAL\" plus the full body content of each message.",
"Metadata only: does not include subject, snippet, body, attachment filenames."
]
},
"threadId": {
"description": "Required. The unique identifier of the thread to fetch.",
"type": "string"
}
},
"required": [
"threadId"
],
"type": "object"
},
"name": "get_thread",
"outputSchema": {
"$defs": {
"AttachmentMetadata": {
"description": "Represents an attachment associated with a message.",
"properties": {
"filename": {
"description": "The filename of the attachment.",
"type": "string"
},
"id": {
"description": "Output only. The ID of the attachment.",
"readOnly": true,
"type": "string"
},
"mimeType": {
"description": "The MIME type of the attachment.",
"type": "string"
}
},
"type": "object"
},
"Message": {
"description": "Message within a thread.",
"properties": {
"attachmentIds": {
"description": "Output only. The attachment ids, only populated if MessageFormat was FULL_CONTENT.",
"items": {
"type": "string"
},
"readOnly": true,
"type": "array"
},
"attachments": {
"description": "Output only. The attachments, only populated if MessageFormat was FULL_CONTENT.",
"items": {
"$ref": "#/$defs/AttachmentMetadata"
},
"readOnly": true,
"type": "array"
},
"bccRecipients": {
"description": "BCC recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
},
"ccRecipients": {
"description": "CC recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
},
"date": {
"description": "Date of the message in ISO 8601 format (YYYY-MM-DD).",
"type": "string"
},
"htmlBody": {
"description": "The HTML content of the email, only populated if MessageFormat was FULL_CONTENT.",
"type": "string"
},
"id": {
"description": "The unique identifier of the message.",
"type": "string"
},
"labelIds": {
"description": "The ids of the labels attached to the message. Includes ids of user labels and standard system labels limited to `INBOX`, `SPAM`, `TRASH`, `UNREAD`, `STARRED`, `IMPORTANT`, `SENT`, `DRAFT`, `CHAT`.",
"items": {
"type": "string"
},
"type": "array"
},
"plaintextBody": {
"description": "Full body content, only populated if MessageFormat was FULL_CONTENT.",
"type": "string"
},
"sender": {
"description": "Sender email address.",
"type": "string"
},
"snippet": {
"description": "Snippet of the message body.",
"type": "string"
},
"subject": {
"description": "The message subject extracted from headers:",
"type": "string"
},
"toRecipients": {
"description": "To recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
"description": "Thread containing a list of messages.",
"properties": {
"id": {
"description": "The unique identifier of the thread.",
"type": "string"
},
"messages": {
"description": "A list of messages in the thread, ordered chronologically.",
"items": {
"$ref": "#/$defs/Message"
},
"type": "array"
}
},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get email message"
},
"description": "Retrieves a specific email message from the authenticated user's Gmail account by its unique message ID.\n\nUse this tool to inspect a single, individual email when you already know its message ID. If the user wants to read a specific email in detail, check the exact wording of a message, or examine attachment metadata for a single email, this is the right tool. It is not suitable for retrieving entire conversations or viewing back-and-forth discussion threads; use the 'get_thread' tool instead.\nKey indicators include if the user asks for the full content of a specific message ID returned by a previous search, or if the query asks to inspect a specific individual email rather than an entire thread.\nExample user prompts are: \"Get the full text of message ID 18f123456789abcd.\", \"Read the latest message in that thread from Alice.\", and \"What are the attachment names in the email I just received from HR?\" \n\nThe optional `messageFormat` parameter controls the format of the message returned. By default (or with `FULL_CONTENT`), it returns the full content of the message. Use `MINIMAL` to include only subject and snippet (excluding body). Use `METADATA_ONLY` to include only basic metadata (message ID, thread ID, labels, timestamp, and size estimate). \n",
"inputSchema": {
"description": "Request message for GetMessage RPC.",
"properties": {
"messageFormat": {
"description": "Optional. Specifies the format of the message returned. Defaults to FULL_CONTENT.",
"enum": [
"MESSAGE_FORMAT_UNSPECIFIED",
"MINIMAL",
"FULL_CONTENT",
"METADATA_ONLY"
],
"type": "string",
"x-google-enum-descriptions": [
"Defaults to FULL_CONTENT.",
"Returns message snippets and key headers (Subject, From, To, Cc, Date).",
"Returns all information in \"MINIMAL\" plus the full body content of each message.",
"Metadata only: does not include subject, snippet, body, attachment filenames."
]
},
"messageId": {
"description": "Required. The unique identifier of the message to fetch.",
"type": "string"
}
},
"required": [
"messageId"
],
"type": "object"
},
"name": "get_message",
"outputSchema": {
"$defs": {
"AttachmentMetadata": {
"description": "Represents an attachment associated with a message.",
"properties": {
"filename": {
"description": "The filename of the attachment.",
"type": "string"
},
"id": {
"description": "Output only. The ID of the attachment.",
"readOnly": true,
"type": "string"
},
"mimeType": {
"description": "The MIME type of the attachment.",
"type": "string"
}
},
"type": "object"
}
},
"description": "Message within a thread.",
"properties": {
"attachmentIds": {
"description": "Output only. The attachment ids, only populated if MessageFormat was FULL_CONTENT.",
"items": {
"type": "string"
},
"readOnly": true,
"type": "array"
},
"attachments": {
"description": "Output only. The attachments, only populated if MessageFormat was FULL_CONTENT.",
"items": {
"$ref": "#/$defs/AttachmentMetadata"
},
"readOnly": true,
"type": "array"
},
"bccRecipients": {
"description": "BCC recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
},
"ccRecipients": {
"description": "CC recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
},
"date": {
"description": "Date of the message in ISO 8601 format (YYYY-MM-DD).",
"type": "string"
},
"htmlBody": {
"description": "The HTML content of the email, only populated if MessageFormat was FULL_CONTENT.",
"type": "string"
},
"id": {
"description": "The unique identifier of the message.",
"type": "string"
},
"labelIds": {
"description": "The ids of the labels attached to the message. Includes ids of user labels and standard system labels limited to `INBOX`, `SPAM`, `TRASH`, `UNREAD`, `STARRED`, `IMPORTANT`, `SENT`, `DRAFT`, `CHAT`.",
"items": {
"type": "string"
},
"type": "array"
},
"plaintextBody": {
"description": "Full body content, only populated if MessageFormat was FULL_CONTENT.",
"type": "string"
},
"sender": {
"description": "Sender email address.",
"type": "string"
},
"snippet": {
"description": "Snippet of the message body.",
"type": "string"
},
"subject": {
"description": "The message subject extracted from headers:",
"type": "string"
},
"toRecipients": {
"description": "To recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Search email threads"
},
"description": "Lists email threads from the authenticated user's Gmail account.\n\nThis tool can filter threads based on a query string and supports pagination. It returns a list of threads, including their IDs and related messages. Each related message contains details like a snippet of the message body, the subject, the sender, the recipients etc. The `view` parameter controls which fields are populated in the related messages. By default (or with `THREAD_VIEW_MINIMAL`), it includes subject and snippet. Use `THREAD_VIEW_METADATA_ONLY` to exclude subject and snippet. Note that the full message bodies are not returned by this tool; use the 'get_thread' tool with a thread ID to fetch the full message body if needed. Threads with excluded criteria may still appear in the results. This occurs because Gmail identifies matching messages first. For example, if you search for -is:starred, Gmail will find an entire thread if it contains at least one unstarred message, even if other emails in that same conversation are starred.\n",
"inputSchema": {
"description": "Request message for SearchThreads RPC.",
"properties": {
"includeTrash": {
"description": "Optional. Include threads from TRASH in the results. Defaults to false.",
"type": "boolean"
},
"pageSize": {
"description": "Optional. The maximum number of threads to return. If unspecified, defaults to 20. The maximum allowed value is 50.",
"format": "int32",
"type": "integer"
},
"pageToken": {
"description": "Optional. Page token to retrieve a specific page of results in the list. Leave empty to fetch the first page. This is primarily used for pagination to continue fetching results from where the previous `SearchThreads` call left off, especially when the number of threads matching the query exceeds the page_size limit.",
"type": "string"
},
"query": {
"description": "Optional. A query string to filter the threads. Natural language queries must be pre-converted into Gmail syntax queries to use this tool. If omitted, all threads (excluding spam and trash by default) are listed. Supported Operators by Category: Sender & Recipient: - `from:` \u2014 Sent from a specific person. - `to:` \u2014 Sent to a specific person. - `cc:` \u2014 Specific people in Cc. - `bcc:` \u2014 Specific people in Bcc. - `deliveredto:` \u2014 Delivered to a specific address. - `list:` \u2014 From a specific mailing list. Time & Date: - `after:YYYY/MM/DD` / `newer:YYYY/MM/DD` \u2014 Received after a date. - `before:YYYY/MM/DD` / `older:YYYY/MM/DD` \u2014 Received before a date. - `older_than:` \u2014 Older than a duration (for example, `1y`, `2d`). - `newer_than:` \u2014 Newer than a duration. Content: - `subject:` \u2014 Words in the subject line. - `has:` \u2014 Has specific content types (attachment, drive, youtube, document). - `filename:` \u2014 Attachment with a specific name or type. - `\"\"` \u2014 Search for an exact word or phrase. (for example, `\"holiday\"`, `\"holiday vacation\"`). - `+` \u2014 Match a word exactly. (for example, `+holiday`, `+unicorn`) - `rfc822msgid:` \u2014 Specific message ID header. - `AROUND ` \u2014 Find words near each other (for example, `holiday AROUND 10 vacation`). Labels & Categories: - `label:` \u2014 Under a specific label. The tool accepts label IDs, not display names. Use the list_labels tool to get the ID. - `category:` \u2014 In a category (primary, social, promotions, updates, forums, reservations, purchases). - `in:` \u2014 Search in specific labels (archive, snoozed, trash, sent, inbox). For example, `in:trash`, `in:inbox`. Archived and sent messages are included by default; use `-in:archive` and `-in:sent` to exclude them. Drafts are explicitly excluded by default by the tool. Use `in:inbox` to restrict search to the inbox only. - `has:userlabels` \u2014 Has any user labels. - `has:nouserlabels` \u2014 Does not have any user labels. - `has:*-star` \u2014 Specific star colors (if enabled, for example, `has:yellow-star`). - `in:draft` \u2014 Search in drafts. -in:draft means exclude drafts from the search results. - `in:sent` \u2014 Search in sent messages. - `in:anywhere` \u2014 Search in all folders (including spam and trash). Status: - `is:` \u2014 Search by status (important, starred, unread, read, muted). Size: - `size:` \u2014 Specific size in bytes. - `larger:` / `smaller:` \u2014 Larger or smaller than a size (for example, `10M` for 10 MB). Logic & Grouping: - `AND` \u2014 Match all criteria (default behavior). - `OR` or `{ }` \u2014 Match one or more criteria (for example, `from:amy OR from:david`, `{from:amy from:david}`). - `-` (minus) \u2014 Exclude criteria (for example, `-movie`). - `( )` \u2014 Group multiple search terms (for example, `subject:(dinner film)`). Examples: - `subject:OneMCP Update` - `from:user@example.com` - `to:user2@example.com AND newer_than:7d` - `project proposal has:attachment` - `is:unread -in:draft`",
"type": "string"
},
"view": {
"description": "Optional. Controls the fields populated for threads in the thread list. Defaults to `THREAD_VIEW_MINIMAL`. `THREAD_VIEW_MINIMAL` returns `id`, `snippet`, `subject`, `sender`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`, `label_ids`. `THREAD_VIEW_METADATA_ONLY` returns `id`, `sender`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`, `label_ids`.",
"enum": [
"THREAD_VIEW_UNSPECIFIED",
"THREAD_VIEW_METADATA_ONLY",
"THREAD_VIEW_MINIMAL"
],
"type": "string",
"x-google-enum-descriptions": [
"Maps to THREAD_VIEW_MINIMAL for backward compatibility.",
"Returns `id`, `sender`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`, `label_ids`.",
"Returns `id`, `snippet`, `subject`, `sender`, `to_recipients`, `cc_recipients`, `bcc_recipients`, `date`, `label_ids`."
]
}
},
"type": "object"
},
"name": "search_threads",
"outputSchema": {
"$defs": {
"AttachmentMetadata": {
"description": "Represents an attachment associated with a message.",
"properties": {
"filename": {
"description": "The filename of the attachment.",
"type": "string"
},
"id": {
"description": "Output only. The ID of the attachment.",
"readOnly": true,
"type": "string"
},
"mimeType": {
"description": "The MIME type of the attachment.",
"type": "string"
}
},
"type": "object"
},
"Message": {
"description": "Message within a thread.",
"properties": {
"attachmentIds": {
"description": "Output only. The attachment ids, only populated if MessageFormat was FULL_CONTENT.",
"items": {
"type": "string"
},
"readOnly": true,
"type": "array"
},
"attachments": {
"description": "Output only. The attachments, only populated if MessageFormat was FULL_CONTENT.",
"items": {
"$ref": "#/$defs/AttachmentMetadata"
},
"readOnly": true,
"type": "array"
},
"bccRecipients": {
"description": "BCC recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
},
"ccRecipients": {
"description": "CC recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
},
"date": {
"description": "Date of the message in ISO 8601 format (YYYY-MM-DD).",
"type": "string"
},
"htmlBody": {
"description": "The HTML content of the email, only populated if MessageFormat was FULL_CONTENT.",
"type": "string"
},
"id": {
"description": "The unique identifier of the message.",
"type": "string"
},
"labelIds": {
"description": "The ids of the labels attached to the message. Includes ids of user labels and standard system labels limited to `INBOX`, `SPAM`, `TRASH`, `UNREAD`, `STARRED`, `IMPORTANT`, `SENT`, `DRAFT`, `CHAT`.",
"items": {
"type": "string"
},
"type": "array"
},
"plaintextBody": {
"description": "Full body content, only populated if MessageFormat was FULL_CONTENT.",
"type": "string"
},
"sender": {
"description": "Sender email address.",
"type": "string"
},
"snippet": {
"description": "Snippet of the message body.",
"type": "string"
},
"subject": {
"description": "The message subject extracted from headers:",
"type": "string"
},
"toRecipients": {
"description": "To recipient email addresses.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"Thread": {
"description": "Thread containing a list of messages.",
"properties": {
"id": {
"description": "The unique identifier of the thread.",
"type": "string"
},
"messages": {
"description": "A list of messages in the thread, ordered chronologically.",
"items": {
"$ref": "#/$defs/Message"
},
"type": "array"
}
},
"type": "object"
}
},
"description": "Response message for SearchThreads RPC.",
"properties": {
"nextPageToken": {
"description": "A token that can be used in a subsequent call to retrieve the next page of threads. Present only if there are more results. If the number of threads matching the query exceeds the page_size limit, the response will contain a `next_page_token`. To retrieve the next page of results, pass this token in the `page_token` field of the next `SearchThreadsRequest`.",
"type": "string"
},
"resultCountEstimate": {
"description": "The estimated result count for this query. It should be treated as a lower bound, so for example if it is 500, then the count can be reported to the user as \"500+\".",
"format": "int64",
"type": "string"
},
"threads": {
"description": "List of thread summaries.",
"items": {
"$ref": "#/$defs/Thread"
},
"type": "array"
}
},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Add labels to thread"
},
"description": "Adds labels to an entire thread in the authenticated user's Gmail account. This operation affects all messages currently in the thread and any future messages added to it.\n\nIf unsure of the thread ID, use the `search_threads` tool first.\n\nIf unsure of a user label's ID, use the `list_labels` tool first to discover available labels and their IDs. To add a Trash label or a Spam label to a thread, or move a specific thread to Trash, please use the `apply_sensitive_thread_label` tool instead.\n",
"inputSchema": {
"description": "Request message for LabelThread RPC.",
"properties": {
"labelIds": {
"description": "Required. The unique identifiers of the labels to add. Can be a system label ID (e.g., `INBOX`, `STARRED`, `UNREAD`, `IMPORTANT`) or a user-defined label ID. The tool accepts `label_ids` and not label names. Use the `list_labels` tool to get the corresponding label id to a display name for user-defined labels.",
"items": {
"type": "string"
},
"type": "array"
},
"threadId": {
"description": "Required. The unique identifier of the thread to add labels to.",
"type": "string"
}
},
"required": [
"threadId",
"labelIds"
],
"type": "object"
},
"name": "label_thread",
"outputSchema": {
"description": "Response message for LabelThread RPC.",
"properties": {},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": true,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Remove labels from thread"
},
"description": "Removes labels from an entire thread in the authenticated user's Gmail account. If unsure of the thread ID, use the `search_threads` tool first. If unsure of a user label's ID, use the `list_labels` tool first.",
"inputSchema": {
"description": "Request message for UnlabelThread RPC.",
"properties": {
"labelIds": {
"description": "Required. The unique identifiers of the labels to remove. Can be a system label ID (e.g., `INBOX`, `TRASH`, `SPAM`, `STARRED`, `UNREAD`, `IMPORTANT`) or a user-defined label ID. The tool accepts `label_ids` and not label names. Use the `list_labels` tool to get the corresponding label id to a display name for user-defined labels.",
"items": {
"type": "string"
},
"type": "array"
},
"threadId": {
"description": "Required. The unique identifier of the thread to remove labels from.",
"type": "string"
}
},
"required": [
"threadId",
"labelIds"
],
"type": "object"
},
"name": "unlabel_thread",
"outputSchema": {
"description": "Response message for UnlabelThread RPC.",
"properties": {},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": true,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Apply sensitive label (Trash or Spam) to thread"
},
"description": "Adds a sensitive label (Trash or Spam) to an entire thread in the authenticated user's Gmail account. This operation affects all messages currently in the thread and any future messages added to it.\n\nUse this tool to trash a thread, mark a thread as spam, or move the specified thread to Trash.\n\nTo find the thread ID, use the `search_threads` tool first.\n",
"inputSchema": {
"description": "Request message for ApplySensitiveThreadLabel RPC.",
"properties": {
"labelOption": {
"description": "Required. The sensitive label option to add.",
"enum": [
"LABEL_OPTION_UNSPECIFIED",
"TRASH",
"SPAM"
],
"type": "string",
"x-google-enum-descriptions": [
"Unspecified label option.",
"Trash label.",
"Spam label."
]
},
"threadId": {
"description": "Required. The ID of the thread to add the label to.",
"type": "string"
}
},
"required": [
"threadId",
"labelOption"
],
"type": "object"
},
"name": "apply_sensitive_thread_label",
"outputSchema": {
"description": "Response message for ApplySensitiveThreadLabel RPC.",
"properties": {},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List labels"
},
"description": "Lists all labels available in the authenticated user's Gmail account. Use this tool to discover the `id` of a label before calling `label_thread`, `unlabel_thread`, `label_message`, or `unlabel_message`. Note: the system labels, `DRAFT` and `SENT`, cannot be set on messages and are read only.",
"inputSchema": {
"description": "Request message for ListLabels RPC.",
"properties": {},
"type": "object"
},
"name": "list_labels",
"outputSchema": {
"$defs": {
"Label": {
"description": "Details of a label.",
"properties": {
"color": {
"$ref": "#/$defs/LabelColor",
"description": "Optional. The color of the label."
},
"labelId": {
"description": "The unique identifier of the label.",
"type": "string"
},
"messagesTotal": {
"description": "The total number of messages under the label.",
"format": "int32",
"type": "integer"
},
"messagesUnread": {
"description": "The number of unread messages under the label.",
"format": "int32",
"type": "integer"
},
"name": {
"description": "The human-readable display name of the label.",
"type": "string"
},
"threadsTotal": {
"description": "The total number of threads under the label.",
"format": "int32",
"type": "integer"
},
"threadsUnread": {
"description": "The number of unread threads under the label.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"LabelColor": {
"description": "The color of the label.",
"properties": {
"backgroundColor": {
"description": "The background color of the label, represented as a hex string (e.g., \"#ffffff\"). Only the following predefined set of color values are allowed: `#000000`, `#434343`, `#666666`, `#999999`, `#cccccc`, `#efefef`, `#f3f3f3`, `#ffffff`, `#fb4c2f`, `#ffad47`, `#fad165`, `#16a766`, `#43d692`, `#4a86e8`, `#a479e2`, `#f691b3`, `#f6c5be`, `#ffe6c7`, `#fef1d1`, `#b9e4d0`, `#c6f3de`, `#c9daf8`, `#e4d7f5`, `#fcdee8`, `#efa093`, `#ffd6a2`, `#fce8b3`, `#89d3b2`, `#a0eac9`, `#a4c2f4`, `#d0bcf1`, `#fbc8d9`, `#e66550`, `#ffbc6b`, `#fcda83`, `#44b984`, `#68dfa9`, `#6d9eeb`, `#b694e8`, `#f7a7c0`, `#cc3a21`, `#eaa041`, `#f2c960`, `#149e60`, `#3dc789`, `#3c78d8`, `#8e63ce`, `#e07798`, `#ac2b16`, `#cf8933`, `#d5ae49`, `#0b804b`, `#2a9c68`, `#285bac`, `#653e9b`, `#b65775`, `#822111`, `#a46a21`, `#aa8831`, `#076239`, `#1a764d`, `#1c4587`, `#41236d`, `#83334c`, `#464646`, `#e7e7e7`, `#0d3472`, `#b6cff5`, `#0d3b44`, `#98d7e4`, `#3d188e`, `#e3d7ff`, `#711a36`, `#fbd3e0`, `#8a1c0a`, `#f2b2a8`, `#7a2e0b`, `#ffc8af`, `#7a4706`, `#ffdeb5`, `#594c05`, `#fbe983`, `#684e07`, `#fdedc1`, `#0b4f30`, `#b3efd3`, `#04502e`, `#a2dcc1`, `#c2c2c2`, `#4986e7`, `#2da2bb`, `#b99aff`, `#994a64`, `#f691b2`, `#ff7537`, `#ffad46`, `#662e37`, `#ebdbde`, `#cca6ac`, `#094228`, `#42d692`, `#16a765`",
"type": "string"
},
"textColor": {
"description": "The text color of the label, represented as a hex string (e.g., \"#000000\"). Only the following predefined set of color values are allowed: `#000000`, `#434343`, `#666666`, `#999999`, `#cccccc`, `#efefef`, `#f3f3f3`, `#ffffff`, `#fb4c2f`, `#ffad47`, `#fad165`, `#16a766`, `#43d692`, `#4a86e8`, `#a479e2`, `#f691b3`, `#f6c5be`, `#ffe6c7`, `#fef1d1`, `#b9e4d0`, `#c6f3de`, `#c9daf8`, `#e4d7f5`, `#fcdee8`, `#efa093`, `#ffd6a2`, `#fce8b3`, `#89d3b2`, `#a0eac9`, `#a4c2f4`, `#d0bcf1`, `#fbc8d9`, `#e66550`, `#ffbc6b`, `#fcda83`, `#44b984`, `#68dfa9`, `#6d9eeb`, `#b694e8`, `#f7a7c0`, `#cc3a21`, `#eaa041`, `#f2c960`, `#149e60`, `#3dc789`, `#3c78d8`, `#8e63ce`, `#e07798`, `#ac2b16`, `#cf8933`, `#d5ae49`, `#0b804b`, `#2a9c68`, `#285bac`, `#653e9b`, `#b65775`, `#822111`, `#a46a21`, `#aa8831`, `#076239`, `#1a764d`, `#1c4587`, `#41236d`, `#83334c`, `#464646`, `#e7e7e7`, `#0d3472`, `#b6cff5`, `#0d3b44`, `#98d7e4`, `#3d188e`, `#e3d7ff`, `#711a36`, `#fbd3e0`, `#8a1c0a`, `#f2b2a8`, `#7a2e0b`, `#ffc8af`, `#7a4706`, `#ffdeb5`, `#594c05`, `#fbe983`, `#684e07`, `#fdedc1`, `#0b4f30`, `#b3efd3`, `#04502e`, `#a2dcc1`, `#c2c2c2`, `#4986e7`, `#2da2bb`, `#b99aff`, `#994a64`, `#f691b2`, `#ff7537`, `#ffad46`, `#662e37`, `#ebdbde`, `#cca6ac`, `#094228`, `#42d692`, `#16a765`",
"type": "string"
}
},
"type": "object"
}
},
"description": "Response message for ListLabels RPC.",
"properties": {
"labels": {
"description": "List of all labels in the user's account.",
"items": {
"$ref": "#/$defs/Label"
},
"type": "array"
}
},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Add labels to message"
},
"description": "Adds one or more labels to a specific message in the authenticated user's Gmail account.\n\nTo find the message ID, use tools like `search_threads` or `get_thread`. If unsure of a user label's ID, use the `list_labels` tool first to discover available labels and their IDs.\nTo add a Trash label or a Spam label to a message, or move a specific message to Trash, please use the `apply_sensitive_message_label` tool instead.\n",
"inputSchema": {
"description": "Request message for LabelMessage RPC.",
"properties": {
"labelIds": {
"description": "Required. The IDs of the labels to add. Can be a system label ID (e.g., `INBOX`, `STARRED`, `UNREAD`, `IMPORTANT`) or a user-defined label ID. The tool accepts `label_ids` and not label names. Use the `list_labels` tool to get the corresponding label id to a display name for user-defined labels.",
"items": {
"type": "string"
},
"type": "array"
},
"messageId": {
"description": "Required. The ID of the message to add the labels to.",
"type": "string"
}
},
"required": [
"messageId",
"labelIds"
],
"type": "object"
},
"name": "label_message",
"outputSchema": {
"description": "Response message for LabelMessage RPC.",
"properties": {},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": true,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Remove labels from message"
},
"description": "Removes one or more labels from a specific message in the authenticated user's Gmail account. To find the message ID, use tools like `search_threads` or `get_thread`. If unsure of a user label's ID, use the `list_labels` tool first to discover available labels and their IDs.",
"inputSchema": {
"description": "Request message for UnlabelMessage RPC.",
"properties": {
"labelIds": {
"description": "Required. The IDs of the labels to remove. Can be a system label ID (e.g., `INBOX`, `TRASH`, `SPAM`, `STARRED`, `UNREAD`, `IMPORTANT`) or a user-defined label ID. The tool accepts `label_ids` and not label names. Use the `list_labels` tool to get the corresponding label id to a display name for user-defined labels.",
"items": {
"type": "string"
},
"type": "array"
},
"messageId": {
"description": "Required. The ID of the message to remove the labels from.",
"type": "string"
}
},
"required": [
"messageId",
"labelIds"
],
"type": "object"
},
"name": "unlabel_message",
"outputSchema": {
"description": "Response message for UnlabelMessage RPC.",
"properties": {},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": true,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Apply sensitive label (Trash or Spam) to message"
},
"description": "Adds a sensitive label (Trash or Spam) to a specific message in the authenticated user's Gmail account.\n\nUse this tool to trash a message, mark a message as spam, or move the specified message to Trash.\n\nTo find the message ID, use tools like `search_threads` or `get_thread`. To find the draft message ID, use tools like `list_drafts`.\n",
"inputSchema": {
"description": "Request message for ApplySensitiveMessageLabel RPC.",
"properties": {
"labelOption": {
"description": "Required. The sensitive label option to add.",
"enum": [
"LABEL_OPTION_UNSPECIFIED",
"TRASH",
"SPAM"
],
"type": "string",
"x-google-enum-descriptions": [
"Unspecified label option.",
"Trash label.",
"Spam label."
]
},
"messageId": {
"description": "Required. The ID of the message to add the label to.",
"type": "string"
}
},
"required": [
"messageId",
"labelOption"
],
"type": "object"
},
"name": "apply_sensitive_message_label",
"outputSchema": {
"description": "Response message for ApplySensitiveMessageLabel RPC.",
"properties": {},
"type": "object"
}
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Create label"
},
"description": "Creates a new label in the authenticated user's Gmail account.\nSupports creating nested labels (sub-labels) using a forward slash (e.g., 'Projects/Alpha/Sprint-1').\nBy default, parent labels will be automatically created if they do not exist.\n",
"inputSchema": {
"$defs": {
"LabelColor": {
"description": "The color of the label.",
"properties": {
"backgroundColor": {
"description": "The background color of the label, represented as a hex string (e.g., \"#ffffff\"). Only the following predefined set of color values are allowed: `#000000`, `#434343`, `#666666`, `#999999`, `#cccccc`, `#efefef`, `#f3f3f3`, `#ffffff`, `#fb4c2f`, `#ffad47`, `#fad165`, `#16a766`, `#43d692`, `#4a86e8`, `#a479e2`, `#f691b3`, `#f6c5be`, `#ffe6c7`, `#fef1d1`, `#b9e4d0`, `#c6f3de`, `#c9daf8`, `#e4d7f5`, `#fcdee8`, `#efa093`, `#ffd6a2`, `#fce8b3`, `#89d3b2`, `#a0eac9`, `#a4c2f4`, `#d0bcf1`, `#fbc8d9`, `#e66550`, `#ffbc6b`, `#fcda83`, `#44b984`, `#68dfa9`, `#6d9eeb`, `#b694e8`, `#f7a7c0`, `#cc3a21`, `#eaa041`, `#f2c960`, `#149e60`, `#3dc789`, `#3c78d8`, `#8e63ce`, `#e07798`, `#ac2b16`, `#cf8933`, `#d5ae49`, `#0b804b`, `#2a9c68`, `#285bac`, `#653e9b`, `#b65775`, `#822111`, `#a46a21`, `#aa8831`, `#076239`, `#1a764d`, `#1c4587`, `#41236d`, `#83334c`, `#464646`, `#e7e7e7`, `#0d3472`, `#b6cff5`, `#0d3b44`, `#98d7e4`, `#3d188e`, `#e3d7ff`, `#711a36`, `#fbd3e0`, `#8a1c0a`, `#f2b2a8`, `#7a2e0b`, `#ffc8af`, `#7a4706`, `#ffdeb5`, `#594c05`, `#fbe983`, `#684e07`, `#fdedc1`, `#0b4f30`, `#b3efd3`, `#04502e`, `#a2dcc1`, `#c2c2c2`, `#4986e7`, `#2da2bb`, `#b99aff`, `#994a64`, `#f691b2`, `#ff7537`, `#ffad46`, `#662e37`, `#ebdbde`, `#cca6ac`, `#094228`, `#42d692`, `#16a765`",
"type": "string"
},
"textColor": {
"description": "The text color of the label, represented as a hex string (e.g., \"#000000\"). Only the following predefined set of color values are allowed: `#000000`, `#434343`, `#666666`, `#999999`, `#cccccc`, `#efefef`, `#f3f3f3`, `#ffffff`, `#fb4c2f`, `#ffad47`, `#fad165`, `#16a766`, `#43d692`, `#4a86e8`, `#a479e2`, `#f691b3`, `#f6c5be`, `#ffe6c7`, `#fef1d1`, `#b9e4d0`, `#c6f3de`, `#c9daf8`, `#e4d7f5`, `#fcdee8`, `#efa093`, `#ffd6a2`, `#fce8b3`, `#89d3b2`, `#a0eac9`, `#a4c2f4`, `#d0bcf1`, `#fbc8d9`, `#e66550`, `#ffbc6b`, `#fcda83`, `#44b984`, `#68dfa9`, `#6d9eeb`, `#b694e8`, `#f7a7c0`, `#cc3a21`, `#eaa041`, `#f2c960`, `#149e60`, `#3dc789`, `#3c78d8`, `#8e63ce`, `#e07798`, `#ac2b16`, `#cf8933`, `#d5ae49`, `#0b804b`, `#2a9c68`, `#285bac`, `#653e9b`, `#b65775`, `#822111`, `#a46a21`, `#aa8831`, `#076239`, `#1a764d`, `#1c4587`, `#41236d`, `#83334c`, `#464646`, `#e7e7e7`, `#0d3472`, `#b6cff5`, `#0d3b44`, `#98d7e4`, `#3d188e`, `#e3d7ff`, `#711a36`, `#fbd3e0`, `#8a1c0a`, `#f2b2a8`, `#7a2e0b`, `#ffc8af`, `#7a4706`, `#ffdeb5`, `#594c05`, `#fbe983`, `#684e07`, `#fdedc1`, `#0b4f30`, `#b3efd3`, `#04502e`, `#a2dcc1`, `#c2c2c2`, `#4986e7`, `#2da2bb`, `#b99aff`, `#994a64`, `#f691b2`, `#ff7537`, `#ffad46`, `#662e37`, `#ebdbde`, `#cca6ac`, `#094228`, `#42d692`, `#16a765`",
"type": "string"
}
},
"type": "object"
}
},
"description": "Request message for CreateLabel RPC.",
"properties": {
"autoCreateParentLabels": {
"description": "Optional. Whether to automatically create parent labels for nested labels (separated by '/'). Defaults to true.",
"type": "boolean"
},
"color": {
"$ref": "#/$defs/LabelColor",
"description": "Optional. The color of the label."
},
"displayName": {
"description": "Required. The display name of the label to create.",
"type": "string"
}
},
"required": [
"displayName"
],
"type": "object"
},
"name": "create_label",
"outputSchema": {
"$defs": {
"LabelColor": {
"description": "The color of the label.",
"properties": {
"backgroundColor": {
"description": "The background color of the label, represented as a hex string (e.g., \"#ffffff\"). Only the following predefined set of color values are allowed: `#000000`, `#434343`, `#666666`, `#999999`, `#cccccc`, `#efefef`, `#f3f3f3`, `#ffffff`, `#fb4c2f`, `#ffad47`, `#fad165`, `#16a766`, `#43d692`, `#4a86e8`, `#a479e2`, `#f691b3`, `#f6c5be`, `#ffe6c7`, `#fef1d1`, `#b9e4d0`, `#c6f3de`, `#c9daf8`, `#e4d7f5`, `#fcdee8`, `#efa093`, `#ffd6a2`, `#fce8b3`, `#89d3b2`, `#a0eac9`, `#a4c2f4`, `#d0bcf1`, `#fbc8d9`, `#e66550`, `#ffbc6b`, `#fcda83`, `#44b984`, `#68dfa9`, `#6d9eeb`, `#b694e8`, `#f7a7c0`, `#cc3a21`, `#eaa041`, `#f2c960`, `#149e60`, `#3dc789`, `#3c78d8`, `#8e63ce`, `#e07798`, `#ac2b16`, `#cf8933`, `#d5ae49`, `#0b804b`, `#2a9c68`, `#285bac`, `#653e9b`, `#b65775`, `#822111`, `#a46a21`, `#aa8831`, `#076239`, `#1a764d`, `#1c4587`, `#41236d`, `#83334c`, `#464646`, `#e7e7e7`, `#0d3472`, `#b6cff5`, `#0d3b44`, `#98d7e4`, `#3d188e`, `#e3d7ff`, `#711a36`, `#fbd3e0`, `#8a1c0a`, `#f2b2a8`, `#7a2e0b`, `#ffc8af`, `#7a4706`, `#ffdeb5`, `#594c05`, `#fbe983`, `#684e07`, `#fdedc1`, `#0b4f30`, `#b3efd3`, `#04502e`, `#a2dcc1`, `#c2c2c2`, `#4986e7`, `#2da2bb`, `#b99aff`, `#994a64`, `#f691b2`, `#ff7537`, `#ffad46`, `#662e37`, `#ebdbde`, `#cca6ac`, `#094228`, `#42d692`, `#16a765`",
"type": "string"
},
"textColor": {
"description": "The text color of the label, represented as a hex string (e.g., \"#000000\"). Only the following predefined set of color values are allowed: `#000000`, `#434343`, `#666666`, `#999999`, `#cccccc`, `#efefef`, `#f3f3f3`, `#ffffff`, `#fb4c2f`, `#ffad47`, `#fad165`, `#16a766`, `#43d692`, `#4a86e8`, `#a479e2`, `#f691b3`, `#f6c5be`, `#ffe6c7`, `#fef1d1`, `#b9e4d0`, `#c6f3de`, `#c9daf8`, `#e4d7f5`, `#fcdee8`, `#efa093`, `#ffd6a2`, `#fce8b3`, `#89d3b2`, `#a0eac9`, `#a4c2f4`, `#d0bcf1`, `#fbc8d9`, `#e66550`, `#ffbc6b`, `#fcda83`, `#44b984`, `#68dfa9`, `#6d9eeb`, `#b694e8`, `#f7a7c0`, `#cc3a21`, `#eaa041`, `#f2c960`, `#149e60`, `#3dc789`, `#3c78d8`, `#8e63ce`, `#e07798`, `#ac2b16`, `#cf8933`, `#d5ae49`, `#0b804b`, `#2a9c68`, `#285bac`, `#653e9b`, `#b65775`, `#822111`, `#a46a21`, `#aa8831`, `#076239`, `#1a764d`, `#1c4587`, `#41236d`, `#83334c`, `#464646`, `#e7e7e7`, `#0d3472`, `#b6cff5`, `#0d3b44`, `#98d7e4`, `#3d188e`, `#e3d7ff`, `#711a36`, `#fbd3e0`, `#8a1c0a`, `#f2b2a8`, `#7a2e0b`, `#ffc8af`, `#7a4706`, `#ffdeb5`, `#594c05`, `#fbe983`, `#684e07`, `#fdedc1`, `#0b4f30`, `#b3efd3`, `#04502e`, `#a2dcc1`, `#c2c2c2`, `#4986e7`, `#2da2bb`, `#b99aff`, `#994a64`, `#f691b2`, `#ff7537`, `#ffad46`, `#662e37`, `#ebdbde`, `#cca6ac`, `#094228`, `#42d692`, `#16a765`",
"type": "string"
}
},
"type": "object"
}
},
"description": "Details of a label.",
"properties": {
"color": {
"$ref": "#/$defs/LabelColor",
"description": "Optional. The color of the label."
},
"labelId": {
"description": "The unique identifier of the label.",
"type": "string"
},
"messagesTotal": {
"description": "The total number of messages under the label.",
"format": "int32",
"type": "integer"
},
"messagesUnread": {
"description": "The number of unread messages under the label.",
"format": "int32",
"type": "integer"
},
"name": {
"description": "The human-readable display name of the label.",
"type": "string"
},
"threadsTotal": {
"description": "The total number of threads under the label.",
"format": "int32",
"type": "integer"
},
"threadsUnread": {
"description": "The number of unread threads under the label.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
}
}
]
}
},
"url": "https://gmailmcp.googleapis.com/mcp/v1"
},
"latency_ms": 105.18,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=UTF-8"
},
"bad_protocol_payload": {
"error": {
"code": -32600,
"message": "Unsupported protocol version"
},
"id": 410,
"jsonrpc": "2.0"
},
"bad_protocol_status_code": 400,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 103.1,
"status": "warning"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"prompts",
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 117.65,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://gmailmcp.googleapis.com/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://gmailmcp.googleapis.com/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://gmailmcp.googleapis.com/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://gmailmcp.googleapis.com/.well-known/mcp/server-card.json"
}
},
"remote_url": "https://gmailmcp.googleapis.com/mcp/v1",
"server_card_payload": null,
"server_identifier": "daviiiL/gmail-mcp-server-typescript-autogenerated"
}