Skip to main content
Glama

Gmail Manager MCP

๐Ÿงน Clean your inbox โ€ข ๐Ÿท๏ธ Organize with labels โ€ข ๐Ÿ—‘๏ธ Bulk delete emails

npm MCP Server MIT GitHub Sponsors Report Bug GitHub Stars

โœจ What It Does

Gmail Manager MCP provides direct access to your Gmail inbox through the Model Context Protocol, allowing you to:

Feature

Description

Email Search

Find emails by sender, subject, date, or any Gmail query

Inbox Analytics

Get insights about your email patterns and volume

Read & Draft Replies

Read the full content of an email

Smart Organization

Create and apply labels to categorize emails automatically

Bulk Cleanup

Remove old newsletters, notifications, and spam efficiently

Google Calendar

List, search, create and update events, RSVP, and find times everyone is free

Attachments

Attach local files to drafts, download attachments, or file them into Drive

IMPORTANT

Upgrading from a version before calendar or Drive support? Google cannot add scopes to a token it has already issued, so your saved credentials keep working for mail while calendar calls and save_attachment_to_drive fail with a permissions error. Enable the Calendar and Drive APIs and add their scopes as below, then re-authenticate once:

npx @spark-apps/gmail-manager-mcp@latest auth

Running a local checkout instead of the published package? Re-authenticate with the build your client actually loads, or you will re-consent against whichever version npm is serving and see the same error:

node /path/to/GMail-Manager-MCP/dist/index.js auth

Related MCP server: gmail-mcp-server

๐Ÿš€ Quick Setup

๐Ÿ“‹ Prerequisites: Get Gmail Credentials ๐Ÿ—๏ธ

  1. Create New Project ๐Ÿ“

  2. Enable all three APIs: Gmail ๐Ÿ“ง, Calendar ๐Ÿ“… and Drive ๐Ÿ“

  3. Create OAuth client ID (Desktop app type) ๐Ÿ”

  4. Download as gcp-oauth.keys.json ๐Ÿ“ฅ

  5. Navigate to Data access โ†’ Add or remove scopes โ†’ add all three: https://mail.google.com/, https://www.googleapis.com/auth/calendar and https://www.googleapis.com/auth/drive.file ๐Ÿ”“

  6. Navigate to Test users โ†’ Add your Google email ๐Ÿ‘ค

๐Ÿ“ Where to put gcp-oauth.keys.json:

For Windows users in WSL:

# Copy from Windows to current directory
cp /mnt/c/Users/YourUsername/gcp-oauth.keys.json ./gcp-oauth.keys.json

General locations:

  • Current directory: ./gcp-oauth.keys.json (works everywhere)

  • Home directory: ~/gcp-oauth.keys.json (for npx usage)

  • Custom path: Set GMAIL_OAUTH_PATH environment variable


๐Ÿ“ฅ Installation

npm i -g @spark-apps/gmail-manager-mcp

git clone https://github.com/muammar-yacoob/GMail-Manager-MCP.git
cd GMail-Manager-MCP
npm install

๐Ÿ’ป Terminal Usage

# Install globally
npm i -g @spark-apps/gmail-manager-mcp

# Setup authentication (run this first)
npx @spark-apps/gmail-manager-mcp@latest auth

# Test MCP server (for debugging)
npx @modelcontextprotocol/inspector npx @spark-apps/gmail-manager-mcp@latest

โš™๏ธ Configure MCP Client

Add to your MCP client config file (Claude Desktop example):

  • Windows %APPDATA%\\Claude\\claude_desktop_config.json

  • macOS ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux ~/.config/Claude/claude_desktop_config.json

๐Ÿ“ฆ For NPM Install:

{
  "mcpServers": {
    "gmail-manager": {
      "command": "npx", "args": ["@spark-apps/gmail-manager-mcp@latest"],
      "env": { "GMAIL_OAUTH_PATH": "C:\\path\\to\\gcp-oauth.keys.json" }
    }
  }
}

For Local Development:

{
  "mcpServers": {
    "gmail-manager": {
      "command": "node", "args": ["C:\\path\\to\\GMail-Manager-MCP\\dist\\index.js"]
    }
  }
}

๐Ÿ› ๏ธ Available Tools

๐Ÿ“ฌ Reading

Tool

Description

search_emails

Search using Gmail query syntax

read_email

Full content of one email

get_thread

Every message in a conversation, oldest first

