Registry-hosted Gmail with 26 SecureMCP tools for reading, drafting, sending, and organizing mail. Choose Read only, Read, draft and send, or Manage mail for your own connection. Google OAuth app configuration and account authorization are required.
Explore the tools exposed by Gmail to MCP clients.
Registered SecureMCP definitionsRead the authorized user's Gmail profile and current history ID.
See the schema below for the accepted input structure.
Full JSON schema, including nested inputs, allowed values, and validation constraints.{
"type": "object",
"properties": {},
"additionalProperties": false
}Search message IDs using Gmail search syntax. Follow nextPageToken; use gmail_get_message for content.
querypage_tokenmax_resultslabel_ids_filterinclude_spam_trash{
"type": "object",
"properties": {
"query": {
"type": "string",
"default": ""
},
"page_token": {
"type": "string",
"default": ""
},
"max_results": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"label_ids_filter": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
},
"include_spam_trash": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Read a message as full MIME parts, selected metadata, minimal IDs, or base64url raw MIME. Attachment IDs can be read separately.
formatmessage_idmetadata_headers{
"type": "object",
"required": [
"message_id"
],
"properties": {
"format": {
"enum": [
"full",
"metadata",
"minimal",
"raw"
],
"type": "string",
"default": "full"
},
"message_id": {
"type": "string"
},
"metadata_headers": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
}
},
"additionalProperties": false
}Read an attachment by its message and attachment IDs. Returns base64url data and decoded byte size.
message_idattachment_id{
"type": "object",
"required": [
"message_id",
"attachment_id"
],
"properties": {
"message_id": {
"type": "string"
},
"attachment_id": {
"type": "string"
}
},
"additionalProperties": false
}Search conversation IDs. A thread matches when any contained message matches the Gmail query.
querypage_tokenmax_resultslabel_ids_filterinclude_spam_trash{
"type": "object",
"properties": {
"query": {
"type": "string",
"default": ""
},
"page_token": {
"type": "string",
"default": ""
},
"max_results": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"label_ids_filter": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
},
"include_spam_trash": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Read the messages in a conversation. Thread retrieval supports full, metadata and minimal formats.
formatthread_idmetadata_headers{
"type": "object",
"required": [
"thread_id"
],
"properties": {
"format": {
"enum": [
"full",
"metadata",
"minimal"
],
"type": "string",
"default": "full"
},
"thread_id": {
"type": "string"
},
"metadata_headers": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
}
},
"additionalProperties": false
}List system and user label IDs and names in the selected Gmail account.
See the schema below for the accepted input structure.
Full JSON schema, including nested inputs, allowed values, and validation constraints.{
"type": "object",
"properties": {},
"additionalProperties": false
}Read a label's settings and message/thread counts.
label_id{
"type": "object",
"required": [
"label_id"
],
"properties": {
"label_id": {
"type": "string"
}
},
"additionalProperties": false
}Search draft IDs. Read full content with gmail_get_draft using the draft ID, not its underlying message ID.
querypage_tokenmax_resultsinclude_spam_trash{
"type": "object",
"properties": {
"query": {
"type": "string",
"default": ""
},
"page_token": {
"type": "string",
"default": ""
},
"max_results": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"include_spam_trash": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Read a saved draft and its underlying message in the requested MIME format.
formatdraft_id{
"type": "object",
"required": [
"draft_id"
],
"properties": {
"format": {
"enum": [
"full",
"metadata",
"minimal",
"raw"
],
"type": "string",
"default": "full"
},
"draft_id": {
"type": "string"
}
},
"additionalProperties": false
}Read mailbox changes after a saved history ID. An expired checkpoint requires a fresh mailbox listing; history is not a permanent audit log.
label_idpage_tokenmax_resultshistory_typesstart_history_id{
"type": "object",
"required": [
"start_history_id"
],
"properties": {
"label_id": {
"type": "string",
"default": ""
},
"page_token": {
"type": "string",
"default": ""
},
"max_results": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"history_types": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"messageAdded",
"messageDeleted",
"labelAdded",
"labelRemoved"
],
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
},
"start_history_id": {
"type": "string"
}
},
"additionalProperties": false
}Create an unsent draft with explicit content and optional attachments. No message is sent.
content{
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "object",
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"bcc": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"body": {
"type": "string",
"default": "",
"maxLength": 262144
},
"subject": {
"type": "string",
"default": "",
"maxLength": 998
},
"html_body": {
"anyOf": [
{
"type": "string",
"maxLength": 262144
},
{
"type": "null"
}
],
"default": null
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"filename",
"data_base64"
],
"properties": {
"filename": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"mime_type": {
"type": "string",
"default": "application/octet-stream",
"maxLength": 100
},
"data_base64": {
"type": "string",
"maxLength": 7340032
}
},
"description": "An attachment supplied as standard base64; no paths or URLs are fetched.",
"additionalProperties": false
},
"maxItems": 20
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Replace the entire saved draft, including recipients and attachments. The draft ID is stable but its underlying message ID changes.
contentdraft_id{
"type": "object",
"required": [
"draft_id",
"content"
],
"properties": {
"content": {
"type": "object",
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"bcc": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"body": {
"type": "string",
"default": "",
"maxLength": 262144
},
"subject": {
"type": "string",
"default": "",
"maxLength": 998
},
"html_body": {
"anyOf": [
{
"type": "string",
"maxLength": 262144
},
{
"type": "null"
}
],
"default": null
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"filename",
"data_base64"
],
"properties": {
"filename": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"mime_type": {
"type": "string",
"default": "application/octet-stream",
"maxLength": 100
},
"data_base64": {
"type": "string",
"maxLength": 7340032
}
},
"description": "An attachment supplied as standard base64; no paths or URLs are fetched.",
"additionalProperties": false
},
"maxItems": 20
}
},
"additionalProperties": false
},
"draft_id": {
"type": "string"
}
},
"additionalProperties": false
}Permanently delete one saved draft. This cannot be undone and does not send it.
draft_id{
"type": "object",
"required": [
"draft_id"
],
"properties": {
"draft_id": {
"type": "string"
}
},
"additionalProperties": false
}Send the saved draft unchanged to its saved recipients. Gmail removes the draft and creates a sent message; do not retry an ambiguous result.
draft_id{
"type": "object",
"required": [
"draft_id"
],
"properties": {
"draft_id": {
"type": "string"
}
},
"additionalProperties": false
}Send email to the explicit recipients, from the authorized Gmail account. Supports text, HTML and up to 5 MiB of attachments. No automatic retries.
content{
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "object",
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"bcc": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"body": {
"type": "string",
"default": "",
"maxLength": 262144
},
"subject": {
"type": "string",
"default": "",
"maxLength": 998
},
"html_body": {
"anyOf": [
{
"type": "string",
"maxLength": 262144
},
{
"type": "null"
}
],
"default": null
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"filename",
"data_base64"
],
"properties": {
"filename": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"mime_type": {
"type": "string",
"default": "application/octet-stream",
"maxLength": 100
},
"data_base64": {
"type": "string",
"maxLength": 7340032
}
},
"description": "An attachment supplied as standard base64; no paths or URLs are fetched.",
"additionalProperties": false
},
"maxItems": 20
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Send a reply in the original conversation to explicitly supplied recipients. Derives the subject and threading headers from the original; never selects reply-all recipients automatically.
contentmessage_id{
"type": "object",
"required": [
"message_id",
"content"
],
"properties": {
"content": {
"type": "object",
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"bcc": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100
},
"body": {
"type": "string",
"default": "",
"maxLength": 262144
},
"html_body": {
"anyOf": [
{
"type": "string",
"maxLength": 262144
},
{
"type": "null"
}
],
"default": null
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"filename",
"data_base64"
],
"properties": {
"filename": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"mime_type": {
"type": "string",
"default": "application/octet-stream",
"maxLength": 100
},
"data_base64": {
"type": "string",
"maxLength": 7340032
}
},
"description": "An attachment supplied as standard base64; no paths or URLs are fetched.",
"additionalProperties": false
},
"maxItems": 20
}
},
"additionalProperties": false
},
"message_id": {
"type": "string"
}
},
"additionalProperties": false
}Create a user label. Applying it to messages is a separate operation.
name{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": false
}Change a user label's name or visibility without replacing unspecified settings.
namelabel_idlabel_list_visibilitymessage_list_visibility{
"type": "object",
"required": [
"label_id"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"label_id": {
"type": "string"
},
"label_list_visibility": {
"anyOf": [
{
"enum": [
"labelShow",
"labelShowIfUnread",
"labelHide"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"message_list_visibility": {
"anyOf": [
{
"enum": [
"show",
"hide"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"additionalProperties": false
}Permanently remove a user label and its associations. Messages themselves are retained.
label_id{
"type": "object",
"required": [
"label_id"
],
"properties": {
"label_id": {
"type": "string"
}
},
"additionalProperties": false
}Add or remove message labels. Remove INBOX to archive; remove UNREAD to mark read. System label restrictions are enforced by Gmail.
message_idadd_label_idsremove_label_ids{
"type": "object",
"required": [
"message_id"
],
"properties": {
"message_id": {
"type": "string"
},
"add_label_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
},
"remove_label_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
}
},
"additionalProperties": false
}Move one message to Trash. This is recoverable with gmail_untrash_message until Gmail removes it.
message_id{
"type": "object",
"required": [
"message_id"
],
"properties": {
"message_id": {
"type": "string"
}
},
"additionalProperties": false
}Restore a message from Trash without permanently deleting data.
message_id{
"type": "object",
"required": [
"message_id"
],
"properties": {
"message_id": {
"type": "string"
}
},
"additionalProperties": false
}Add or remove labels on all existing messages in a thread. Future replies do not inherit this modification automatically.
thread_idadd_label_idsremove_label_ids{
"type": "object",
"required": [
"thread_id"
],
"properties": {
"thread_id": {
"type": "string"
},
"add_label_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
},
"remove_label_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
}
},
"additionalProperties": false
}Move every current message in a conversation to Trash.
thread_id{
"type": "object",
"required": [
"thread_id"
],
"properties": {
"thread_id": {
"type": "string"
}
},
"additionalProperties": false
}Restore the messages in a conversation from Trash.
thread_id{
"type": "object",
"required": [
"thread_id"
],
"properties": {
"thread_id": {
"type": "string"
}
},
"additionalProperties": false
}A profile controls which servers and tools your registered clients can use.
Register your client in My workspace → My clients and save its token securely. A published listing does not by itself grant runtime access.
Checked controls are enabled for this server’s hosted gateway. Consent and contracts are optional.
Community feedback is separate from security certification. One rating per account; you can update yours.
Loading reviews…
Catalog version: 0.4.0
Submitted source · publisher declaration
Not recorded
Running registry build · operator build record
https://github.com/PureCipher/xsecuremcp2.0
0566b374ddbb720cf486951f791209f7938e5992
src/purecipher/consumer_aws.py
9a15442043db8c07a28d9d2037f5ca5ecf79dab0846194e28bd036329d498b10src/purecipher/consumer_bridge.py
f7247aff802f0869776d5274e5a6c002374235bac8914ffeb6b68ec1536b745esrc/purecipher/consumer_bridge_tools.py
573ad6444316397f78d849f419fcf7a042468b820bf946f2b093c6462b6f5055src/purecipher/consumer_business.py
b18c519b3a65853180ca07a7234128146fb009b389542659b48dadaebaf3081esrc/purecipher/consumer_cloud.py
08fe162696615e205992db2c4b267c3a65c403cf727314d9e5e941a3597d5ce4src/purecipher/consumer_gmail.py
3118519c17f7da9f4c9cb84d35bc49ae8d40ab345c897d43421d0e5e7b363680src/purecipher/consumer_google_permissions.py
99fc2af714c2c177742d3a85b0116e3ed0fe094b2f0ea6e7ded8f9596cfa9c3esrc/purecipher/consumer_google_workspace.py
3799a9e54e74682b187cd57259895fccdb150cfbd7bd57da29fdd32538d806c5src/purecipher/consumer_governance.py
b1689ec86825ca12eaaf1e95590a97cbec8a46d581debdd0b7772ed3c85b9feasrc/purecipher/consumer_oauth.py
931372166d95e46bcdbe0ef6315741c583c814eff34d4228cccb270336ca312dsrc/purecipher/consumer_observability.py
c7d98468ba620e6a2966c1a4fe0ba28ad6feff290396fd2c13f40b7570d5d3e5src/purecipher/consumer_runtime.py
0ede891d2647e3526dc45876b2b60c064155ce9f42653e748b93003912fb0297src/purecipher/consumer_utilities.py
e7af046b063271da249c26d06b3d95ab529c77466370f6bbca6550478ee11a19Comparison covers the registry consumer runtime only. Catalog approval does not deploy code. External upstream deployment identity is not verified; personal connections and credentials are separate.