Skip to main content
Glama
jdickey1

IMAP Email MCP Server

by jdickey1

IMAP Email MCP Server

A Model Context Protocol (MCP) server that provides email capabilities to Claude Code, Claude Desktop, Cursor, and other MCP-compatible AI tools. Connect to any IMAP/SMTP email provider to read, search, compose, and manage emails directly from your AI assistant.

Quick Start

Claude Code (CLI)

Important: Claude Code CLI uses claude mcp add, not config files.

claude mcp add imap-email -s user \
  -e IMAP_USER=you@example.com \
  -e IMAP_PASSWORD='your-app-password' \
  -e IMAP_HOST=imap.example.com \
  -- npx -y imap-email-mcp

Note: If your password contains special shell characters (%, ^, *, $, !, etc.), wrap it in single quotes as shown above.

Note: Restart Claude Code after adding an MCP for the new tools to become available.

Verify with:

claude mcp list
claude mcp get imap-email

Remove with:

claude mcp remove imap-email -s user

Cursor

Add new MCP server:

  • Name: imap-email

  • Type: command

  • Command: npx -y imap-email-mcp

Then set environment variables in Cursor's MCP settings:

IMAP_USER=your-email@example.com
IMAP_PASSWORD=your-app-password
IMAP_HOST=imap.example.com

Claude Desktop

Add to your config file:

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

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

{
  "mcpServers": {
    "imap-email": {
      "command": "npx",
      "args": ["-y", "imap-email-mcp"],
      "env": {
        "IMAP_USER": "your-email@example.com",
        "IMAP_PASSWORD": "your-app-password",
        "IMAP_HOST": "imap.example.com"
      }
    }
  }
}

Related MCP server: mcp-imap

Features

  • Read emails - List and read emails from any folder

  • Search - Search by subject, sender, or body content

  • Compose - Create and save email drafts

  • Send - Send emails directly via SMTP

  • Manage drafts - List, read, update, and delete drafts

  • Delete emails - Remove unwanted messages

  • Multi-provider support - Works with Gmail, Outlook, Yahoo, Fastmail, and any standard IMAP provider

Configuration

Required Environment Variables

Variable

Description

IMAP_USER

Your email address

IMAP_PASSWORD

App password (not your main password!)

IMAP_HOST

IMAP server hostname

Optional Environment Variables

Variable

Default

Description

IMAP_PORT

993

IMAP port

IMAP_TLS

true

Use TLS

SMTP_HOST

Same as IMAP_HOST

SMTP server hostname

SMTP_PORT

465

SMTP port

SMTP_SECURE

true

Use secure SMTP

Provider Settings

Provider

IMAP_HOST

SMTP_HOST

Notes

Gmail

imap.gmail.com

smtp.gmail.com

Create App Password

Outlook

outlook.office365.com

smtp.office365.com

Use port 587, SMTP_SECURE=false

Yahoo

imap.mail.yahoo.com

smtp.mail.yahoo.com

Generate App Password in settings

Fastmail

imap.fastmail.com

smtp.fastmail.com

App Password from Privacy & Security

iCloud

imap.mail.me.com

smtp.mail.me.com

Generate App Password

Available Tools

Tool

Description

list_folders

List all email folders/mailboxes

list_emails

List emails with optional filtering

get_email

Get full email content by UID

search_emails

Search by subject, sender, or body

list_drafts

List all draft emails

get_draft

Get a specific draft by UID

create_draft

Create a new email draft

update_draft

Update an existing draft

send_email

Send an email directly

delete_email

Delete an email by UID

Usage Examples

Once configured, use natural language:

  • "Check my inbox for unread emails"

  • "Search for emails from john@example.com"

  • "Create a draft email to sarah@example.com about the meeting tomorrow"

  • "Show me my drafts folder"

Security Best Practices

  1. Use App Passwords - Never use your main account password

  2. Environment Variables - Store credentials in env vars, not in code

  3. Review Before Sending - Use create_draft instead of send_email to review first

Troubleshooting

Authentication failed

  • Verify your app password is correct

  • Ensure IMAP access is enabled in your email provider's settings

Drafts folder not found

  • The server tries common names (Drafts, INBOX.Drafts, [Gmail]/Drafts)

  • Your provider may use a different folder name

Connection timeout

  • Check your IMAP_HOST is correct

  • Verify port 993 is not blocked by firewall

Alternative Installation

Install globally

npm install -g imap-email-mcp
imap-email-mcp

Clone and run

git clone https://github.com/jdickey1/imap-email-mcp.git
cd imap-email-mcp
npm install
node index.js

License

MIT License - see LICENSE for details.

Available Tools