๐Ÿงน Cleaning up

Tool

Description

trash_emails

Move to Trash โ€” recoverable for 30 days. Prefer this

untrash_emails

Pull messages back out of Trash

archive_emails

Remove from inbox, keep everything else

mark_emails

Mark read or unread

delete_email / batch_delete_emails

Permanent, bypasses Trash, cannot be undone

๐Ÿท๏ธ Labels

Tool

Description

list_labels

List all labels

create_label

Create a label, or return the existing one if the name is taken

delete_label

Delete a label

apply_label / remove_label

One message

batch_apply_labels / batch_remove_labels

Many messages, throttled and retried

โš™๏ธ Rules & unsubscribing

Tool

Description

list_filters

Filters (rules) currently on the account

create_filter

Set a rule that applies to mail arriving from now on

delete_filter

Remove a filter

get_unsubscribe_info

Read a sender's List-Unsubscribe link, without clicking it

unsubscribe_email

Opt out of a mailing list via the sender's own one-click endpoint

โœ๏ธ Drafts

Everything here writes to Drafts. Nothing is delivered โ€” see Sending below.

Tool

Description

create_draft

Compose to any To/Cc/Bcc with subject, body and attachments. Not tied to a thread

create_reply

Draft a threaded reply. Recipient can be overridden with to/cc/bcc

update_draft

Edit a draft in place, keeping its ID and URL. Pass only the fields you are changing

delete_draft

Throw a draft away, so a superseded version cannot be sent by mistake

list_drafts

Every draft with its ID, recipients, subject and snippet

Three things these do that are worth knowing about:

Every draft reports the recipient Gmail actually stored, read back from the saved message rather than echoed from the request. A wrong address is visible before anyone presses send, which is the only moment it can still be fixed.

A draft addressed only to yourself is called out. create_reply used to answer the From header unconditionally, so replying to your own sent mail resolved the recipient to your own address: the draft looked perfectly correct and would have gone nowhere. Replying to a message you sent now answers its original recipients instead, and says which rule it applied.

update_draft merges rather than replaces. Gmail's API has no partial update, so the underlying call rewrites the whole message; the tool reads the draft first and keeps every field you did not pass, attachments included.

๐Ÿ“Ž Attachments

Tool

Description

list_attachments

Attachments on a message, with the IDs needed to fetch them

download_attachment

Save one to a local path. Missing directories are created

save_attachment_to_drive

Upload one straight to Google Drive, optionally into a folder

Outgoing attachments are local file paths โ€” ~ is expanded โ€” assembled into a proper MIME multipart message and sent base64url-encoded via raw.

Gmail's 25 MB ceiling applies to the encoded message, and base64 adds about a third, so the real limit is roughly 18 MB of actual files. Oversized attachments are refused up front, with the per-file arithmetic, rather than being uploaded and rejected by Google with an opaque 400.

save_attachment_to_drive needs the Drive scope โ€” see Scopes.

๐Ÿ“ค Sending

Off by default. This server composes; a human sends. A draft can be read, corrected or thrown away; a sent message cannot, because SMTP has no recall.

To enable delivery, set GMAIL_ENABLE_SEND=1 in the server's environment and restart your MCP client:

"env": { "GMAIL_ENABLE_SEND": "1" }

That adds three tools:

Tool

Description

send_email

Compose and send immediately

send_draft

Send an existing draft

resend_email

Send a fresh copy of a sent message (does not recall the original)

๐Ÿ“… Calendar

Tool

Description

list_calendars

Calendars this account can access

list_events

Events on a calendar, optionally in a time range

search_events

Find events by keyword

get_event

One event in full, including RSVPs

create_event

Create an event, optionally with Meet link and guests

update_event

Change an event; only the fields you pass are altered

delete_event

Delete an event

respond_to_event

RSVP as yourself

suggest_time

Find slots where everyone is free, via free/busy

๐Ÿ” Auth

Tool

Description

authenticate_gmail

Authenticate via browser. Covers Gmail, Calendar and Drive

๐Ÿ”‘ Scopes

Scope

Why

https://mail.google.com/

Read, label, draft, trash and permanently delete mail

https://www.googleapis.com/auth/calendar

Calendar tools

https://www.googleapis.com/auth/drive.file

save_attachment_to_drive

Drive is requested as drive.file, not the full drive scope: it grants rights over the files this app creates and nothing else, so the server cannot read, list or alter anything already in your Drive.

