Skip to main content
Glama
kubegrind

AOL Mail MCP Server

by kubegrind

AOL Mail MCP Server

A production-ready Model Context Protocol server for AOL Mail.
Works as a local stdio MCP server compatible with VS Code GitHub Copilot Agent Mode and Claude Desktop.
Uses uv for dependency and environment management.


Prerequisites

  • uv package manager (Python 3.11+ included automatically)

  • An AOL Mail account with IMAP access enabled

  • An AOL app password (not your main AOL password)

Install uv

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Verify: uv --version


Related MCP server: gmail-mcp-server

Generate an AOL App Password

  1. Sign in at myaccount.aol.com.

  2. Go to SecurityManage app passwords.

  3. Enter a label (e.g. MCP Server) and click Generate password.

  4. Copy the generated password — this is your AOL_APP_PASSWORD.

AOL requires an app password for all third-party IMAP/SMTP clients.
Standard account passwords will not work.


Usage

There are three ways to run the server depending on your situation.

Option A — uvx (recommended, no install required)

Runs directly from PyPI without cloning or installing anything permanently.

uvx aol-mcp

Pass credentials via environment variables (see VS Code / Claude Desktop config below).

Option B — Install as a persistent tool

Install once, run anywhere by name.

# From PyPI
uv tool install aol-mcp

# From GitHub (before PyPI publish)
uv tool install git+https://github.com/kubegrind/aol-mcp-server

# From a local clone
uv tool install .

Then run:

AOL_EMAIL=you@aol.com AOL_APP_PASSWORD=yourpassword aol-mcp

Option C — Local clone (for development / contributors)

git clone https://github.com/kubegrind/aol-mcp-server
cd aol-mcp-server
uv sync
cp .env.example .env
# Edit .env with your credentials
uv run server.py

VS Code (GitHub Copilot Agent Mode) Setup

Create or edit .vscode/mcp.json in your workspace:

Recommended — uvx (no install needed):

{
  "servers": {
    "aol-mail": {
      "type": "stdio",
      "command": "uvx",
      "args": ["aol-mcp"],
      "env": {
        "AOL_EMAIL": "your_email@aol.com",
        "AOL_APP_PASSWORD": "your_app_password"
      }
    }
  }
}

Alternative — local clone:

{
  "servers": {
    "aol-mail": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/aol-mcp-server", "server.py"],
      "env": {
        "AOL_EMAIL": "your_email@aol.com",
        "AOL_APP_PASSWORD": "your_app_password"
      }
    }
  }
}

Open Copilot Chat, switch to Agent Mode — AOL Mail tools appear automatically.


Claude Desktop Setup

Edit your Claude Desktop config:

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

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

Recommended — uvx:

{
  "mcpServers": {
    "aol-mail": {
      "command": "uvx",
      "args": ["aol-mcp"],
      "env": {
        "AOL_EMAIL": "your_email@aol.com",
        "AOL_APP_PASSWORD": "your_app_password"
      }
    }
  }
}

Alternative — local clone:

{
  "mcpServers": {
    "aol-mail": {
      "command": "uv",
      "args": ["run", "--directory", "/full/path/to/aol-mcp-server", "server.py"],
      "env": {
        "AOL_EMAIL": "your_email@aol.com",
        "AOL_APP_PASSWORD": "your_app_password"
      }
    }
  }
}

Restart Claude Desktop after saving — AOL Mail tools appear in the tools panel.


Available Tools

Tool

Description

read_inbox

List recent emails from any folder (default: INBOX)

read_folder

List recent emails from a named folder (e.g. LinkedIn, GitHub)

read_email

Fetch full body and headers by IMAP message ID, with optional folder

search_emails

Search by keyword in any folder across FROM, SUBJECT, BODY, or ALL

send_email

Compose and send a new email

reply_email

Reply to an existing email by message ID, with optional folder

delete_email

Move an email to Trash by message ID, with optional folder

delete_all_in_folder

Bulk delete — move every email in a folder to Trash

move_email

Move an email to any named folder, with optional source folder

move_all_emails

Bulk move — move all emails from one folder to another

list_folders

List all IMAP folders in the mailbox

mark_read

Mark one or multiple emails as read, with optional folder

get_attachments

List all attachments (name, MIME type, size) in an email

Example Prompts

