Enterprise Mail MCP Server
Enables the MCP server to connect to Gmail accounts via IMAP/SMTP, allowing AI agents to read, search, organize, send, and reply to emails, manage attachments with antivirus scanning, and perform inbox triage.
Click on "Deploy 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., "@Enterprise Mail MCP Servertriage my inbox and summarize urgent emails"
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.
π¬ Enterprise Mail MCP Server
An enterprise-ready, autonomous Model Context Protocol (MCP) server that connects Large Language Model (LLM) agentsβincluding Antigravity IDE, Claude Desktop, and other MCP-compliant clientsβto email accounts via standard IMAP and SMTP protocols.
Equipped with autonomous mailbox triage, thread-aware smart drafting, RFC 5545 calendar event generation, marketing unsubscribe link detection, and a zero-trust multi-layer antivirus engine that scans all attachments before disk persistence.
π Key Capabilities
π‘οΈ Zero-Trust Security & Antivirus Protection
Mandatory Antivirus Scanning: Every file attachment requested for download is first isolated in a secure quarantine staging area (
.quarantine/) and scanned by Microsoft Defender Antivirus (MpCmdRun.exe) and heuristic engines.Malware & Double Extension Defense: Detects executable tricks (
.pdf.exe,.docx.scr), script blocks, and standard malware signatures.Instant Destruction on Threat: Any flagged attachment is immediately expunged from storage and blocked with a
VirusThreatDetectedError. Safe files are verified with SHA-256 hashes.
π¬ Complete Mailbox Operations & Organization
Read & Search: List recent emails (
check_inbox), search with multi-criteria filters (search_emails), and inspect complete MIME details (read_email).Folder & Label Management: Enumerate mailboxes (
list_folders), move messages between folders (move_email), star/flag/read-unread (flag_email), and safely trash or delete (delete_email).Attachment Downloader: Verified, secure attachment extraction (
download_attachment).
βοΈ Intelligent Dispatch & Smart Drafts
Direct Send & Reply: RFC 2822-compliant message delivery with HTML, CC, BCC, and thread-aware headers (
In-Reply-To,References).Non-Destructive AI Drafts (
create_draft): Generates proposed emails directly inside the server'sDraftsfolder, allowing human-in-the-loop review before sending.
π§ Semantic Email Intelligence & Triage
Heuristic Analysis (
analyze_email): Computes urgency scores (0β100), extracts action items, classifies intent (BILLING_INVOICE,SECURITY_ALERT,SUPPORT, etc.), detects financial entities, and checks phishing indicators.Autonomous Inbox Triage (
triage_inbox): Scans the latest messages and compiles an executive triage report highlighting critical tasks, pending payments, security events, and newsletters.
π Calendar & Productivity Tools
Meeting Extractor (
extract_calendar_event): Parses dates, times, attendees, and virtual meeting links (Google Meet, Zoom, Microsoft Teams) to generate RFC 5545 standard.icsiCalendar payloads.Unsubscribe Assistant (
find_unsubscribe_links): Extracts RFC 2369List-Unsubscribeheaders (one-click URLs and mailto) along with in-body unsubscribe links.Real-Time Notification (
watch_new_emails): Leverages IMAP IDLE for instant arrival notifications without polling overhead.
Related MCP server: mcp-imap
ποΈ Architecture Overview
ββββββββββββββββββββββββββββββ
β LLM Agent / MCP Client β
β (Antigravity / Claude / AI)β
βββββββββββββββ¬βββββββββββββββ
β JSON-RPC (stdio)
βΌ
ββββββββββββββββββββββββββββββ
β Mail MCP Core Server β
ββββββββ¬βββββββββββββββ¬βββββββ
β β
βββββββββββββββββββββββ΄ββββ ββββββ΄βββββββββββββββββββββ
β IMAP / SMTP Services β β Security & Intelligence β
β (ImapFlow & Nodemailer) β β (Analyzer & Antivirus) β
βββββββββββββββ¬ββββββββββββ ββββββ¬βββββββββββββββββββββ
β β
ββββββββββββββββββ΄ββββββββββββββββ βββΊ Microsoft Defender (MpCmdRun)
β Mail Providers (TLS / SSL) β βββΊ Double-Extension Defense
β β’ Gmail β βββΊ EICAR & Heuristic Checks
β β’ Microsoft Outlook / 365 β βββΊ Quarantine Staging Area
β β’ Custom IMAP/SMTP Servers β βββΊ SHA-256 Hash Verification
ββββββββββββββββββββββββββββββββββπ οΈ Tool Catalog Reference
Tool Name | Scope | Description |
| Reading | Retrieves recent message headers with pagination and unread filtering. |
| Reading | Searches emails by query, sender, recipient, subject, body, or dates. |
| Reading | Fetches and parses complete MIME email details (HTML, text, headers, attachments). |
| Organization | Lists all account mailboxes, special-use flags, and paths. |
| Organization | Moves an email by UID to a destination folder or label. |
| Organization | Adds, removes, or sets IMAP flags ( |
| Organization | Moves message to Trash or permanently purges it. |
| Attachments | Scans with Windows Defender and saves verified attachments to disk. |
| Dispatch | Sends a new email via SMTP with HTML/Text support. |
| Dispatch | Replies to an existing thread maintaining message references. |
| Dispatch | Saves an email draft to the |
| Diagnostic | Validates SMTP server credentials and connectivity. |
| Intelligence | Computes urgency, intent, sentiment, action items, and security warnings. |
| Intelligence | Audits recent inbox activity into grouped actionable categories. |
| Calendar | Converts meeting text/dates/links into standard |
| Unsubscribe | Identifies |
| Monitoring | Holds an IMAP IDLE connection to wait for incoming mail. |
π Getting Started
1. Prerequisites
Node.js:
v20.0.0or higherPackage Manager:
npm(v9+)An active email account supporting IMAP/SMTP (e.g. Gmail, Outlook, Yahoo, or private webmail)
2. Installation
git clone https://github.com/yusuf-polat/mail-mcp.git
cd mail-mcp
npm install3. Environment Configuration
Copy the provided .env.example file to .env:
cp .env.example .envEdit .env with your email account configuration:
# --- IMAP Configuration (Reading & Real-Time Monitoring) ---
IMAP_HOST=imap.gmail.com
IMAP_PORT=993
IMAP_SECURE=true
IMAP_USER=your_email@example.com
IMAP_PASS=your_16_digit_app_password
# --- SMTP Configuration (Sending & Replying) ---
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_SECURE=true
SMTP_USER=your_email@example.com
SMTP_PASS=your_16_digit_app_password
# --- Sender Info ---
SMTP_FROM_NAME="AI Mail Assistant"
# SMTP_FROM_ADDRESS=your_email@example.com
# --- Debug Mode ---
DEBUG=falseGmail Users: Do not use your personal password. Enable 2-Step Verification on your Google Account, generate a 16-character App Password, and verify that IMAP Access is enabled.
4. Build
Compile TypeScript to production-ready JavaScript in dist/:
npm run build5. Verification Test
Validate that the services, MIME parsers, and heuristic analyzer initialize properly:
npx tsx test/smoke.test.tsπ MCP Client Integration
Antigravity IDE
Add the server definition to %USERPROFILE%\.gemini\config\mcp_config.json (Windows) or ~/.gemini/config/mcp_config.json (macOS / Linux):
{
"mcpServers": {
"mail": {
"command": "node",
"args": [
"C:\\path\\to\\mail-mcp\\dist\\index.js"
]
}
}
}Claude Desktop
Add the server definition to your claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mail": {
"command": "node",
"args": [
"/absolute/path/to/mail-mcp/dist/index.js"
]
}
}
}π Security and Privacy Best Practices
Strict Secrets Isolation: The
.envfile is excluded via.gitignore. Never commit credentials, tokens, or app passwords to version control.Read-Only Option: If sending or message deletion capabilities are not required in your environment, permissions can be restricted at the mail provider level.
Quarantine Execution: Downloaded attachments are placed in
.quarantine/and scanned prior to delivery.Draft-First Workflows: For critical correspondence, use
create_draftinstead ofsend_emailto maintain human review.
π License
This project is licensed under the MIT License.
Available Tools
17 toolsanalyze_emailA
Bir e-postanΔ±n iΓ§eriΔini derinlemesine analiz eder: aciliyet derecesi, niyet/kategori, ton/duygu, aksiyon maddeleri, tarihler, para tutarlarΔ±, ΓΆzet ve phishing/spam riskleri.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | No | Posta kutusundaki bir e-postayΔ± doΔrudan UID ile okuyup analiz etmek iΓ§in UID numarasΔ± | |
| folder | No | UID verildiΔinde e-postanΔ±n bulunduΔu klasΓΆr (VarsayΔ±lan: 'INBOX') | |
| subject | No | UID verilmediΔinde doΔrudan analiz edilecek konu baΕlΔ±ΔΔ± | |
| bodyText | No | UID verilmediΔinde doΔrudan analiz edilecek e-posta gΓΆvdesi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates an analytical, read-only operation ('analiz eder') and lists what it extracts, but it does not mention side effects, input limitations, or any requirements (e.g., language, size, handling of attachments). It is neither misleading nor deeply transparent.
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, front-loaded sentence that states the core function and then provides a concise, scannable list of outputs. Every item in the list adds value and there is no filler or repetition.
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?
Since there is no output schema, the enumerated analysis dimensions serve as the output contract and cover most of what an agent needs to know about the result. The description does not explicitly explain the relationship between uid/folder and subject/bodyText, but the schema descriptions already cover that, and the overall definition is sufficiently complete for a read-only analysis tool.
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 four parameters are fully described in the schema (uid, folder, subject, bodyText), including the distinction between reading from a mailbox and analyzing raw text. The description does not add parameter-specific 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 opens with a specific verb and resource ('Bir e-postanΔ±n iΓ§eriΔini derinlemesine analiz eder') and then enumerates concrete analysis dimensions (urgency, intent, tone, action items, dates, money amounts, summary, phishing/spam). This level of detail clearly differentiates it from sibling tools like read_email (retrieval only) or triage_inbox (prioritization).
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 the tool is for deep content analysis but gives no explicit when-to-use or when-not-to-use guidance, nor does it name alternatives. An agent can infer context from the stated capabilities, but the description does not provide explicit routing compared to siblings such as read_email or extract_calendar_event.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_inboxB
Gelen kutusundaki (veya belirtilen klasΓΆrdeki) en son e-postalarΔ± ΓΆzet bilgilerle listeler.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Getirilecek maksimum e-posta sayΔ±sΔ± (1-100, varsayΔ±lan: 20) | |
| folder | No | Kontrol edilecek posta klasΓΆrΓΌ (VarsayΔ±lan: 'INBOX') | |
| unreadOnly | No | YalnΔ±zca okunmamΔ±Ε e-postalarΔ± listelemek iΓ§in true verin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It does reveal that the tool lists recent emails with summary information, suggesting a non-mutating operation, but it does not disclose ordering details beyond 'latest', pagination behavior, whether unread state is changed, or what summary fields are returned.
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, front-loaded sentence with no filler or redundant repetition. It efficiently communicates the core action, scope, and result type.
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 relatively simple list tool, the description is adequate, and the schema covers all parameters. However, with no output schema or annotations, the description leaves some uncertainty about the exact return fields, sorting, and any side effects, so it is not fully complete.
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%: limit, folder, and unreadOnly all have clear descriptions. The tool description itself adds no parameter-level meaning, so the baseline of 3 applies without further enhancement.
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 states a specific action ('listeler'), a resource ('en son e-postalarΔ±'), and a clear scope (inbox or specified folder). It also conveys that results are summaries, which hints at a difference from full-content tools like read_email, but it does not explicitly name or differentiate sibling tools.
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?
There is no guidance on when to use check_inbox versus alternatives such as search_emails, triage_inbox, or read_email. The description implies a general inbox-checking use case but provides no exclusions, alternative routing, or context to help an agent choose among the many email tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_draftA
E-postayΔ± hemen gΓΆndermez; Taslaklar (Drafts) klasΓΆrΓΌne yapay zeka tarafΔ±ndan oluΕturulmuΕ bir taslak olarak kaydeder.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Bilgi (CC) e-posta adresi veya adresleri | |
| to | No | AlΔ±cΔ± e-posta adresi veya adresleri | |
| bcc | No | Gizli bilgi (BCC) e-posta adresi veya adresleri | |
| replyTo | No | Γzel Reply-To adresi | |
| subject | Yes | Taslak e-postanΔ±n konusu | |
| bodyHtml | No | Δ°steΔe baΔlΔ± zengin HTML iΓ§eriΔi | |
| bodyText | Yes | Taslak dΓΌz metin (plain text) iΓ§eriΔi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It clearly discloses the most important non-obvious behavior: the email is not sent immediately and is persisted in the Drafts folder. It omits return behavior or other side effects, but for a create-draft operation the critical behavior is covered.
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 front-loads the most important fact, that the email is not sent, followed by the destination. There is no filler or redundant restatement of the tool name.
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?
Together with the fully described schema, the description is nearly complete for a simple draft-creation tool. The main gaps are the lack of information about the operation's result, such as whether a draft ID is returned, and no explicit sibling alternative for sending.
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 seven parameters have individual descriptions in the schema, so schema coverage is 100%. The description itself adds no parameter-level meaning, which is acceptable because the schema already documents each field clearly. 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 states a concrete action: it saves an AI-generated draft to the Drafts folder rather than sending it. This explicitly distinguishes the tool from sibling sending tools like send_email and reply_email. The scope is 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 key usage boundary is clear: use this tool when you want to create a draft, not when you want to transmit an email. It does not name the alternative tool explicitly or list exclusions, but the contrast with sending is strong enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_emailB
E-postayΔ± Γ§ΓΆp kutusuna taΕΔ±r veya kalΔ±cΔ± olarak siler.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | Silinecek e-postanΔ±n UID numarasΔ± | |
| folder | No | E-postanΔ±n bulunduΔu klasΓΆr (VarsayΔ±lan: 'INBOX') | INBOX |
| permanent | No | KalΔ±cΔ± olarak silinsin mi? (true ise geri dΓΆnΓΌΕsΓΌz silinir, false ise ΓΓΆp Kutusuna taΕΔ±nΔ±r. VarsayΔ±lan: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose the destructive nature: trash or permanent delete. However, it stops short of explaining recovery semantics, authentication, or what happens if permanent deletion fails; it also relies on the schema to clarify the default.
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 that captures the tool's behavior with no filler. It is front-loaded with the primary action and wastes no tokens.
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 low-complexity tool with fully documented parameters, this description plus the schema is enough to understand invocation. It could mention return values or error behavior, but the absence of an output schema and the simplicity of the action make the description reasonably complete.
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 the schema already explaining uid, folder, and permanent. The description adds no parameter-specific meaning beyond restating the trash/permanent distinction, so the baseline of 3 applies.
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 Turkish description states a concrete action: moving an email to the trash or permanently deleting it, so an agent can tell what the tool does. It is clear about the resource (email) and the two supported outcomes, though it does not explicitly contrast this with the sibling move_email tool.
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?
There is no guidance about when to use delete_email versus move_email or other siblings, nor any note about prerequisites or exclusions. The description only states what happens, not when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_attachmentA
Belirtilen e-postadaki eki indirir. GΓVENLΔ°K ZORUNLULUΔU: Dosya kesinlikle indirilmeden ΓΆnce Windows Defender ve Γ§ok katmanlΔ± sezgisel virΓΌs taramasΔ±ndan geΓ§irilir. Tehdit bulunursa dosya derhal imha edilir ve indirme iptal edilir.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | E-postanΔ±n UID numarasΔ± | |
| folder | No | E-postanΔ±n bulunduΔu klasΓΆr (VarsayΔ±lan: 'INBOX') | INBOX |
| targetDir | No | Ekin kaydedileceΔi yerel dizin (VarsayΔ±lan: './downloads') | ./downloads |
| attachmentIdentifier | Yes | Dosya adΔ± (ΓΆrn: 'fatura.pdf') veya ekin sΔ±rasΔ± (0, 1, 2 vb.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It clearly states that the file is scanned with Windows Defender and multi-layered heuristic virus scanning before download, and that a detected threat leads to immediate destruction and download cancellation. This is meaningful behavioral context beyond the bare 'downloads attachment' statement.
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 sentences with no filler: the first states the core action, and the second adds the critical security behavior. It is front-loaded and every sentence earns its place.
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 description, combined with the complete parameter schema, is sufficient for a basic download action. However, there is no output schema and no annotation coverage, and the description does not explain return values, error behavior, or what happens on successful download. It is adequate but not fully complete.
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%, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides; 'specified email' and 'attachment' loosely map to uid and attachmentIdentifier, but the schema already documents types, defaults, and required fields.
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 states a specific action and resource: 'Belirtilen e-postadaki eki indirir' (downloads the attachment in the specified email). This clearly distinguishes the tool from sibling tools such as read_email or send_email, and the verb-resource pairing is 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?
No when-to-use guidance is provided. The description does not mention when to prefer download_attachment over alternatives, nor does it give any exclusion criteria. The security warning, while useful, does not help the agent decide between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_calendar_eventB
E-postadaki toplantΔ±, randevu ve etkinlik bilgilerini (tarih, saat, link, katΔ±lΔ±mcΔ±lar) Γ§Δ±karΔ±r ve standart .ics (iCalendar) formatΔ± ΓΌretir.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | No | ToplantΔ± bilgisi Γ§Δ±karΔ±lacak e-postanΔ±n UID numarasΔ± | |
| folder | No | UID verildiΔinde e-postanΔ±n klasΓΆrΓΌ | INBOX |
| subject | No | UID yoksa doΔrudan konu baΕlΔ±ΔΔ± | |
| bodyText | No | UID yoksa doΔrudan e-posta gΓΆvdesi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden of disclosing side effects and behavior. It only says that information is extracted and .ics is produced; it does not state whether this is a read-only operation, whether it modifies or marks the email, how errors or missing email content are handled, or whether the .ics is returned or stored. This ambiguity is risky for an agent deciding to invoke it.
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, focused sentence that front-loads the operation and output format. There is no filler or repetition of schema fields; every word contributes to the tool's 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 tool with no annotations and no output schema, the description is somewhat thin: it specifies the .ics output but leaves the return/transport form unclear and does not state the logical precondition that either uid or subject/bodyText should be supplied. It is adequate for a simple extraction tool but has clear gaps.
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%, so the schema already documents all four parameters well. The description adds the general extraction target (date, time, link, participants) but does not add meaningful mapping to uid/folder/subject/bodyText beyond what the schema already provides. 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 names a specific operation ('Γ§Δ±karΔ±r' β extracts) on a clear resource (meeting/appointment/event info in an email) and specifies the concrete output format (standard .ics/iCalendar). This makes it easy to distinguish from sibling read/analysis tools like read_email or analyze_email, none of which claim .ics generation.
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 given about when to select this tool over siblings such as analyze_email or search_emails, and no exclusions or alternatives are named. The schema hints at input modes, but the description itself never states the conditions under which extract_calendar_event should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_unsubscribe_linksA
BΓΌlten ve tanΔ±tΔ±m e-postalarΔ±ndaki abonelikten Γ§Δ±kma (List-Unsubscribe baΕlΔ±klarΔ± veya gΓΆvdedeki iptal baΔlantΔ±larΔ±) yollarΔ±nΔ± tespit eder.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | Abonelikten Γ§Δ±kma baΔlantΔ±sΔ± taranacak e-postanΔ±n UID numarasΔ± | |
| folder | No | E-postanΔ±n bulunduΔu klasΓΆr (VarsayΔ±lan: 'INBOX') | INBOX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose what is scanned and what kinds of links are found. However, it does not explicitly state that the tool is read-only, what it returns when no links are found, or how results are structured.
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, efficient sentence with no filler. Every phrase adds useful signal: the email type, the two detection targets, and the 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?
For a low-complexity, two-parameter tool with no output schema, the description adequately covers the purpose and the scope of the search. It leaves minor gaps around return format and no-match behavior, but these are not critical for invoking the tool.
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%, so the parameters uid and folder are already fully documented in the schema. The tool description adds no extra parameter-level meaning, which is acceptable at the baseline of 3.
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 ('tespit eder' / detects), a clear resource (unsubscribe paths in newsletters and promotional emails), and specific detection mechanisms (List-Unsubscribe headers or body cancel links). This clearly differentiates it from siblings like search_emails or read_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?
The description implies the tool is for newsletters and promotional emails, which gives context, but it does not explicitly state when to prefer it over alternatives or when not to use it. No sibling is named, and no exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flag_emailA
E-postaya bayrak ekler, kaldΔ±rΔ±r veya gΓΌnceller (ΓΆrn: yΔ±ldΔ±zlama '\Flagged', okundu '\Seen').
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | Δ°Εlem yapΔ±lacak e-postanΔ±n UID numarasΔ± | |
| flags | Yes | Uygulanacak bayraklar dizisi (ΓΆrn: ['\\Flagged'], ['\\Seen'], vb.) | |
| action | No | Δ°Εlem tΓΌrΓΌ: 'add' (ekle), 'remove' (kaldΔ±r), 'set' (tΓΌmΓΌnΓΌ ayarla). VarsayΔ±lan: 'add' | add |
| folder | No | E-postanΔ±n bulunduΔu klasΓΆr (VarsayΔ±lan: 'INBOX') | INBOX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that the tool modifies flags and supports add, remove, and update operations, with examples of flag values. It does not mention permissions, reversibility, or side effects, but the operation is clearly scoped to flag manipulation and is relatively low-risk.
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 front-loads the verb and resource, then provides relevant examples. Every word earns its place and there is no redundant or filler content.
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 tool with 4 fully documented parameters and no output schema, the description covers the core behavior and gives example flag values. It does not address error handling or return behavior, but these are not critical for a straightforward flag operation. The schema and description together provide sufficient context for an agent to call the tool correctly.
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%, so the baseline is 3. The description adds examples of flag values, but these are already included in the schema's flags parameter description. It does not materially enhance understanding of uid, action, or folder beyond what the schema already states.
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 identifies the tool's function with specific verbs: 'ekler, kaldΔ±rΔ±r veya gΓΌnceller' (adds, removes, or updates) flags on an email. Concrete examples like starring ('\Flagged') and marking as read ('\Seen') remove ambiguity. This distinguishes it from sibling tools such as read_email or move_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?
The description implies usage: call this tool whenever you need to manage email flags, such as starring or marking as read/unread. However, it does not explicitly state when to use this tool versus alternatives or when not to use it. The context is clear but no exclusions or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_foldersB
Posta kutusundaki tΓΌm klasΓΆrleri, etiketleri ve ΓΆzel kullanΔ±m yollarΔ±nΔ± listeler.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. It only states the action (lists folders, labels, special paths) but does not disclose side effects (e.g., read-only), authentication requirements, performance characteristics, or output format. This is minimal disclosure for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the primary action and scope. It is front-loaded and contains no filler. Every word earns its place.
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 description is minimal but adequate for a simple list operation with no parameters and no output schema. However, it does not mention the output format (e.g., flat vs. hierarchical), whether it returns all levels, or any caveats like pagination or mailbox scope. Given the low complexity, this is a moderate 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?
The tool has zero parameters, so the baseline is 4. The schema is empty and the description clarifies the scope of the listing (all folders, labels, special use paths), which adds meaning beyond the schema's empty properties. No parameter documentation is needed.
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 'list' and the resource: all folders, labels, and special use paths in the mailbox. It is specific and unambiguous, but it does not explicitly differentiate from sibling tools, though none of the siblings appear to list folders, so the distinction is implicit.
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 provides no guidance on when to use this tool versus alternatives. It does not mention any preconditions, exclusions, or situations where another tool would be more appropriate. The usage context is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_emailB
Belirtilen e-postayΔ± (UID) hedef klasΓΆre veya etikete taΕΔ±r.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | TaΕΔ±nacak e-postanΔ±n UID numarasΔ± | |
| sourceFolder | No | E-postanΔ±n bulunduΔu kaynak klasΓΆr (VarsayΔ±lan: 'INBOX') | INBOX |
| destinationFolder | Yes | Hedef klasΓΆr adΔ± (ΓΆrn: '[Gmail]/Trash', '[Gmail]/Spam', 'ArΕiv', vb.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states that the email is moved but does not disclose side effects such as removal from the source folder, label-versus-folder behavior, whether the destination must already exist, or what the tool returns. This is thin disclosure for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean, front-loaded sentence that immediately communicates the action, object, and destination. There is no filler or redundant restatement of schema fields.
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 description is minimally viable for a simple move operation with full schema coverage of parameters. However, with no annotations and no output schema, it does not explain return behavior, error conditions, or the consequences of moving to a label versus a folder, leaving notable gaps.
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 already covers all three parameters (100% coverage), so the baseline is 3. The description adds a small nuance by mentioning 'label' as a possible destination, which the schema does not explicitly state, but it offers no other parameter-level meaning beyond the 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 uses a specific verb ('taΕΔ±r' β moves) and clearly identifies the resource (email by UID) and destination (folder or label). This distinguishes it from sibling tools like delete_email, flag_email, and send_email without requiring schema inspection.
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 given about when to use this tool versus alternatives, nor are prerequisites stated (e.g., source folder state, destination folder existence). The only context is the implied action of moving an email, but there is no explicit when-to-use 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_emailC
UID numarasΔ± verilen belirli bir e-postayΔ± gΓΆvdesi, ek bilgileri ve baΕlΔ±klarΔ±yla eksiksiz okur.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | Okunacak e-postanΔ±n UID numarasΔ± | |
| folder | No | E-postanΔ±n bulunduΔu klasΓΆr (VarsayΔ±lan: 'INBOX') | |
| markAsSeen | No | E-posta okundu olarak iΕaretlensin mi? (VarsayΔ±lan: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions what is read, but omits the important side effect that markAsSeen defaults to true, meaning reading can mutate the email's seen status. It also doesn't mention auth requirements or 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, front-loaded sentence with no filler. It is appropriately sized, though the phrase 'ek bilgileri' (additional info) is somewhat vague.
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 3-parameter tool with no output schema and no annotations, the description is minimally adequate. It defines the read scope, but misses the seen-flag side effect and expected return structure, which the schema alone does not fully replace.
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%, with each parameter described including defaults for folder and markAsSeen. The description adds 'body, additional info, headers' as read content, but does not materially extend parameter understanding beyond the 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 states a specific action and resource: reads a specific email by UID, including body, additional info, and headers. It is clear enough to distinguish from sibling list/search tools, though it doesn't explicitly name alternatives.
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 given about when to use this tool versus check_inbox, search_emails, or other siblings. The description implies use when a UID is already known, but it doesn't state this or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_emailA
Gelen bir e-postaya RFC standartlarΔ±na uygun baΕlΔ±klar (In-Reply-To, References, Re:) ve orijinal alΔ±ntΔ±yla yanΔ±t verir.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Orijinal e-postanΔ±n bulunduΔu klasΓΆr (VarsayΔ±lan: 'INBOX') | |
| bodyHtml | No | Δ°steΔe baΔlΔ± HTML formatlΔ± yanΔ±t mesajΔ±nΔ±z | |
| bodyText | Yes | YanΔ±t olarak yazΔ±lacak mesajΔ±nΔ±z | |
| replyAll | No | TΓΌm alΔ±cΔ±larΔ± (CC listesini de) yanΔ±ta dahil etmek iΓ§in true verin | |
| originalUid | Yes | YanΔ±tlanacak orijinal e-postanΔ±n UID numarasΔ± |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden. It does disclose useful side effects: it adds RFC headers and quotes the original. But it does not clarify whether the reply is sent immediately or saved as a draft, nor mention permissions or side effects beyond composing the reply.
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, information-dense sentence with no filler. It front-loads the main action and immediately specifies the distinguishing details.
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 description is enough to know the core behavior but lacks several cues an agent would want for a mutating email action: whether it sends immediately, how it interacts with send_email/create_draft, and what the return result indicates. With no output schema and no annotations, this leaves important context implicit.
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%, so the schema fully documents each parameter; per the baseline, 3 is appropriate. The description does not add parameter-specific meaning, but it does contextualize that the reply includes the original message and proper threading headers.
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 states a specific verb ('yanΔ±t verir' / replies) on a concrete resource (an incoming email), and adds distinctive behavior: RFC-compliant headers (In-Reply-To, References, Re:) and original quoting. This clearly differentiates it from generic send_email or create_draft.
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 phrase 'Gelen bir e-postaya' implies the tool is for replying to an existing email, which is some usage context. However, it never explicitly states when to prefer reply_email over send_email/create_draft, nor gives any exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_emailsC
GeliΕmiΕ arama kriterleri ile e-postalarΔ± arar (gΓΆnderen, konu, gΓΆvde, tarih, okunmamΔ±ΕlΔ±k vb.).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | AlΔ±cΔ± adres filtresi | |
| from | No | GΓΆnderen adres veya isim filtresi | |
| limit | No | Maksimum sonuΓ§ sayΔ±sΔ± (1-100, varsayΔ±lan: 25) | |
| query | No | Konu veya gΓΆvdede serbest metin aramasΔ± | |
| since | No | Bu tarihten sonraki mailler (Γrn: '2025-01-01') | |
| before | No | Bu tarihten ΓΆnceki mailler (Γrn: '2025-12-31') | |
| folder | No | Aranacak klasΓΆr (VarsayΔ±lan: 'INBOX') | |
| subject | No | Konu iΓ§inde geΓ§en kelime filtresi | |
| unreadOnly | No | Sadece okunmamΔ±Ε mailleri getirmek iΓ§in true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It describes what the tool does (search) but does not mention safety, read-only nature, authentication needs, rate limits, or return format. This is a significant gap for a read operation with no annotations.
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 front-loads the action and then lists the relevant criteria categories. There is no wasted text; every part earns its place.
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?
With 9 optional parameters, no output schema, and no annotations, the description should clarify what the tool returns, how results are sorted/limited, and whether parameters combine. It only gives a vague overview, leaving an agent uncertain about crucial invocation details.
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%, so all nine parameters are individually documented in the schema. The description adds no meaning beyond a high-level summary of filter categories; it does not compensate for or extend the schema information.
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 tool searches emails with advanced criteria (sender, subject, body, date, unread status). It is distinct from siblings like read_email and check_inbox, though it does not explicitly name an alternative or exclusion.
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 given on when to use this tool versus alternatives such as check_inbox or triage_inbox. The 'advanced search criteria' phrase implies more capability than a simple inbox check, but the description leaves the selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailC
Belirtilen alΔ±cΔ±(lar)a yeni bir e-posta gΓΆnderir.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Bilgi (CC) e-posta adresi veya adresleri | |
| to | Yes | AlΔ±cΔ± e-posta adresi veya adresler dizisi | |
| bcc | No | Gizli bilgi (BCC) e-posta adresi veya adresleri | |
| replyTo | No | YanΔ±tlarΔ±n yΓΆnlendirileceΔi ΓΆzel Reply-To adresi | |
| subject | Yes | E-postanΔ±n konusu | |
| bodyHtml | No | Δ°steΔe baΔlΔ± zengin HTML iΓ§eriΔi | |
| bodyText | Yes | E-postanΔ±n dΓΌz metin (plain text) iΓ§eriΔi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It correctly identifies the operation as sending (a write action), but gives no details about delivery semantics, side effects, authentication, rate limits, or error behavior. This is minimal transparency beyond the bare function.
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 that efficiently states the core function with no wasted words. However, it is very sparse and could have included more useful context while remaining concise. It is appropriately sized but not rich in information.
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?
With no annotations and no output schema, the description must provide more operational context, but it only gives a one-line purpose. An agent would not know if the email is sent immediately, what the return value is, or any constraints or side effects. The schema covers parameters, but the behavioral context is largely missing.
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%, so the schema fully documents all seven parameters. The description adds no additional meaning beyond mentioning the recipient, which is already covered by the 'to' parameter. This is the baseline score for well-covered schemas.
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 states a clear verb and resource: 'sends a new email' to specified recipients. It is distinguishable from siblings like reply_email by the word 'new', though it does not explicitly name or contrast with them. The purpose is unambiguous, but it does not go beyond the basic function.
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?
There is no guidance on when to use this tool versus alternatives such as reply_email or create_draft. The description only says what it does, not when it should be preferred. No prerequisites or situational context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triage_inboxA
Gelen kutusundaki son e-postalarΔ± topluca tarar, ΓΆnem derecesine gΓΆre gruplar (GΓΌvenlik, Finans, Acil GΓΆrevler, BΓΌltenler) ve eyleme dΓΆnΓΌΕtΓΌrΓΌlebilir ΓΆzet rapor sunar.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Δ°ncelenecek maksimum e-posta sayΔ±sΔ± (VarsayΔ±lan: 15) | |
| folder | No | Taranacak klasΓΆr (VarsayΔ±lan: 'INBOX') | INBOX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the core behavior: scanning, grouping by importance, and producing an actionable summary. It does not mention side effects such as whether emails are marked as read or moved, though 'scans' weakly implies a read-only operation. This is adequate but not rich.
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, information-dense sentence front-loads the action, scope, grouping logic, and output format. Every element earns its place; there is no redundancy or filler.
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 is moderately complex and has no output schema, but the description states that the result is an 'actionable summary report', which covers the return value. It also conveys the grouping logic and source. Minor gaps remain around the exact report structure and any mutation side effects, but they are not severe for a bulk triage tool.
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%, so both parameters are already documented with defaults and meaning. The description adds no additional parameter-level detail, but the baseline of 3 is appropriate because the schema already handles parameter semantics fully.
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 names a specific verb and resource: 'bulk scans recent emails in the inbox', then adds a distinctive grouping behavior by importance with concrete categories (Security, Finance, Urgent Tasks, Newsletters). This clearly separates it from siblings like read_email, search_emails, and check_inbox, which do not offer a grouped summary report.
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?
Usage context is implied rather than explicit: it is useful when an agent needs a broad triage of the inbox rather than a single email read or search. However, the description does not state when not to use it or name an alternative such as check_inbox or analyze_email.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_smtp_connectionA
SMTP sunucu yapΔ±landΔ±rmasΔ±nΔ± ve baΔlantΔ±sΔ±nΔ± test eder.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It does not state whether this operation is read-only, what side effects occur, whether a network/SMTP handshake is performed, or what the result means. The one-line description covers purpose only.
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, focused sentence with no filler or redundancy. It front-loads the core action and resource, making it easy to scan.
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 zero-parameter tool, the core purpose is present, but the complete lack of output schema or behavioral detail leaves an agent uncertain about what a successful (or failed) verification returns. The description is adequate for simple invocation but not fully complete without any expected result guidance.
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 zero parameters and the input schema fully covers them, so the description has no parameter details to add. Baseline for a zero-parameter tool is 4; the description does not need to compensate for any schema gaps.
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 states a specific action ('tests') and resource ('SMTP server configuration and connection'), clearly distinguishing this from the sibling email operations like check_inbox or send_email. An agent can understand what the tool does without opening the schema.
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 for when to use the tool, what preconditions are needed, or how it relates to alternatives. The intended use is only implied by the verb 'test', so an agent has no explicit decision rule for selecting it over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_new_emailsB
IMAP IDLE protokolΓΌnΓΌ kullanarak gelen kutusunu anlΔ±k olarak dinler. Yeni bir e-posta dΓΌΕtΓΌΔΓΌ anda veya zaman aΕΔ±mΔ± sΓΌresi dolduΔunda sonucu dΓΆner.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Dinlenecek klasΓΆr (VarsayΔ±lan: 'INBOX') | |
| timeoutSeconds | No | Yeni e-posta beklenirken beklenecek maksimum saniye (10-300 sn, varsayΔ±lan: 30 sn). Yeni mail gelirse anΔ±nda dΓΆner. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does add useful behavior: it uses IMAP IDLE, returns immediately on a new message, and respects a timeout. It does not explain what the returned 'result' is on timeout, whether the watch is one-shot, or what happens when no mail arrives.
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?
Two compact sentences front-load the core behavior and the timeout trigger with no filler or repetition of the schema. Every sentence earns its place.
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 long-polling tool with no annotations and no output schema, key operational details are missing: the shape of the result when a new email arrives, what exactly happens on timeout, and whether the call blocks until one of those two events. An agent cannot fully predict the invocation outcome.
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%, with folder and timeoutSeconds already documented including defaults, range, and early-return behavior. The description adds no parameter details beyond what the schema already provides, so the baseline score of 3 applies.
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 a specific action: watching the mailbox in real time via IMAP IDLE and returning on new email or timeout, which distinguishes it from one-off siblings like check_inbox or search_emails. However, it says 'gelen kutusunu' (inbox) while the folder parameter allows listening to other folders, so the resource scope is slightly imprecise.
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 real-time, event-driven wording implies it is for waiting on new mail, and the timeout parameter gives a clear execution bound. It does not explicitly compare this tool to check_inbox or say when not to use it, so selection guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
v1.0.0- First observed
analyze_email - First observed
check_inbox - First observed
create_draft - First observed
delete_email - First observed
download_attachment - First observed
extract_calendar_event - First observed
find_unsubscribe_links - First observed
flag_email - First observed
list_folders - First observed
move_email - First observed
read_email - First observed
reply_email - First observed
search_emails - First observed
send_email - First observed
triage_inbox - First observed
verify_smtp_connection - First observed
watch_new_emails
TDQS
Scored across 17 tools
Each tool has a clearly distinct purpose: listing, searching, reading, sending, replying, drafting, real-time watching, analyzing, triaging, folders, moving, flagging, deleting, attachments, and calendar extraction do not meaningfully overlap. Even similarly scoped tools like check_inbox, search_emails, and triage_inbox are differentiated by intent and output.
All tool names follow a consistent snake_case verb_noun pattern such as check_inbox, send_email, move_email, and delete_email. This makes the API predictable and easy to navigate for an agent.
At 17 tools, the server is slightly above the ideal 3-15 range but every tool appears to serve a legitimate mail-related function. The count is reasonable for a broad enterprise mail feature set and does not feel bloated.
The tool surface covers core email workflows: send, reply, draft, read, search, delete, move, flag, attachment download, folder listing, and real-time monitoring. Minor gaps exist, such as no explicit forward_email tool, no folder creation/management, and no clearly described attachment support when sending or creating drafts.
Maintenance
Related MCP Connectors
Email inboxes and calendars for AI agents: send, receive, search, draft and schedule.
Email inboxes and calendars for AI agents: send, receive, search, draft and schedule.
Email infrastructure for AI agents β send, receive, search, and reply to email over MCP.
Task-scoped email inboxes for AI agents: read mail, extract verification codes, and reply.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to read, search, compose, and send emails by connecting to any IMAP/SMTP provider. It supports comprehensive mailbox management, including draft handling and message deletion, directly through natural language.10153 npm10MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with email accounts via IMAP and SMTP, supporting mailbox listing, email search, retrieval, sending, and management.MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to send, read, and manage emails via SMTP and IMAP, with support for attachments, threads, and mailbox organization.1617 npm1MIT
- FlicenseBqualityDmaintenanceEnables AI models to send, receive, search, and manage emails via SMTP/IMAP, including support for attachments, contacts, and advanced search.18-