Skip to main content
Glama
AIWerk

@aiwerk/mcp-server-imap

by AIWerk

@aiwerk/mcp-server-imap

npm version npm downloads License: MIT

IMAP/SMTP MCP server that works with any email provider. Set host, user, pass — done.

Unlike Gmail-only or Outlook-only MCP servers, this one speaks standard IMAP/SMTP — so it works with every email provider out of the box.

Why this server?

Most email MCP servers only work with one provider (Gmail, Outlook). This one works with any provider that supports IMAP:

  • Gmail, Outlook, Yahoo — yes

  • Fastmail, ProtonMail Bridge, Zoho — yes

  • Self-hosted (Dovecot, Postfix, hMailServer) — yes

  • Corporate/hosted (Hostpoint, Infomaniak, OVH) — yes

One server, every mailbox.

Related MCP server: email-mcp

Highlights

  • Universal — standard IMAP/SMTP, works everywhere

  • Simple setup — just IMAP_HOST, IMAP_USER, IMAP_PASS and you're connected

  • Safety first — email sending is disabled by default (SMTP_SEND_ENABLED=false). Your AI agent can read emails but can't send anything until you explicitly opt in

  • Lazy credentials — the server starts and exposes its tool list without requiring credentials. Auth is only needed when a tool is actually called

  • Real MIME parsing — handles multipart, HTML/text, attachments, reply threading

AIWerk hosted service — email_send and email_reply are local-only

If you use this server through the AIWerk hosted service at aiwerkmcp.com, the two outgoing-mail tools are not exposed:

  • email_send

  • email_reply

The other 8 read-side tools (email_list, email_read, email_search, email_folders, email_flag, email_move, email_delete, email_attachment) work normally on the hosted service.

Why? The hosted service shares an IP across all users. If outgoing mail went out from that shared IP, the IP would appear in every recipient's Received: headers — one bad actor could damage deliverability for every user. There is no shared-IP architecture where arbitrary user sends works safely.

How to send mail then? Run the server locally, where outgoing mail goes from your own IP and your own provider reputation. Three paths:

  1. Ad-hoc one-email CLI — see the next section. Zero config, one-shot.

  2. Direct stdio MCP server in your client (Cursor, Claude Desktop, OpenClaw) — point your client config at npx -y @aiwerk/mcp-server-imap with your IMAP_* and SMTP_* env vars including SMTP_SEND_ENABLED=true.

  3. Local @aiwerk/mcp-bridgenpx -y @aiwerk/mcp-bridge install imap-email --catalog aiwerkmcp.com, then point your client at the local bridge endpoint.

In all three cases the mail goes from your home / office IP, not from the hosted service.

Ad-hoc one-email CLI