10 tools
create_draftC

Create a new draft email

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address(es), comma-separated
subjectYesEmail subject
bodyNoEmail body (plain text)
htmlNoEmail body (HTML)
ccNoCC recipients, comma-separated
bccNoBCC recipients, comma-separated

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'create' which implies a write operation, but doesn't disclose behavioral traits like whether this requires authentication, where the draft is stored (e.g., in a drafts folder), if it's immediately visible in email clients, or what happens on failure. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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, efficient sentence with zero waste: 'Create a new draft email'. It's front-loaded with the core action and resource, making it immediately scannable. Every word earns its place, and there's no redundant or verbose phrasing.

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 (a mutation tool creating email drafts), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a draft ID, success status, or error details), behavioral constraints, or integration context. For a tool with 6 parameters and mutation behavior, this minimal description leaves too much unspecified for reliable agent use.

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 description coverage is 100%, so the schema fully documents all 6 parameters with clear descriptions (e.g., 'to' as 'Recipient email address(es), comma-separated'). The description adds no additional parameter information beyond what's in the schema. According to guidelines, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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 verb ('create') and resource ('new draft email'), making the purpose immediately understandable. It distinguishes from siblings like 'send_email' (which sends) and 'update_draft' (which modifies existing drafts). However, it doesn't specify that this creates a draft rather than a sent email, which is somewhat implied but could be more explicit.

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. It doesn't mention prerequisites (e.g., needing an email account), when to choose 'create_draft' over 'send_email' (for later editing vs. immediate sending), or how it relates to 'update_draft' (for modifying existing drafts). Without this context, the agent must infer usage from tool names alone.

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

delete_emailB

Delete an email by UID

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesEmail UID to delete
folderNoFolder name (default: INBOX)INBOX

TDQS

B3.2/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 for behavioral disclosure. While 'delete' implies a destructive mutation, it doesn't specify whether the deletion is permanent or reversible, if it requires special permissions, or what happens on success/failure. This is inadequate for a destructive tool with zero annotation coverage.

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, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.

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?

For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks critical behavioral details (permanence, permissions, error handling) and doesn't explain the relationship with sibling tools, leaving significant gaps for agent understanding.

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 description coverage is 100%, so the schema already documents both parameters (uid and folder) thoroughly. The description adds no additional meaning beyond what the schema provides, such as explaining UID format or folder hierarchy. Baseline 3 is appropriate when schema does the heavy lifting.

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 an email by UID' clearly states the specific action (delete) and target resource (email), using the verb+resource pattern. It distinguishes from siblings like get_email, list_emails, or search_emails by specifying the destructive 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing the email UID from list_emails or get_email), nor does it specify when not to use it (e.g., for drafts vs. sent emails).

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

get_draftC

Get a specific draft email by UID

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesDraft UID

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 the full burden of behavioral disclosure. It states the tool retrieves a draft but doesn't mention whether this is a read-only operation, what happens with invalid UIDs, or the response format. This is inadequate for a tool with potential error cases.

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, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, earning full marks for 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?