Show me the last 5 emails in my inbox.
Show me the last 10 emails in my LinkedIn folder.
Read email ID 42 from my GitHub folder.
Search for emails from boss@example.com in my Sent folder.
Send an email to alice@example.com with subject "Hello" and body "Hi Alice!".
Reply to email 17 with "Thanks, got it!".
Delete email 99 from my LinkedIn folder.
Delete all emails in my Spam folder.
Move email 55 to folder Work.
Move all emails from LinkedIn to Archive.
List all my mail folders.
Mark emails 10, 11, 12 as read in my GitHub folder.
List attachments in email 33.

Connection Details

Protocol

Host

Port

Security

IMAP

imap.aol.com

993

SSL/TLS

SMTP

smtp.aol.com

465

SSL/TLS


Troubleshooting

"AUTHENTICATE failed" / login rejected

  • Make sure AOL_APP_PASSWORD is the app password from myaccount.aol.com, not your AOL login password.

  • Re-generate the app password and update your config.

  • Confirm IMAP is enabled in your AOL account security settings.

"Connection refused" / timeout on ports 993 or 465

  • Your firewall or network may be blocking outbound SSL ports.

  • Test connectivity: telnet imap.aol.com 993

Emails not found by ID

  • IMAP message IDs are session-scoped integers. Run read_inbox first to retrieve current IDs.

uvx / uv not found in VS Code or Claude Desktop

  • Ensure uv is on your system PATH (the installer normally handles this).

  • Find the full path with which uv (macOS/Linux) or where uv (Windows) and use it as command.

  • macOS example: "command": "/Users/you/.local/bin/uvx"

uv tool install fails

  • Ensure Python 3.11+ is available: uv python install 3.11

  • Try uv tool install --reinstall aol-mcp-server to force a clean install.

SSL certificate errors

  • Upgrade your CA bundle: uv run --with certifi python -m certifi

  • On macOS, run the Install Certificates script in your Python.app folder.


Security Notes

  • Credentials are passed via environment variables — never stored in the package.

  • .env is in .gitignore and must never be committed.

  • Passwords are never logged or included in error messages.

  • All IMAP and SMTP connections are closed in finally blocks — no connection leaks.

Available Tools

13 tools
delete_all_in_folderB

Delete all emails in a folder by moving them to Trash.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameYesFolder to clear (e.g. "Spam", "LinkedIn", "Bulk Mail"). Use list_folders to see available names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 mentions moving to Trash (not permanent delete), but omits potential side effects like whether the folder is cleared recursively, permission requirements, or rate limits. This is minimal for a powerful delete operation.

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 (11 words) that conveys the core action. It is front-loaded and avoids filler. However, it could be slightly more informative 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?

Despite an output schema, the description lacks crucial context for a destructive tool: no mention of irreversibility (even Trash can be emptied), impact on subfolders, or relationship to sibling tools. Annotations are absent, so the description should compensate but does not.

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% and includes examples and a suggestion to use list_folders. The description adds no additional semantics beyond what the schema already provides, so the 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 clearly states the verb ('Delete all emails') and the resource ('in a folder'), with the specific action of moving to Trash, which distinguishes it from sibling tools like delete_email (single) and move_all_emails (move to arbitrary folder).

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?

While the purpose is clear, no guidance is given on when to use this tool versus alternatives like move_all_emails or delete_email. The usage context is implied but not explicitly stated.

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

delete_emailA

Move an email to the Trash folder by its IMAP message ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesNumeric IMAP message ID of the email to delete.
folderNoIMAP folder containing the email (default "INBOX").INBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

The description only states the action (move to Trash) without disclosing behavioral traits such as whether the operation is reversible, requires permissions, or affects attachments. Since no annotations are provided, the description carries full burden but provides minimal disclosure.

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?

A single sentence with 12 words, front-loaded with the action. Every word is necessary and clear. No redundancy.

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 tool with two parameters and an output schema, the description is adequate but lacks behavioral context (e.g., irreversibility). It does not leverage the output schema to explain return values.

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?

Input schema has 100% coverage, so baseline is 3. The description adds no new information beyond schema: it restates 'by its IMAP message ID' and does not clarify parameter formats or constraints.

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+resource pair ('Move an email to the Trash folder') and specifies the method (IMAP message ID). It clearly distinguishes from sibling tools like 'delete_all_in_folder' which handles bulk deletion.

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 when to use (when you have an IMAP message ID) but does not provide explicit guidance on when not to use or mention alternatives like 'delete_all_in_folder' or 'move_email'.

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

get_attachmentsA