Note: On the AIWerk hosted service, the email_send and email_reply MCP tools are not exposed (the service shares an IP across all users, so allowing arbitrary sends would risk every user's deliverability). Use any of the three paths below to send email locally.

Need to send a single email from the command line — for example, to deliver a draft your AI agent composed? Use aiwerk-send-email:

SMTP_HOST=smtp.gmail.com \
SMTP_PORT=587 \
SMTP_USER=me@gmail.com \
SMTP_PASS='app-password' \
SMTP_FROM='Me <me@gmail.com>' \
npx -y @aiwerk/mcp-server-imap aiwerk-send-email \
  --to "alice@example.com" \
  --subject "Re: invoice" \
  --body "Got it, will pay Monday."

On success, exits 0 and prints JSON: {"ok":true,"messageId":"...","envelope":{...}}

On failure, exits 1 with the error on stderr. Credentials are never printed.

All CLI arguments

Argument

Required

Description

--to

Yes

Recipient(s), comma-separated

--subject

Yes

Subject line

--body

One of body/html

Plain-text body

--html

One of body/html

HTML body (both → multipart)

--in-reply-to

No

Message-ID of original message (thread preservation)

--references

No

Space-separated reference IDs

--cc

No

CC recipients, comma-separated

--bcc

No

BCC recipients, comma-separated

CLI environment variables

Variable

Required

Default

Description

SMTP_HOST

Yes

SMTP server hostname

SMTP_PORT

Yes

587 for STARTTLS, 465 for implicit TLS

SMTP_USER

Yes

SMTP username / email address

SMTP_PASS

Yes

Password or app-specific password

SMTP_FROM

Yes

Sender address (Name <email> or plain email)

SMTP_TLS

No

false

true for implicit TLS (port 465); false for STARTTLS (port 587)


Install

Three ways to get email tools — pick the one that fits.

1. Quick (single email)aiwerk-send-email CLI above: no MCP client needed, one command sends one email.

2. Direct stdio MCP server — all 10 email tools exposed to your AI agent:

npx -y @aiwerk/mcp-server-imap

3. Local bridge with catalog UX — install via the AIWerk catalog for a guided setup:

npx -y @aiwerk/mcp-bridge install imap-email --catalog bridge.aiwerk.ch

Option 1 — Hosted (zero setup)

No local runtime, no env vars on your machine — credentials are AES-256-GCM encrypted server-side via HashiCorp Vault.

  1. Sign up at aiwerkmcp.com.

  2. Install IMAP Email from the catalog and paste your IMAP/SMTP credentials.

  3. Point your MCP client (Claude.ai, Cursor, Hermes, …) at your hosted endpoint:

    https://bridge.aiwerk.ch/u/<your-user-id>/mcp

    with your Bearer token.

All 10 tools appear immediately. Install other AIWerk recipes from the same bridge.

Option 2 — Self-hosted (npx)

Run directly — you manage the credentials:

IMAP_HOST="imap.example.com" \
IMAP_USER="user@example.com" \
IMAP_PASS="app-password" \
SMTP_HOST="smtp.example.com" \
npx @aiwerk/mcp-server-imap

The server starts immediately and responds to tools/list even without credentials — they're only required when a tool is actually called (lazy credentials).

Tools (10)

Tool

Purpose

email_list

List emails from a folder

email_read

Read a single message with full body

email_search

Search by from/to/subject/date/unread

email_folders

List all folders with message counts

email_move

Move messages between folders

email_flag

Set read/star/flag status

email_delete

Move messages to Trash

email_send

Send a new email (requires opt-in)

email_reply

Reply to a message (requires opt-in)

email_attachment

List or download attachments

Configuration

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "email": {
      "command": "npx",
      "args": ["-y", "@aiwerk/mcp-server-imap"],
      "env": {
        "IMAP_HOST": "imap.example.com",
        "IMAP_USER": "you@example.com",
        "IMAP_PASS": "your-app-password",
        "SMTP_HOST": "smtp.example.com"
      }
    }
  }
}

Cursor / Windsurf / VS Code

Same config format in the respective MCP settings.

AIWerk hosted service

If you want zero-setup, install via aiwerkmcp.com — see Option 1 above.

Environment variables

IMAP (required)

Variable

Default

Description

IMAP_HOST

IMAP server hostname

IMAP_USER

Email address or username

IMAP_PASS

Password or app-specific password

IMAP_PORT

993

IMAP port

IMAP_TLS

true

Use TLS

IMAP_TIMEOUT

30000

Connection timeout (ms)

SMTP (optional, for sending)

Variable

Default

Description

SMTP_HOST

${IMAP_HOST}

SMTP server hostname

SMTP_PORT

465

SMTP port

SMTP_USER

${IMAP_USER}

SMTP username

SMTP_PASS

${IMAP_PASS}

SMTP password

SMTP_TLS

true

Use TLS

SMTP_FROM

${IMAP_USER}

Sender address

SMTP_SEND_ENABLED

false

Must be true to enable sending

Debug

Variable

Default

Description

IMAP_DEBUG

false

Verbose IMAP protocol logging