For a retrieval tool with no annotations and no output schema, the description is incomplete. It doesn't explain what data is returned (e.g., email content, metadata) or error handling, leaving gaps in understanding the tool's behavior.

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 description coverage is 100%, so the schema already documents the 'uid' parameter fully. The description adds no additional meaning beyond implying UID identifies a draft, which is minimal value. Baseline 3 is appropriate when schema does the heavy lifting.

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 ('Get') and resource ('a specific draft email by UID'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'get_email' (which likely retrieves non-draft emails), missing full differentiation.

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 'get_email' or 'list_drafts'. It lacks context about prerequisites (e.g., needing a valid UID) or exclusions, leaving usage unclear.

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

get_emailC

Get full email content by UID

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesEmail UID
folderNoFolder name (default: INBOX)INBOX

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 for behavioral disclosure. It states the action but doesn't cover important aspects like whether this is a read-only operation, potential authentication needs, error handling for invalid UIDs, or rate limits. This leaves significant gaps for an agent.

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 extremely concise with a single, clear sentence that states the core functionality upfront. There's no wasted verbiage or unnecessary elaboration, making it efficiently structured.

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?

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'full email content' includes (e.g., headers, body, attachments) or the return format, leaving the agent with critical unknowns about the operation's behavior and results.

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 description coverage is 100%, so the schema already fully documents both parameters. The description adds no additional parameter information beyond what's in the schema, meeting the baseline expectation but not providing extra value.

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 verb ('Get') and resource ('full email content') with a specific mechanism ('by UID'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_draft' or 'list_emails', which prevents a perfect score.

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. It doesn't mention when to prefer this over 'list_emails' for retrieving a single email, or when 'get_draft' might be more appropriate for draft content, leaving usage context unclear.

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

list_draftsC

List all draft emails

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of drafts to return (default: 20)

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 the full burden of behavioral disclosure. It states the action ('List all draft emails') but lacks details on permissions, rate limits, pagination, or return format. This is inadequate for a tool that likely interacts with user data, leaving significant gaps in understanding its behavior.

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, efficient sentence with zero waste—'List all draft emails' is front-loaded and directly conveys the core function. Every word earns its place, making it highly concise and well-structured.

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 incomplete. It doesn't address behavioral aspects like safety, data handling, or response format, which are crucial for a list operation. For a tool with minimal structured data, more context is needed to be fully helpful.

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, with the 'limit' parameter fully documented. The description adds no parameter-specific information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.

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 'List all draft emails' clearly states the verb ('List') and resource ('draft emails'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_emails' or 'get_draft' beyond the resource type, missing explicit scope or functional distinctions.

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 such as 'list_emails' (for non-draft emails) or 'get_draft' (for a specific draft). There's no mention of prerequisites, context, or exclusions, leaving usage entirely implied from the tool name alone.

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

list_emailsB

List emails from a folder with optional filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoFolder name (default: INBOX)INBOX
limitNoMaximum number of emails to return (default: 20)
unseen_onlyNoOnly return unread emails
since_dateNoOnly return emails since this date (YYYY-MM-DD format)

TDQS

B3.2/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 basic functionality. It doesn't disclose behavioral traits like pagination, rate limits, authentication needs, error conditions, or what happens with invalid inputs. The description is minimal and lacks crucial operational context.

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, efficient sentence that front-loads the core purpose. Every word earns its place with no redundancy or unnecessary elaboration. It's appropriately sized for a listing tool with good schema coverage.

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?

For a tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain return format, pagination behavior, error handling, or authentication requirements. The schema covers parameters well, but the description fails to provide necessary operational context for effective use.

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 description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it mentions 'optional filtering' but doesn't explain which parameters constitute filtering or their relationships.

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 verb ('List') and resource ('emails'), specifying the scope ('from a folder') and optional filtering. It distinguishes from siblings like 'search_emails' by focusing on listing rather than searching, but doesn't explicitly contrast them.

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 listing emails from folders with filtering, but provides no explicit guidance on when to use this vs. alternatives like 'search_emails' or 'get_email'. It mentions optional filtering which gives some context, but lacks when-not scenarios or prerequisites.

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

list_foldersB

List all email folders/mailboxes in the IMAP account

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but fails to describe key behaviors like whether this is a read-only operation, if it requires specific permissions, how results are formatted, or if there are rate limits. This leaves significant gaps for an agent to understand how to interact with it safely.

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, clear sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded and wastes no space, making it highly efficient for an agent to parse.

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 incomplete. It doesn't address behavioral aspects like safety, permissions, or result format, which are crucial for a tool that interacts with an IMAP account. This leaves the agent with insufficient context to use the tool effectively.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, which is efficient and avoids redundancy. A baseline of 4 is applied since the schema fully handles the parameter semantics.

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 verb ('List') and resource ('all email folders/mailboxes in the IMAP account'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_drafts' or 'list_emails', which prevents a perfect score.

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 'list_emails' or 'list_drafts'. It lacks context about prerequisites, such as whether authentication is required or if there are any limitations on folder types listed.

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

search_emailsC

Search emails by subject, from, or body text

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoFolder to search (default: INBOX)INBOX
subjectNoSearch in subject line
fromNoSearch by sender
bodyNoSearch in body text
limitNoMaximum results (default: 20)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the search functionality but fails to describe key behaviors such as whether this is a read-only operation, how results are returned (e.g., pagination, format), error handling, or any rate limits. For a search tool with zero annotation coverage, this is a significant gap.

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, efficient sentence that front-loads the core functionality ('Search emails') and specifies key parameters without unnecessary details. Every word earns its place, making it highly concise and well-structured for quick comprehension.

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 a search tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., safety, performance), result format, and usage context, which are crucial for an agent to invoke the tool effectively in a real-world scenario.

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 description coverage is 100%, so the schema already documents all 5 parameters with their types, defaults, and descriptions. The description adds minimal value by listing searchable fields ('subject, from, or body text'), but it doesn't explain parameter interactions (e.g., how multiple fields combine) or semantics beyond what the schema provides, aligning with the baseline score.

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 tool's purpose with a specific verb ('Search') and resource ('emails'), and specifies searchable fields ('by subject, from, or body text'). However, it doesn't explicitly differentiate from sibling tools like 'list_emails' or 'get_email', which might provide similar functionality without search parameters.

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 'list_emails' (for unfiltered listing) or 'get_email' (for retrieving a specific email by ID). There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage based on the search capability alone.

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

send_emailC

Send an email directly

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address(es)
subjectYesEmail subject
bodyNoEmail body (plain text)
htmlNoEmail body (HTML)
ccNoCC recipients
bccNoBCC recipients

TDQS

C2.7/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 for behavioral disclosure. 'Send an email directly' implies a write operation that transmits an email, but it doesn't disclose critical traits: whether this requires specific permissions, if emails are sent immediately or queued, rate limits, error handling, or what happens on success/failure. The description is too minimal for a mutation tool with zero annotation coverage.

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 extremely concise with just three words, front-loaded with the core action. There's zero wasted language, making it easy to parse quickly, though this conciseness comes at the cost of 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 this is a mutation tool (sending emails) with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or behavioral nuances. For a 6-parameter tool that performs a potentially destructive action, more context is needed to guide safe and effective usage.

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 description coverage is 100%, so the schema fully documents all 6 parameters (to, subject, body, html, cc, bcc) with clear descriptions. The tool description adds no parameter information beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Send an email directly' clearly states the action (send) and resource (email), but it's vague about scope and lacks differentiation from siblings like 'create_draft' or 'update_draft'. It doesn't specify if this sends immediately versus scheduling, which would help distinguish it from draft-related tools.

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. It doesn't mention when to choose 'send_email' over 'create_draft' for composing emails, or when to use it in conjunction with 'list_emails' or 'search_emails'. There's no context about prerequisites like authentication or email client setup.

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

update_draftC

Update an existing draft by deleting old and creating new

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesUID of draft to update
toYesRecipient email address(es)
subjectYesEmail subject
bodyNoEmail body (plain text)
htmlNoEmail body (HTML)
ccNoCC recipients
bccNoBCC recipients

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 the full burden of behavioral disclosure. It mentions 'deleting old and creating new,' which implies mutation and data replacement, but fails to detail permissions, side effects, error handling, or response format. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence with zero wasted words, clearly front-loading the core action. It is appropriately sized for the tool's complexity.

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 tool's mutation nature, lack of annotations, and no output schema, the description is incomplete. It should explain more about the update process, potential impacts, and what to expect in return, but it only provides a high-level overview.

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 description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no specific parameter information beyond the general update action, meeting the baseline of 3 where the schema handles the heavy lifting without extra value from the description.

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 ('Update') and resource ('an existing draft'), distinguishing it from siblings like create_draft and get_draft. However, it doesn't specify what fields can be updated beyond the general concept, which keeps it from being a perfect 5.

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 create_draft or send_email, nor does it mention prerequisites such as needing an existing draft UID. It lacks explicit usage context or exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updates
    • First observedcreate_draft
    • First observeddelete_email
    • First observedget_draft
    • First observedget_email
    • First observedlist_drafts
    • First observedlist_emails
    • First observedlist_folders
    • First observedsearch_emails
    • First observedsend_email
    • First observedupdate_draft

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. For example, list_emails retrieves emails from a folder, while search_emails filters by content, and get_email fetches full content of a specific email. The draft-related tools (create_draft, get_draft, list_drafts, update_draft) are well-separated from email management tools, ensuring agents can easily select the right tool for each task.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as list_folders, create_draft, and send_email. This predictability makes the tool set easy to navigate and understand, with no deviations in naming conventions across the ten tools.

Tool Count5/5

With 10 tools, the server is well-scoped for email management via IMAP. Each tool earns its place by covering essential operations like listing, creating, retrieving, updating, and deleting emails and drafts, without being overly sparse or bloated for the domain.

Completeness4/5

The tool surface provides strong coverage for core email workflows, including CRUD operations for emails and drafts, folder management, and sending. A minor gap is the lack of tools for moving emails between folders or marking them as read/unread, but agents can work around this with the existing tools for basic email handling.

Maintenance

ActivityInactive
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
    C
    maintenance
    Connects AI assistants to email accounts via IMAP/SMTP, enabling reading, searching, sending, and organizing emails with features like smart drafts, scheduling, and attachment handling.
    271
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with email accounts via IMAP and SMTP, supporting mailbox listing, email search, retrieval, sending, and management.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to send, read, and manage emails via SMTP and IMAP, with support for attachments, threads, and mailbox organization.
    16
    42
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI models to send, receive, search, and manage emails via SMTP/IMAP, including support for attachments, contacts, and advanced search.
    -

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/jdickey1/imap-email-mcp'

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