List all attachments in an email by its IMAP message ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesNumeric IMAP message ID of the email to inspect.
folderNoIMAP folder containing the email (default "INBOX").INBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/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 says 'list all attachments', implying a read operation but does not mention potential errors, authentication needs, 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.

Conciseness5/5

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

A single 12-word sentence that is front-loaded and concise, containing no unnecessary words.

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

Completeness4/5

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

The tool has an output schema (not shown but present), so return values need not be described. The description adequately covers the tool's purpose for a simple two-parameter tool, though it could mention that attachments are returned as a list.

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% coverage with clear descriptions for both parameters (message_id and folder). The tool description adds no additional semantics 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?

The description uses specific verb 'List' and resource 'attachments in an email' with the identifier 'IMAP message ID', clearly distinguishing from siblings like read_email or search_emails.

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 states what it does but gives no guidance on when to use versus alternatives like read_email or search_emails, leaving the agent to infer based on sibling names.

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

list_foldersA

List all IMAP folders available in the AOL mailbox.

Returns: Bullet list of every folder name in the account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/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. It discloses that the tool returns a bullet list of folder names, which is a safe read operation. The simplicity of the tool makes this sufficient, though it could mention authentication or folder hierarchy.

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 two short sentences, front-loading the purpose and then stating the return format. No unnecessary words, making it highly efficient.

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

Completeness4/5

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

Given there are no parameters and an output schema exists (though unseen), the description is largely complete for a simple listing tool. It could mention prerequisites or limitations, but for its scope, it suffices.

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 tool has no parameters, so baseline is 4 per scoring rules. The description adds meaningful context by specifying 'IMAP folders' and 'AOL mailbox', which goes beyond the empty schema.

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 'List all IMAP folders', which is a specific verb+resource. It distinguishes itself from sibling tools that focus on email operations like delete, move, read, send, etc.

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 does not provide any guidance on when to use this tool over alternatives or any prerequisites. It simply states what the tool does without contextual usage advice.

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

mark_readB

Mark one or more emails as read.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYesSingle IMAP message ID or comma-separated list (e.g. "42,43,44").
folderNoIMAP folder containing the emails (default "INBOX").INBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 must carry the full burden. It only states the core function without disclosing side effects, idempotency, permissions, or whether the action is reversible. Very minimal behavioral disclosure.

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 7-word sentence, making it very concise. However, it is almost too terse; a bit more context (e.g., 'sets the seen flag') would not hurt efficiency.

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 low complexity of marking emails as read and complete schema coverage, the description is adequate but minimal. It could mention that the tool is idempotent or that it works on the specified folder, but is not severely lacking.

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%, and the description adds no extra meaning beyond what the schema provides. Baseline 3 is appropriate; the description does not elaborate on the comma-separated format or default 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?

The description clearly states the action ('mark') and resource ('one or more emails') with the result ('as read'). It distinguishes from sibling tools like delete_email or move_email by specifying a read-only state change.

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 when to use (when you need to mark emails as read) but provides no explicit guidance on when not to use or alternatives. Siblings like read_email likely fetch content, but no differentiation is given.

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

move_all_emailsB

Move all emails from one folder to another.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_folderYesFolder to move emails from (e.g. "LinkedIn", "Spam").
destination_folderYesFolder to move emails into (e.g. "INBOX", "Archive"). Use list_folders to see available names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 for disclosing behavioral traits. It states 'Move all emails' but does not disclose potential side effects (e.g., mass modification, performance impact, or irreversibility). The output schema exists but is not leveraged to explain return behavior.

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 short sentence that is concise and front-loaded. However, it is too brief to cover all necessary aspects, so it does not earn a top score in this dimension.

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 that there are no annotations and the tool performs a bulk operation, the description is complete enough for basic understanding but lacks details on constraints (e.g., number of emails processed, reversibility). The output schema partially compensates for missing return information.

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 schema already describes both parameters with examples and hints (e.g., 'use list_folders'). The description adds no additional meaning beyond the schema, so 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: 'Move all emails from one folder to another.' It uses a specific verb 'move' targeting the resource 'all emails' with clear source and destination scope. This distinguishes it from the sibling tool 'move_email' which operates on 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 this tool versus alternatives like 'move_email' for individual moves. There is no mention of prerequisites, limitations, or when not to use it. The description lacks usage context.

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

move_emailB