Security

  • Email sending is disabled by default — set SMTP_SEND_ENABLED=true to enable

  • Credentials are loaded lazily (only when a tool is called, not at startup)

  • No credentials are logged

  • Keep credentials in .env or a secret manager — never commit them to git

Supported providers

Tested with: Hostpoint, Gmail (app password), Outlook/Microsoft 365, Yahoo Mail, Fastmail, Dovecot, Postfix.

Works with any standards-compliant IMAP/SMTP server.

Build from source

git clone https://github.com/AIWerk/mcp-server-imap
cd mcp-server-imap
npm install
npm run build
node dist/server.js

Contributing

Issues and PRs are welcome! Please open an issue first for larger changes.

Changelog

See CHANGELOG.md for version history.

About AIWerk MCP

Part of the AIWerk MCP platform — curated, signed MCP recipes served either as npm packages for self-hosting or through our multi-tenant hosted service at aiwerkmcp.com.

Other AIWerk MCP servers:

Browse the full catalog (20+ recipes including GitHub, Linear, Notion, Stripe, …) at aiwerkmcp.com.

License

MIT — AIWerk

Available Tools

10 tools
email_attachmentC

List or fetch a message attachment

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
folderNoINBOX
filenameNo
indexNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations provided, so the description bears full responsibility. It does not disclose whether the tool is read-only, requires specific permissions, or how it handles non-existent attachments. The phrase 'list or fetch' suggests two modes but no clarification on their behavior.

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

Conciseness3/5

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

The description is extremely short (one sentence), which is concise but under-specifying. It does not waste words but lacks necessary detail to be useful.

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 four parameters and no output schema, the description is incomplete. It fails to explain return values, how listing vs. fetching differ, or how to specify which attachment. More information is needed for effective use.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning beyond the schema. Parameters like uid, folder, filename, index are not explained; the description does not clarify how to use them to list or fetch attachments.

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 verb (list/fetch) and resource (message attachment). However, it does not differentiate from siblings like email_list or email_read, which could also involve attachments implicitly.

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 such as email_list or email_read. Missing context on required prerequisites (e.g., user must have an email message open) or when listing vs. fetching is appropriate.

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

email_deleteC

Delete emails by moving them to Trash

ParametersJSON Schema
NameRequiredDescriptionDefault
uidsYes
folderNoINBOX

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It mentions moving to Trash but does not disclose side effects (e.g., recoverability, permission requirements, or behavior when folder is specified).

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

Conciseness3/5

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

Single sentence is concise but under-specified. Could be improved by adding param details while remaining brief.

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 2 parameters and no output schema, the description lacks details on return values, error handling, and the role of the folder parameter.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no explanation for parameters (uids, folder). It does not specify that uids are email identifiers or that folder is the source folder.

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: delete emails by moving them to Trash. This distinguishes from siblings like email_move (which moves to arbitrary folders) and implies it's not permanent deletion.

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 guidelines on when to use this tool vs alternatives (e.g., email_move for moving to a specific folder, or a permanent delete tool if exists). No when-not or prerequisite conditions.

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

email_flagC

Set read/star flags on emails

ParametersJSON Schema
NameRequiredDescriptionDefault
uidsYes
actionYes
folderNoINBOX

TDQS

C2.4/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 indicates a mutation operation but fails to mention authentication needs, side effects, or return values.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it could be more structured to include key details like parameter usage without becoming verbose.

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 three parameters and lack of output schema/annotations, the description is insufficient. It omits critical context needed for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters (uids, action, folder). Users have no guidance on how to specify emails or actions.

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 sets read/star flags on emails, specifying the verb and resource. However, it does not differentiate from sibling tools like email_read, which might cause confusion.

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 like email_read or email_search. There is no mention of prerequisites or exclusions.

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

email_foldersA

List all folders and status counters

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?

Without annotations, the description must convey behavior. It states it's a read-only list operation, which is transparent, but lacks details on authentication, rate limits, or the meaning of 'status counters'.

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 sentence with no fluff, efficiently conveying the tool's purpose.

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 lack of output schema and low complexity, the description is adequate but does not specify the format of the returned list or whether status counters include specific counts (e.g., unread, total).

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?