The trade-off is worth knowing. Because the app never gains rights over folders it did not create, passing a folderId for a folder you made in the Drive web UI can come back as "not found" even though it plainly exists. When that happens the file is uploaded to My Drive instead and the result says so, rather than the upload being lost.

Changing this list invalidates existing credentials. Google will not add scopes to a refresh token it has already issued, so a token predating a scope keeps working for everything else while the new feature returns a bare 403. The tools detect that case and tell you to re-run authentication:

npx @spark-apps/gmail-manager-mcp@latest auth

๐Ÿ’ฌ Example Commands

  • "Delete all promotional emails from last 30 days"

  • "Delete all unread newsletters older than 1 week"

  • "Delete all 'no-reply' emails from last 3 months"

  • "Delete all LinkedIn notification emails"

  • "Delete all password reset emails older than 1 month"

  • "Delete redundant email chains where I'm CC'd"

  • "Summarize email with subject: 'last boring meeting'"

  • "Summarize all emails about 'project deadline'"

  • "Reply to email about 'project update' saying 'Got it, thanks!'"

  • "Label all emails from my bank as 'Finance'"

  • "Create 'Travel' label and move all booking confirmations"

  • "Find emails with attachments larger than 5MB"

  • "Show me who sends me the most emails"

  • "Find all unread emails older than 1 week"

  • "Show my busiest email days this month"

  • "Find emails I starred but never replied to"

  • "What's on my calendar this week?"

  • "Find a 45-minute slot next week when Sam and I are both free, weekdays 9-5"

  • "Move Thursday's standup to 10am and add a Meet link"

  • "Decline the Friday review, comment that I'm on leave"

  • "Search my calendar for anything about the tax deadline"

  • "Show me the rules currently on my account"

  • "Rule: anything from noreply@ skips the inbox and gets labelled Noise"

  • "Get the unsubscribe link for this sender so I can check it before clicking"

  • "Unsubscribe me from this newsletter"

Unsubscribing uses the sender's own published opt-out. Where they support one-click (RFC 8058) it completes on its own; where the only route is emailing them, it asks first, since that sends mail from your account. A plain link with no one-click declaration is handed back for you to open โ€” arbitrary URLs found in mail are never visited, and no response body from a sender is ever read back into the conversation.


๐ŸŒฑ Support & Contributions

โญ Star the repo & I power up like Mario ๐Ÿ„
โ˜• Devs run on coffee - Buy me one?
๐Ÿ’ฐ Crypto tips welcome - Tip in crypto
๐Ÿค Contributions are welcome - ๐Ÿด Fork, improve, PR!
๐ŸŽฅ Need help? Setup Tutorial โ€ข Join Discord

๐Ÿ’– Sponsor

Your support helps maintain and improve the tool. please consider sponsoring the project.


Made with โค๏ธ for MCP โ€ข Privacy Policy โ€ข Terms of Service

Available Tools

12 tools
apply_labelB

Apply a label to an email

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesEmail message ID
labelIdYesLabel ID to apply

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. It only says 'apply a label' without clarifying idempotency, error behavior, or required authentication, which is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Front-loaded with verb and resource. Ideal conciseness for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (two required params, no output schema), the description is minimally adequate. However, it lacks details such as whether labels can be applied multiple times or if authentication is assumed, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description does not add any meaning beyond the field names and types. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (apply a label) and the resource (email). It distinguishes from sibling tools like batch_apply_labels by implication (single vs batch) and remove_label, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like batch_apply_labels. No prerequisites, context, or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

authenticate_gmailA

Authenticate Gmail access via web browser (opens browser automatically)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses automatic browser opening, a key behavioral trait. However, no annotations exist, so description carries full burden. It omits details about token storage, state changes, or user interaction beyond opening browser.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise single sentence (8 words). Action verb is front-loaded. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool but missing context about return value or side effects. No output schema, so description could mention what happens after authentication (e.g., token stored). Slight insufficiency given complexity of authentication.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in input schema. Description adds no param info, which is acceptable given zero parameters. Baseline is 4 per rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool authenticates Gmail access via browser. It specifies the action (authenticate), resource (Gmail access), and method (web browser). This distinguishes it from siblings like search_emails or read_email which require prior authentication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use before other Gmail operations but does not explicitly state when to use it, when not to use it, or mention alternatives. No guidance on prerequisites or post-conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_apply_labelsC

