gmail-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TOKEN_ENCRYPTION_KEY | Yes | Key used to encrypt token storage. Generate with: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gmail_searchA | Search messages using Gmail's search syntax (e.g. "from:boss is:unread"). Returns compact metadata (id, thread_id, from, subject, date, snippet, labels) — no message bodies. Use gmail_read_message for a full body. |
| gmail_read_messageB | Fetch one message in full, including its plain-text body. |
| gmail_list_recentA | Fast, compact fetch of recent inbox messages for periodic triage. Intentionally returns metadata + snippet only (no bodies) so it's cheap to call on a schedule. This tool does not decide what's "urgent" — it hands back enough signal (subject, sender, snippet, labels like IMPORTANT/STARRED/UNREAD) for the caller to make that judgment. |
| gmail_create_draftA | Create a draft email. This never sends anything. Pass thread_id to draft a reply within an existing thread (the draft will pick up proper In-Reply-To/References headers automatically). |
| gmail_send_draftA | Send a previously created draft. This is a real, irreversible send. There is no tool to send arbitrary text directly — a draft must be created first via gmail_create_draft. |
| gmail_apply_labelA | Attach a custom label to a message (creating it first if needed). Only user-created labels can be applied through this tool — system labels (TRASH, SPAM, INBOX, UNREAD, IMPORTANT, ...) are rejected, so this tool cannot be used to trash, spam, or archive a message. Returns the label id that was applied. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hjerkic/gmail-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server