Move an email to any named IMAP folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesNumeric IMAP message ID of the email to move.
folderYesDestination folder name (use list_folders to see available names).
source_folderNoFolder currently containing the email (default "INBOX").INBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 full burden. It only states 'Move' without explaining permissions, reversibility, or behavior on errors (e.g., missing source folder). Minimal behavioral insight is given.

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 that is clear and to the point, with no wasted words. It effectively communicates the tool's action.

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 having an output schema (from context signals), the description is overly brief for a mutation tool with no annotations. It lacks context on side effects, prerequisites, or typical use cases, making it incomplete.

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?

All three parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The tool description adds no additional parameter context 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 uses a specific verb ('Move') and resource ('email') with a clear destination ('any named IMAP folder'), distinguishing it from sibling tools like 'move_all_emails' that move multiple emails.

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 whether prerequisites like knowing the destination folder name via 'list_folders' are needed. The parameter description for 'folder' hints at this, but the main description lacks explicit context.

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

read_emailB

Get the full content of a single email by its IMAP message ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesNumeric IMAP message ID returned by read_inbox or search_emails.
folderNoIMAP folder containing the email (default "INBOX").INBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It implies a read-only operation but does not mention any behavioral traits such as authentication requirements, rate limits, or the nature of the returned data. The existence of an output schema partially mitigates this, but the description should hint at the response structure.

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 with no unnecessary words. Front-loaded with the core 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?

For a simple read tool with output schema, the description is adequate but lacks behavioral context. It does not explain prerequisites (e.g., having a valid message ID) or any constraints.

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%, with both parameters well-documented. The description adds minimal value beyond the schema (e.g., stating the source of message_id). Baseline score 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 clearly states 'Get the full content of a single email by its IMAP message ID,' identifying the action, resource, and method. It distinguishes from sibling tools like read_inbox and get_attachments.

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. With 13 sibling tools, the description should mention when read_email is appropriate (e.g., after obtaining a message ID) and when other tools like read_folder or search_emails might be better.

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

read_folderA

List recent emails from a named IMAP folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameYesFolder to read (e.g. "LinkedIn", "GitHub", "Spam"). Use list_folders to see all available names.
countNoNumber of recent emails to fetch (1–100, default 20).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/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 for behavioral disclosure. However, it only states 'List recent emails' without revealing side effects (e.g., whether it marks as read, fetches full content or headers, or is destructive). This leaves significant gaps for the 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 a single, concise sentence with no unnecessary words or redundancy. It efficiently communicates the core functionality.

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 an output schema exists and the tool is simple, the description is adequate but incomplete. It does not mention ordering or recency criteria, nor how it differs from similar tools like 'read_email' or 'read_inbox' (beyond the folder parameter).

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?

With 100% schema description coverage, the schema already explains both parameters. The description adds no additional meaning beyond restating the action. Baseline score 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 clearly states the action ('List recent emails') and the specific resource ('from a named IMAP folder'). It distinguishes from siblings like 'list_folders' (which lists folder names) and 'read_inbox' (which reads the inbox specifically), making the purpose unambiguous.

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 does not explicitly state when to use vs. alternatives, but the parameter schema hints at a prerequisite: 'Use list_folders to see all available names.' This provides context for usage, though it lacks exclusions or 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.

read_inboxB

List recent emails from any IMAP folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of recent emails to fetch (1–100, default 20).
folderNoIMAP folder to read (default "INBOX"). Use list_folders to see available names.INBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries full burden. It only states basic function without disclosing whether emails are marked as read, authentication requirements, or any side effects. The output schema exists but is not referenced.

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?

Single sentence, no fluff, front-loaded. However, it is overly brief and could include more detail without sacrificing 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 complexity of sibling tools and presence of output schema, the description is too minimal. It lacks explanation of 'recent', whether the operation is read-only, and how results relate to other email tools.

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?

Input schema coverage is 100% with default values and descriptions for both parameters. The tool description adds no extra meaning beyond the schema, so 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?

Description clearly states the verb 'List', resource 'recent emails', and scope 'any IMAP folder'. It effectively distinguishes from sibling tools like 'read_email' (single email) and 'search_emails' (search) by specifying batch listing across folders.

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 explicit guidance on when to use this tool versus alternatives. With 12 sibling tools including 'read_email', 'search_emails', and 'read_folder', the description fails to provide context for selecting this tool over others.

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

reply_emailB