Apply labels to multiple emails at once

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdsYesArray of email message IDs
labelIdsYesArray of label IDs to apply

TDQS

C2.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose all behavioral traits. However, it only says 'apply labels', which implies mutation, but does not mention side effects, idempotency, partial failure handling, or authorization needs. This is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. While it could include more detail, it is appropriately front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of batch operations (potential partial failures, idempotency, return values), the description is too minimal. No output schema exists, so the description should explain what is returned or what happens on success/failure. This is a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes both parameters (messageIds and labelIds). The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (apply labels) and the scope (multiple emails at once). It effectively distinguishes from siblings like 'apply_label' (single email) and 'batch_delete_emails' (different operation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use batch vs single apply_label, no prerequisites, and no exclusions. The description simply states the action without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_delete_emailsB

Delete multiple emails at once

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdsYesArray of email message IDs to delete

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description only says 'delete multiple emails at once' without disclosing whether the deletion is permanent, if there are any limits, or side effects. The burden on the description is high due to missing annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence. It is front-loaded and efficient, though it could benefit from slightly more detail to improve completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is too minimal. It does not address potential failure modes, rate limits, or the nature of the deletion, making it incomplete for a reliable tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the only parameter 'messageIds' ('Array of email message IDs to delete'). The tool description adds no additional parameter semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Delete multiple emails at once' clearly states the verb (delete) and resource (emails, multiple). It distinguishes itself from sibling tool 'delete_email' which deletes a single email.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use batch_delete_emails versus delete_email or other alternatives. The description lacks any context about prerequisites or scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_labelB

Create a new Gmail label

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLabel name

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the full burden. It only states 'create' (a mutation) but lacks details on authentication, idempotency, error handling (e.g., duplicate label names), or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no wasted words, but the brevity sacrifices important context that could be added without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one param, no output schema), the description should at least mention what happens on success (e.g., returns the label object) or prerequisites (authenticated user). It does not, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter 'name' described as 'Label name'. The description adds no extra meaning beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new Gmail label' clearly states the action (create) and the resource (Gmail label), which distinguishes it from sibling tools like delete_label, list_labels, and apply_label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives. For instance, no mention of whether it should be used before applying a label or how it differs from creating labels via other means.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_replyB

Generate a brief, natural reply draft and provide Gmail compose URL

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesEmail message ID to reply to
replyMessageYesThe reply message content to create as a draft

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It only states that a draft is generated and a URL provided, but fails to mention side effects (e.g., whether the draft is saved), required permissions, or error conditions. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the core action ('Generate a brief, natural reply draft') and includes the secondary output. Every word is essential, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description should explain what the tool returns beyond just mentioning a URL. It lacks details on the format of the reply draft or the URL, leaving the agent uncertain about the full return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters (messageId, replyMessage). The tool description adds no additional semantic meaning beyond what the schema already provides, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: generating a brief, natural reply draft and providing a Gmail compose URL. It clearly distinguishes itself from sibling tools like `read_email` or `apply_label` by specifying its unique output (a draft and URL).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios where a more detailed reply tool might be preferred, or when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_emailB

Permanently delete an email

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesEmail message ID to delete

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description declares permanent deletion but omits critical behavioral details such as lack of undo, required permissions, or confirmation steps. With no annotations available, the description alone is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words. While concise, it could be slightly expanded to include behavioral hints without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter destructive tool without output schema, the description partially covers the required context (permanence of deletion). However, it lacks details like limitations or side effects, leaving room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, specifying 'messageId' as 'Email message ID to delete'. The description adds no new meaning beyond the parameter name and schema, achieving baseline adequacy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description "Permanently delete an email" clearly states the action (delete) and the resource (email), distinguishing it from sibling tools like 'batch_delete_emails' (multiple deletion) and 'remove_label' (non-deletion action).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No context is provided on when to use this tool versus alternatives (e.g., batch_delete_emails), nor any prerequisites, caveats, or instructions for proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_labelC

Delete a Gmail label

