AOL Mail MCP Server
Provides tools to manage AOL Mail, including reading inbox, sending emails, searching, moving, deleting, and managing folders via IMAP/SMTP.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AOL Mail MCP ServerShow me the last 5 emails in my inbox."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Sign in at myaccount.aol.com.
Go to Security → Manage app passwords.
Enter a label (e.g.
MCP Server) and click Generate password.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-mcpPass 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-mcpOption 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.pyVS 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.jsonWindows:
%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 |
| List recent emails from any folder (default: INBOX) |
| List recent emails from a named folder (e.g. LinkedIn, GitHub) |
| Fetch full body and headers by IMAP message ID, with optional folder |
| Search by keyword in any folder across FROM, SUBJECT, BODY, or ALL |
| Compose and send a new email |
| Reply to an existing email by message ID, with optional folder |
| Move an email to Trash by message ID, with optional folder |
| Bulk delete — move every email in a folder to Trash |
| Move an email to any named folder, with optional source folder |
| Bulk move — move all emails from one folder to another |
| List all IMAP folders in the mailbox |
| Mark one or multiple emails as read, with optional folder |
| 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_PASSWORDis 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_inboxfirst to retrieve current IDs.
uvx / uv not found in VS Code or Claude Desktop
Ensure
uvis on your systemPATH(the installer normally handles this).Find the full path with
which uv(macOS/Linux) orwhere uv(Windows) and use it ascommand.macOS example:
"command": "/Users/you/.local/bin/uvx"
uv tool install fails
Ensure Python 3.11+ is available:
uv python install 3.11Try
uv tool install --reinstall aol-mcp-serverto force a clean install.
SSL certificate errors
Upgrade your CA bundle:
uv run --with certifi python -m certifiOn macOS, run the Install Certificates script in your Python.app folder.
Security Notes
Credentials are passed via environment variables — never stored in the package.
.envis in.gitignoreand must never be committed.Passwords are never logged or included in error messages.
All IMAP and SMTP connections are closed in
finallyblocks — no connection leaks.
Available Tools
13 toolsdelete_all_in_folderB
Delete all emails in a folder by moving them to Trash.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_name | Yes | Folder to clear (e.g. "Spam", "LinkedIn", "Bulk Mail"). Use list_folders to see available names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | Numeric IMAP message ID of the email to delete. | |
| folder | No | IMAP folder containing the email (default "INBOX"). | INBOX |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | Numeric IMAP message ID of the email to inspect. | |
| folder | No | IMAP folder containing the email (default "INBOX"). | INBOX |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_ids | Yes | Single IMAP message ID or comma-separated list (e.g. "42,43,44"). | |
| folder | No | IMAP folder containing the emails (default "INBOX"). | INBOX |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| source_folder | Yes | Folder to move emails from (e.g. "LinkedIn", "Spam"). | |
| destination_folder | Yes | Folder to move emails into (e.g. "INBOX", "Archive"). Use list_folders to see available names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | Numeric IMAP message ID of the email to move. | |
| folder | Yes | Destination folder name (use list_folders to see available names). | |
| source_folder | No | Folder currently containing the email (default "INBOX"). | INBOX |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | Numeric IMAP message ID returned by read_inbox or search_emails. | |
| folder | No | IMAP folder containing the email (default "INBOX"). | INBOX |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_name | Yes | Folder to read (e.g. "LinkedIn", "GitHub", "Spam"). Use list_folders to see all available names. | |
| count | No | Number of recent emails to fetch (1–100, default 20). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of recent emails to fetch (1–100, default 20). | |
| folder | No | IMAP folder to read (default "INBOX"). Use list_folders to see available names. | INBOX |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | Numeric IMAP message ID of the email to reply to. | |
| body | Yes | Plain-text reply body. | |
| folder | No | IMAP folder containing the original email (default "INBOX"). | INBOX |
| cc | No | CC address(es), comma-separated (optional). | |
| bcc | No | BCC address(es), comma-separated (hidden from all recipients, optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search term. | |
| search_in | No | Field to search — ALL, FROM, SUBJECT, or BODY (default ALL). | ALL |
| count | No | Maximum results to return (1–100, default 20). | |
| folder | No | IMAP folder to search (default "INBOX"). Use list_folders to see names. | INBOX |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient address(es), comma-separated for multiple. | |
| subject | Yes | Email subject line. | |
| body | Yes | Plain-text email body. | |
| cc | No | CC address(es), comma-separated (optional). | |
| bcc | No | BCC address(es), comma-separated (hidden from all recipients, optional). | |
| attachments | No | Local file path(s) to attach, comma-separated (optional). Example: "C:/Users/you/report.pdf,C:/Users/you/photo.jpg" |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
Thirteen tools is well-scoped for an email client, covering all major operations without being bloated. Each tool serves a clear and necessary purpose.
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
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
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…
Task-scoped email inboxes for AI agents: read mail, extract verification codes, and reply.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables seamless email management through natural language conversations with Claude. Supports searching, reading, and sending emails securely with Gmail and other email providers.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.8MIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to interact with Postale.io email accounts, supporting multiple mailboxes with features like reading, searching, replying, drafts, and batch operations.
- AlicenseAqualityAmaintenanceEnables Claude to control the macOS Mail app for reading, searching, drafting, sending, and managing emails directly from Claude Desktop.12MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kubegrind/aol-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server