There are no parameters, so the description does not need to add meaning. The baseline for no parameters is 4.

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 uses a specific verb ('List') and resource ('folders and status counters'), clearly distinguishing it from sibling tools like email_list and email_search.

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 does not explicitly state when to use this tool versus alternatives like email_list or email_search, nor does it mention any prerequisites or context.

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

email_listC

List emails from a folder

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoINBOX
limitNo
unreadOnlyNo

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It fails to disclose essential behaviors: does it return full email bodies or just headers? Sorting? Required authentication? The single sentence is insufficient for transparency.

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

Conciseness2/5

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

The description is a single sentence, which is concise but too terse. It sacrifices necessary detail for brevity. Every sentence should earn its place, but here the one sentence is insufficient.

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

Completeness1/5

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

Given 3 parameters, no output schema, and no annotations, the description is severely incomplete. It doesn't explain return format, pagination, or filtering behavior. The agent cannot reliably use this tool based solely on the description.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the description adds no meaning beyond the schema fields. It does not explain what 'folder' refers to, how 'limit' affects results, or what 'unreadOnly' does. The description is completely silent on parameters.

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 emails from a folder' clearly states the verb (list), resource (emails), and scope (from a folder). This distinguishes it from sibling tools like email_read (specific email) and email_search (search based on criteria).

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. For example, it doesn't clarify how folder selection works or when to use email_search instead of listing all emails. The agent gets no context for decision-making.

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

email_moveB

Move email UIDs from one folder to another