ParametersJSON Schema
NameRequiredDescriptionDefault
labelIdYesLabel ID to delete

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states 'Delete a Gmail label.' It does not disclose behavioral traits like irreversibility, required permissions, or effects on associated messages.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (3 words) and front-loaded. It earns its place, though a bit more context (e.g., effect on messages) would not harm conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (1 param, no output schema), the description is minimally adequate but fails to provide behavioral context that would be expected for a destructive operation, especially without annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'labelId' is fully described in the schema (100% coverage). The tool description adds no additional meaning beyond what the schema provides, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and the resource (a Gmail label). It is specific and distinguishes from sibling tools like create_label or list_labels, though no explicit differentiation is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites mentioned, and no mention of consequences such as whether deletion is permanent or reversible.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_labelsB

List all Gmail labels

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations and only a terse description, behavioral traits like authentication requirements, rate limits, or whether system labels are included are not disclosed. The description fails to convey any transparency beyond the basic read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence with no unnecessary words. It is perfectly concise and front-loaded with the essential purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's simplicity, the description fails to mention what the returned list contains (e.g., label names, IDs, or metadata). With no output schema, this leaves the agent guessing about the response format, making it incomplete for a tool that returns data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the baseline is 4. The description 'List all Gmail labels' implies no parameters are needed, which aligns with the schema. However, it does not explicitly confirm the absence of filters, but no additional gloss is strictly required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List all Gmail labels' clearly states the verb (list) and resource (Gmail labels), which is specific and distinguishes this tool from siblings like create_label or delete_label that perform different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as search_emails, nor are there any contextual hints about prerequisites or appropriateness. The description is minimal and lacks usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_emailB

Read the full content of an email

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesEmail message ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description gives no additional behavioral details such as authentication needs, error behavior for invalid messageId, or rate limits. The term 'read' suggests non-destructive but lacks nuance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no wasted words. It is appropriately concise for a simple tool, though it could benefit from a brief usage note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should specify what 'full content' includes (e.g., body, headers, attachments). The current description leaves ambiguity about the return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'messageId' with a description. The tool description adds no further meaning beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Read') and resource ('full content of an email'), making it distinct from sibling tools like 'search_emails' (metadata only) or 'create_reply' (write operation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when full email content is needed, but does not explicitly contrast with siblings or provide when-not-to-use guidance. It is adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_labelB

Remove a label from an email

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesEmail message ID
labelIdYesLabel ID to remove

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It only states the action and does not disclose consequences (e.g., mutation, irreversibility, permissions, or error handling).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded and to the point, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimal but adequate for a simple tool with two clear parameters, though it lacks details on return values, error conditions, or behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description adds no additional meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Remove a label from an email' clearly states the action and resource, distinguishing it from siblings like 'apply_label' which adds a label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for removing a label from an email, but no explicit guidance on when to use vs alternatives (e.g., batch removal) or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_emailsA

Search emails using Gmail query syntax

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesGmail search query (e.g., 'is:unread', 'from:newsletter@example.com')
maxResultsNoMaximum number of results (default: 10)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states it searches, without mentioning that it is read-only or what it returns. This is a significant gap for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no fluff. It efficiently conveys the tool's action and method.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool lacks an output schema, yet the description does not explain what the search returns (e.g., email metadata, full content). This leaves the agent uncertain about the return value, a critical gap for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters (query and maxResults) with 100% coverage. The description adds value by specifying 'Gmail query syntax', clarifying the expected format for the query parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches emails using a specific syntax (Gmail query). This distinguishes it from sibling tools like read_email (single email) and delete_email (deletion).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching with Gmail syntax, but does not explicitly compare to alternatives like list_labels or read_email. It provides clear context but lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose. Batch operations are separate from single operations, and label management functions are all distinct (create, delete, list, apply, remove). No two tools are easily confused.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case. Verbs are imperative and descriptive, and the naming scheme is uniform across the set.

Tool Count5/5

12 tools is appropriate for a Gmail management server. It covers essential operations (auth, search, read, delete, label management) without being overwhelming or too sparse.

Completeness3/5

The tool set covers core Gmail operations but has notable gaps: no send email, no mark as read/unread, and no trash or undo capabilities. The create_reply tool only generates a draft URL, not full send. These gaps may hinder some workflows.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered inbox management with natural language commands through Claude Desktop. Supports sending, reading, searching, organizing emails, and managing labels using Gmail API with automatic authentication.
    8
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Connects multiple Gmail accounts to Claude Desktop via MCP, enabling email search, labeling, drafts, and confirmed sending through natural language.
    13
    215
    MIT

Latest Blog Posts

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/muammar-yacoob/GMail-Manager-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server