Reply to an existing email by its IMAP message ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesNumeric IMAP message ID of the email to reply to.
bodyYesPlain-text reply body.
folderNoIMAP folder containing the original email (default "INBOX").INBOX
ccNoCC address(es), comma-separated (optional).
bccNoBCC address(es), comma-separated (hidden from all recipients, optional).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 should disclose behavioral traits. It only states the basic operation without mentioning whether the reply includes quoting, threading, attachments, or any side effects (e.g., sent folder).

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 very short but not overly concise; it contains only one sentence without front-loading critical info like required params or success conditions. Could be restructured to add value.

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 no annotations and an output schema exists, the description is incomplete. It lacks details about reply behavior (e.g., threading, auto-include subject), error handling, or confirmation of sending. Users would need to infer from the schema.

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 parameters are already well-documented in the schema. The description adds only 'by its IMAP message ID', which is already present in the schema's description for message_id. 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 ('Reply') and the resource ('existing email') using the IMAP message ID, which distinguishes it from siblings like send_email (new email) and delete_email.

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?

No explicit guidance on when to use this tool versus alternatives like send_email or forward, but the purpose is implied by the 'Reply' verb. No exclusions or context are provided.

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

search_emailsB

Search any IMAP folder for emails matching a keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search term.
search_inNoField to search — ALL, FROM, SUBJECT, or BODY (default ALL).ALL
countNoMaximum results to return (1–100, default 20).
folderNoIMAP folder to search (default "INBOX"). Use list_folders to see names.INBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries full burden. It does not disclose whether the operation is read-only, what fields are returned, or any side effects. The behavioral context is insufficient for an AI agent to assess risks.

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 one short, front-loaded sentence with no unnecessary words. Every word serves a 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 having an output schema and full parameter coverage, the description lacks important details such as search query syntax, case sensitivity, or whether attachments are included. It feels incomplete for a tool with 4 parameters.

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 baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions, which are already clear.

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 ('Search'), the resource ('any IMAP folder'), and the criterion ('matching a keyword'). It effectively distinguishes from sibling tools like read_email and list_folders.

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 searching emails but provides no explicit guidance on when to use this tool vs alternatives, nor any exclusions or prerequisites.

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

send_emailB

Compose and send a new email via AOL SMTP.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient address(es), comma-separated for multiple.
subjectYesEmail subject line.
bodyYesPlain-text email body.
ccNoCC address(es), comma-separated (optional).
bccNoBCC address(es), comma-separated (hidden from all recipients, optional).
attachmentsNoLocal file path(s) to attach, comma-separated (optional). Example: "C:/Users/you/report.pdf,C:/Users/you/photo.jpg"

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the full burden. It only states 'compose and send', but omits critical behavioral details such as whether sending is immediate, what error scenarios exist, or any rate limits. 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.

Conciseness4/5

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

The description is a single concise sentence with no fluff. However, it may be too brief, missing opportunities to add critical context without becoming verbose.

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 complexity of an email-sending operation (6 parameters, output schema present), the description is minimal. It does not explain authentication, sending behavior, or return value meaning. The presence of an output schema mitigates some need for return value explanation, but the lack of behavioral context is a 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 documents all parameters fully. The description adds no additional meaning beyond what the schema provides, so 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?

Clearly states the verb 'compose and send' and the resource 'a new email via AOL SMTP'. It naturally distinguishes from siblings like reply_email and move_email by specifying 'new email'.

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?

No explicit guidance on when to use this tool vs. siblings or prerequisites. The description relies on the tool name and sibling context, but fails to mention required authentication, SMTP configuration, or common alternatives.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct email operation (send, read, search, move, delete, mark read, list folders, get attachments, reply) with no functional overlap. An agent can clearly differentiate between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun or verb_preposition_noun pattern (e.g., delete_email, list_folders, move_all_emails, search_emails). No mixing of styles, making the set highly predictable.

Tool Count5/5

Thirteen tools is well-scoped for an email client, covering all major operations without being bloated. Each tool serves a clear and necessary purpose.

Completeness4/5

The tool set covers essential email CRUD (send, read, move, delete, mark read, search), but lacks folder creation/renaming/deletion and permanent deletion (only moves to Trash). These minor gaps do not severely hinder basic workflows.

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
    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
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude Desktop to interact with Postale.io email accounts, supporting multiple mailboxes with features like reading, searching, replying, drafts, and batch operations.
  • A
    license
    A
    quality
    A
    maintenance
    Enables Claude to control the macOS Mail app for reading, searching, drafting, sending, and managing emails directly from Claude Desktop.
    12
    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/kubegrind/aol-mcp-server'

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