ParametersJSON Schema
NameRequiredDescriptionDefault
uidsYes
fromNoINBOX
toYes

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 carries full burden. It states 'move' which implies mutating state, but does not disclose consequences (e.g., what happens if destination folder doesn't exist, whether the operation is atomic, or if there are size limits). The description is too minimal for a mutating 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 sentence with no fluff. It directly conveys the core function. It is appropriately concise for a straightforward operation.

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 output schema and annotations, the description is too sparse. It does not inform about success indicators, error conditions, or any constraints (e.g., moving within same mailbox?). For a 3-param tool, more detail is needed to ensure correct 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 0%. The description adds meaning by explaining 'uids' as email identifiers and 'from'/'to' as folders. However, it does not mention the default value for 'from' (INBOX) or that 'to' is required. The parameter roles are partially clarified.

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 (move), resource (email UIDs), and the concept of between folders. It distinguishes from siblings like email_delete and email_list. However, it does not mention the default 'from' folder (INBOX), which is useful contextual info.

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 you need to relocate emails, but provides no explicit guidance on when to use vs alternatives (e.g., no copy tool is present). It lacks when-not scenarios or prerequisites like required permissions.

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

email_readC

Read one email including body and attachments metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
folderNoINBOX
formatNotext

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It does not indicate if reading marks the email as seen, any size limits, error handling for invalid uid, or permission requirements.

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 concise (one sentence) and front-loaded with the action. However, it could be slightly restructured to include parameter hints without losing brevity.

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?

Without an output schema, the description should explain the return structure beyond 'body and attachments metadata'. It also lacks edge case handling (e.g., email not found).

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

Parameters1/5

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

Schema description coverage is 0%, yet the description provides no explanation of the parameters (uid, folder, format). The agent must infer semantics solely from parameter names and types, which is insufficient.

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 'Read' and resource 'one email', specifying that it includes body and attachments metadata. However, it does not explicitly differentiate from sibling tools like email_list or email_search, which may return summaries.

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 usage guidance is provided. There is no mention of when to use this tool over alternatives, prerequisites (e.g., obtaining a uid from email_list), or when not to use it.

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

email_replyC

Reply to an existing email via SMTP

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
folderNoINBOX
bodyYes
htmlNo
ccNo
replyAllNo

TDQS

C2.7/5.0
Behavior2/5

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

The description lacks any behavioral details beyond the protocol. It does not disclose whether attachments are preserved, what happens to the original email, authentication requirements, or rate limits. No annotations exist to compensate.

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

Conciseness3/5

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

The description is a single sentence, making it concise. However, it sacrifices necessary detail. Every word earns its place but the overall value is limited by brevity.

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 has 6 parameters, no parameter descriptions, no output schema, and no annotations, the description is far from complete. It fails to cover essential context for correct invocation.

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

Parameters1/5

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

With 0% schema description coverage, the description must provide parameter meaning but does not. It adds no explanation for uid, folder, body, html, cc, or replyAll. The agent must guess parameter purposes from names alone.

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 ('Reply'), the target ('existing email'), and the method ('via SMTP'). It distinguishes from sibling tools like email_send (send new) and email_read.

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 prerequisites, when to use 'replyAll', or how this differs from composing a new email with email_send.

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

email_sendC

Send an email via SMTP

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
subjectYes
bodyYes
htmlNo
ccNo
bccNo
replyToNo
inReplyToNo

TDQS

C2.4/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 only mentions 'via SMTP', offering minimal technical context. It fails to state whether email validation occurs, whether attachments are supported (and thus should be handled via email_attachment), or any rate limits 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.

Conciseness3/5

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

The description is a single concise sentence, but it sacrifices essential information. It is not overly verbose, but the brevity results in unclear completeness. A better structure would include key behavioral notes up front.

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

Completeness1/5

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

Given 8 parameters, no output schema, and no annotations, the description is critically incomplete. It provides no information on return values (e.g., sent email ID or error messages), no post-condition details, and no guidance on parameter combinations. Agents cannot reliably invoke this tool.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no parameter-level details. It does not explain the meaning or constraints of any of the 8 parameters (e.g., 'to' expects email addresses, 'html' indicates HTML formatting), leaving agents without essential usage 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 uses the verb 'send' with resource 'email' and specifies the protocol 'via SMTP', which distinguishes it from siblings like email_reply (replying to existing threads) or email_read. However, it could be more specific about the tool's scope, such as indicating it sends a new email from scratch.

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 email_reply or email_attachment. An agent cannot tell if this tool is appropriate for sending a reply or attaching files without additional context.

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 updatesv1.2.0
    • First observedemail_attachment
    • First observedemail_delete
    • First observedemail_flag
    • First observedemail_folders
    • First observedemail_list
    • First observedemail_move
    • First observedemail_read
    • First observedemail_reply
    • First observedemail_search
    • First observedemail_send

TDQS

B3.1/5.0
Disambiguation5/5

Each tool has a distinct purpose: attachment handling, deletion, flagging, folder listing, inbox listing, moving, reading, replying, searching, and sending. No overlapping functionality.

Naming Consistency4/5

All tools share the 'email_' prefix, and most follow a verb_noun pattern (e.g., email_delete, email_send). 'email_attachment' and 'email_folders' are noun-based but clear given their descriptions.

Tool Count5/5

10 tools cover essential email operations (list, read, send, reply, delete, move, flag, search, folders, attachments) without being excessive or sparse.

Completeness4/5

Core CRUD and search are present. Minor gaps like folder management (create/rename) or draft handling exist but are not critical for basic IMAP usage.

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
    A
    maintenance
    A unified MCP server for email access across Gmail, Outlook, iCloud, and generic IMAP providers, enabling search, send, organize, and batch operations.
    397
    19
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for managing email via IMAP/SMTP, supporting multiple accounts and tools for reading, sending, searching, and organizing emails.
    35
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that enables email management (send, read, search, delete, etc.) via IMAP/SMTP, compatible with Gmail, Outlook, Yahoo, iCloud, and other standard mail servers.
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for reading and sending emails via IMAP and SMTP, designed for Zimbra and any standard mail host.
    24
    1
    ISC

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/AIWerk/mcp-server-imap'

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