Gmail

purecipher-google-gmail · v0.4.0 · by purecipher
Access requirements not specifiedCertification: Basic
What you can do

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.

Tools

26 tools

Explore the tools exposed by Gmail to MCP clients.

Registered SecureMCP definitions
26 of 26 tools
  • gmail_profile

    Read the authorized user's Gmail profile and current history ID.

    View inputs and schema

    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
    }
  • gmail_list_messages

    Search message IDs using Gmail search syntax. Follow nextPageToken; use gmail_get_message for content.

    View inputs and schema
    query
    Optional
    string
    page_token
    Optional
    string
    max_results
    Optional
    integer
    label_ids_filter
    Optional
    include_spam_trash
    Optional
    boolean
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_get_message

    Read a message as full MIME parts, selected metadata, minimal IDs, or base64url raw MIME. Attachment IDs can be read separately.

    View inputs and schema
    format
    Optional
    string
    message_id
    Required
    string
    metadata_headers
    Optional
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_get_attachment

    Read an attachment by its message and attachment IDs. Returns base64url data and decoded byte size.

    View inputs and schema
    message_id
    Required
    string
    attachment_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "message_id",
        "attachment_id"
      ],
      "properties": {
        "message_id": {
          "type": "string"
        },
        "attachment_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_list_threads

    Search conversation IDs. A thread matches when any contained message matches the Gmail query.

    View inputs and schema
    query
    Optional
    string
    page_token
    Optional
    string
    max_results
    Optional
    integer
    label_ids_filter
    Optional
    include_spam_trash
    Optional
    boolean
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_get_thread

    Read the messages in a conversation. Thread retrieval supports full, metadata and minimal formats.

    View inputs and schema
    format
    Optional
    string
    thread_id
    Required
    string
    metadata_headers
    Optional
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_list_labels

    List system and user label IDs and names in the selected Gmail account.

    View inputs and schema

    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
    }
  • gmail_get_label

    Read a label's settings and message/thread counts.

    View inputs and schema
    label_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "label_id"
      ],
      "properties": {
        "label_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_list_drafts

    Search draft IDs. Read full content with gmail_get_draft using the draft ID, not its underlying message ID.

    View inputs and schema
    query
    Optional
    string
    page_token
    Optional
    string
    max_results
    Optional
    integer
    include_spam_trash
    Optional
    boolean
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_get_draft

    Read a saved draft and its underlying message in the requested MIME format.

    View inputs and schema
    format
    Optional
    string
    draft_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "draft_id"
      ],
      "properties": {
        "format": {
          "enum": [
            "full",
            "metadata",
            "minimal",
            "raw"
          ],
          "type": "string",
          "default": "full"
        },
        "draft_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_list_history

    Read mailbox changes after a saved history ID. An expired checkpoint requires a fresh mailbox listing; history is not a permanent audit log.

    View inputs and schema
    label_id
    Optional
    string
    page_token
    Optional
    string
    max_results
    Optional
    integer
    history_types
    Optional
    start_history_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_create_draft

    Create an unsent draft with explicit content and optional attachments. No message is sent.

    View inputs and schema
    content
    Required
    object
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_update_draft

    Replace the entire saved draft, including recipients and attachments. The draft ID is stable but its underlying message ID changes.

    View inputs and schema
    content
    Required
    object
    draft_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_delete_draft

    Permanently delete one saved draft. This cannot be undone and does not send it.

    View inputs and schema
    draft_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "draft_id"
      ],
      "properties": {
        "draft_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_send_draft

    Send the saved draft unchanged to its saved recipients. Gmail removes the draft and creates a sent message; do not retry an ambiguous result.

    View inputs and schema
    draft_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "draft_id"
      ],
      "properties": {
        "draft_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_send_message

    Send email to the explicit recipients, from the authorized Gmail account. Supports text, HTML and up to 5 MiB of attachments. No automatic retries.

    View inputs and schema
    content
    Required
    object
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_reply_message

    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.

    View inputs and schema
    content
    Required
    object
    message_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_create_label

    Create a user label. Applying it to messages is a separate operation.

    View inputs and schema
    name
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_update_label

    Change a user label's name or visibility without replacing unspecified settings.

    View inputs and schema
    name
    Optional
    label_id
    Required
    string
    label_list_visibility
    Optional
    message_list_visibility
    Optional
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_delete_label

    Permanently remove a user label and its associations. Messages themselves are retained.

    View inputs and schema
    label_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "label_id"
      ],
      "properties": {
        "label_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_modify_message_labels

    Add or remove message labels. Remove INBOX to archive; remove UNREAD to mark read. System label restrictions are enforced by Gmail.

    View inputs and schema
    message_id
    Required
    string
    add_label_ids
    Optional
    remove_label_ids
    Optional
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_trash_message

    Move one message to Trash. This is recoverable with gmail_untrash_message until Gmail removes it.

    View inputs and schema
    message_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "message_id"
      ],
      "properties": {
        "message_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_untrash_message

    Restore a message from Trash without permanently deleting data.

    View inputs and schema
    message_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "message_id"
      ],
      "properties": {
        "message_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_modify_thread_labels

    Add or remove labels on all existing messages in a thread. Future replies do not inherit this modification automatically.

    View inputs and schema
    thread_id
    Required
    string
    add_label_ids
    Optional
    remove_label_ids
    Optional
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "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
    }
  • gmail_trash_thread

    Move every current message in a conversation to Trash.

    View inputs and schema
    thread_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "thread_id"
      ],
      "properties": {
        "thread_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  • gmail_untrash_thread

    Restore the messages in a conversation from Trash.

    View inputs and schema
    thread_id
    Required
    string
    Full JSON schema, including nested inputs, allowed values, and validation constraints.
    {
      "type": "object",
      "required": [
        "thread_id"
      ],
      "properties": {
        "thread_id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
Availability in your MCP client also depends on your account connection, permissions, and active profile.
Connect

Use it from your MCP client

A profile controls which servers and tools your registered clients can use.

  1. Add this server to a profile and set up your personal connection if required.
  2. Select the tools and client instances to allow, then complete the profile’s access review.
  3. Once active, open Connect & test on the profile to get your client configuration and check connectivity.

Register your client in My workspace → My clients and save its token securely. A published listing does not by itself grant runtime access.

Technical details and verification
How a call flows

A round trip: client → registry → server → back

MCP client
Registry gateway
Secured MCP Server
request →← response
Registry guardrails
PolicyProvenanceReflexiveConsentContract
connect
result
MCP client connects to the registry
1 · Authenticate2 · Discover tools3 · Invoke tool
Governance

Gateway controls

Checked controls are enabled for this server’s hosted gateway. Consent and contracts are optional.

○
Policy engine
Only curator-vouched tools are callable — anything else is denied at the gateway.
○
Reflexive core
Per-client behavioral baselines flag anomalous activity.
○
Consent graph
Scoped grants are checked before a tool runs; grants can expire.
○
Contract broker
An active contract sets allowed tools and rate limits per client.
Provenance & verification
Signature
Valid · manifest match
Attested by
Publisher
Hosting
Catalog listing
The registry pins the exact upstream above and records every call made through the gateway in a tamper-evident ledger — visible to the client that made the calls.

User ratings & feedback

Community feedback is separate from security certification. One rating per account; you can update yours.

Loading reviews…

Source & deployment

Not verified

Catalog version: 0.4.0

Submitted source · publisher declaration

Not recorded

Running registry build · operator build record

https://github.com/PureCipher/xsecuremcp2.0

0566b374ddbb720cf486951f791209f7938e5992

Implementation paths and SHA-256 hashes (13)
  • src/purecipher/consumer_aws.py

    9a15442043db8c07a28d9d2037f5ca5ecf79dab0846194e28bd036329d498b10
  • src/purecipher/consumer_bridge.py

    f7247aff802f0869776d5274e5a6c002374235bac8914ffeb6b68ec1536b745e
  • src/purecipher/consumer_bridge_tools.py

    573ad6444316397f78d849f419fcf7a042468b820bf946f2b093c6462b6f5055
  • src/purecipher/consumer_business.py

    b18c519b3a65853180ca07a7234128146fb009b389542659b48dadaebaf3081e
  • src/purecipher/consumer_cloud.py

    08fe162696615e205992db2c4b267c3a65c403cf727314d9e5e941a3597d5ce4
  • src/purecipher/consumer_gmail.py

    3118519c17f7da9f4c9cb84d35bc49ae8d40ab345c897d43421d0e5e7b363680
  • src/purecipher/consumer_google_permissions.py

    99fc2af714c2c177742d3a85b0116e3ed0fe094b2f0ea6e7ded8f9596cfa9c3e
  • src/purecipher/consumer_google_workspace.py

    3799a9e54e74682b187cd57259895fccdb150cfbd7bd57da29fdd32538d806c5
  • src/purecipher/consumer_governance.py

    b1689ec86825ca12eaaf1e95590a97cbec8a46d581debdd0b7772ed3c85b9fea
  • src/purecipher/consumer_oauth.py

    931372166d95e46bcdbe0ef6315741c583c814eff34d4228cccb270336ca312d
  • src/purecipher/consumer_observability.py

    c7d98468ba620e6a2966c1a4fe0ba28ad6feff290396fd2c13f40b7570d5d3e5
  • src/purecipher/consumer_runtime.py

    0ede891d2647e3526dc45876b2b60c064155ce9f42653e748b93003912fb0297
  • src/purecipher/consumer_utilities.py

    e7af046b063271da249c26d06b3d95ab529c77466370f6bbca6550478ee11a19

Comparison 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.