Skip to main content
Glama
yusuf-polat

Enterprise Mail MCP Server

by yusuf-polat

πŸ“¬ Enterprise Mail MCP Server

Model Context Protocol TypeScript Node.js Security License: MIT

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's Drafts folder, 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 .ics iCalendar payloads.

  • Unsubscribe Assistant (find_unsubscribe_links): Extracts RFC 2369 List-Unsubscribe headers (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

check_inbox

Reading

Retrieves recent message headers with pagination and unread filtering.

search_emails

Reading

Searches emails by query, sender, recipient, subject, body, or dates.

read_email

Reading

Fetches and parses complete MIME email details (HTML, text, headers, attachments).

list_folders

Organization

Lists all account mailboxes, special-use flags, and paths.

move_email

Organization

Moves an email by UID to a destination folder or label.

flag_email

Organization

Adds, removes, or sets IMAP flags (\Flagged, \Seen, etc.).

delete_email

Organization

Moves message to Trash or permanently purges it.

download_attachment

Attachments

Scans with Windows Defender and saves verified attachments to disk.

send_email

Dispatch

Sends a new email via SMTP with HTML/Text support.

reply_email

Dispatch

Replies to an existing thread maintaining message references.

create_draft

Dispatch

Saves an email draft to the Drafts folder for manual review.

verify_smtp_connection

Diagnostic

Validates SMTP server credentials and connectivity.

analyze_email

Intelligence

Computes urgency, intent, sentiment, action items, and security warnings.

triage_inbox

Intelligence

Audits recent inbox activity into grouped actionable categories.

extract_calendar_event

Calendar

Converts meeting text/dates/links into standard .ics format.

find_unsubscribe_links

Unsubscribe

Identifies List-Unsubscribe headers and opt-out links.

watch_new_emails

Monitoring

Holds an IMAP IDLE connection to wait for incoming mail.


πŸš€ Getting Started

1. Prerequisites

  • Node.js: v20.0.0 or higher

  • Package 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 install

3. Environment Configuration

Copy the provided .env.example file to .env:

cp .env.example .env

Edit .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=false
IMPORTANT

Gmail 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 build

5. 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.json

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

{
  "mcpServers": {
    "mail": {
      "command": "node",
      "args": [
        "/absolute/path/to/mail-mcp/dist/index.js"
      ]
    }
  }
}

πŸ”’ Security and Privacy Best Practices

  1. Strict Secrets Isolation: The .env file is excluded via .gitignore. Never commit credentials, tokens, or app passwords to version control.

  2. Read-Only Option: If sending or message deletion capabilities are not required in your environment, permissions can be restricted at the mail provider level.

  3. Quarantine Execution: Downloaded attachments are placed in .quarantine/ and scanned prior to delivery.

  4. Draft-First Workflows: For critical correspondence, use create_draft instead of send_email to maintain human review.


πŸ“„ License

This project is licensed under the MIT License.

Available Tools

17 tools
analyze_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidNoPosta kutusundaki bir e-postayı doğrudan UID ile okuyup analiz etmek için UID numarası
folderNoUID verildiğinde e-postanın bulunduğu klasâr (Varsayılan: 'INBOX')
subjectNoUID verilmediğinde doğrudan analiz edilecek konu başlığı
bodyTextNoUID verilmediğinde doğrudan analiz edilecek e-posta gâvdesi

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoGetirilecek maksimum e-posta sayΔ±sΔ± (1-100, varsayΔ±lan: 20)
folderNoKontrol edilecek posta klasΓΆrΓΌ (VarsayΔ±lan: 'INBOX')
unreadOnlyNoYalnızca okunmamış e-postaları listelemek için true verin

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoBilgi (CC) e-posta adresi veya adresleri
toNoAlΔ±cΔ± e-posta adresi veya adresleri
bccNoGizli bilgi (BCC) e-posta adresi veya adresleri
replyToNoΓ–zel Reply-To adresi
subjectYesTaslak e-postanΔ±n konusu
bodyHtmlNoİsteğe bağlı zengin HTML içeriği
bodyTextYesTaslak düz metin (plain text) içeriği

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesSilinecek e-postanΔ±n UID numarasΔ±
folderNoE-postanın bulunduğu klasâr (Varsayılan: 'INBOX')INBOX
permanentNoKalΔ±cΔ± olarak silinsin mi? (true ise geri dΓΆnüşsΓΌz silinir, false ise Çâp Kutusuna taşınΔ±r. VarsayΔ±lan: false)

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesE-postanΔ±n UID numarasΔ±
folderNoE-postanın bulunduğu klasâr (Varsayılan: 'INBOX')INBOX
targetDirNoEkin kaydedileceği yerel dizin (Varsayılan: './downloads')./downloads
attachmentIdentifierYesDosya adΔ± (ΓΆrn: 'fatura.pdf') veya ekin sΔ±rasΔ± (0, 1, 2 vb.)

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidNoToplantΔ± bilgisi Γ§Δ±karΔ±lacak e-postanΔ±n UID numarasΔ±
folderNoUID verildiğinde e-postanın klasârüINBOX
subjectNoUID yoksa doğrudan konu başlığı
bodyTextNoUID yoksa doğrudan e-posta gâvdesi

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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

For a tool with no annotations and no output schema, the description is 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

flag_emailA

E-postaya bayrak ekler, kaldΔ±rΔ±r veya gΓΌnceller (ΓΆrn: yΔ±ldΔ±zlama '\Flagged', okundu '\Seen').

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesİşlem yapılacak e-postanın UID numarası
flagsYesUygulanacak bayraklar dizisi (ΓΆrn: ['\\Flagged'], ['\\Seen'], vb.)
actionNoİşlem türü: 'add' (ekle), 'remove' (kaldır), 'set' (tümünü ayarla). Varsayılan: 'add'add
folderNoE-postanın bulunduğu klasâr (Varsayılan: 'INBOX')INBOX

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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

The description clearly states the verb 'list' and 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesTaşınacak e-postanın UID numarası
sourceFolderNoE-postanın bulunduğu kaynak klasâr (Varsayılan: 'INBOX')INBOX
destinationFolderYesHedef klasâr adı (ârn: '[Gmail]/Trash', '[Gmail]/Spam', 'Arşiv', vb.)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesOkunacak e-postanΔ±n UID numarasΔ±
folderNoE-postanın bulunduğu klasâr (Varsayılan: 'INBOX')
markAsSeenNoE-posta okundu olarak işaretlensin mi? (Varsayılan: true)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoOrijinal e-postanın bulunduğu klasâr (Varsayılan: 'INBOX')
bodyHtmlNoİsteğe bağlı HTML formatlı yanıt mesajınız
bodyTextYesYanΔ±t olarak yazΔ±lacak mesajΔ±nΔ±z
replyAllNoTΓΌm alΔ±cΔ±larΔ± (CC listesini de) yanΔ±ta dahil etmek iΓ§in true verin
originalUidYesYanΔ±tlanacak orijinal e-postanΔ±n UID numarasΔ±

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents 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.

Purpose5/5

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.

Usage Guidelines3/5

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.).

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoAlΔ±cΔ± adres filtresi
fromNoGΓΆnderen adres veya isim filtresi
limitNoMaksimum sonuΓ§ sayΔ±sΔ± (1-100, varsayΔ±lan: 25)
queryNoKonu veya gΓΆvdede serbest metin aramasΔ±
sinceNoBu tarihten sonraki mailler (Γ–rn: '2025-01-01')
beforeNoBu tarihten ΓΆnceki mailler (Γ–rn: '2025-12-31')
folderNoAranacak klasΓΆr (VarsayΔ±lan: 'INBOX')
subjectNoKonu iΓ§inde geΓ§en kelime filtresi
unreadOnlyNoSadece okunmamış mailleri getirmek için true

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoBilgi (CC) e-posta adresi veya adresleri
toYesAlΔ±cΔ± e-posta adresi veya adresler dizisi
bccNoGizli bilgi (BCC) e-posta adresi veya adresleri
replyToNoYanıtların yânlendirileceği âzel Reply-To adresi
subjectYesE-postanΔ±n konusu
bodyHtmlNoİsteğe bağlı zengin HTML içeriği
bodyTextYesE-postanın düz metin (plain text) içeriği

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoΔ°ncelenecek maksimum e-posta sayΔ±sΔ± (VarsayΔ±lan: 15)
folderNoTaranacak klasΓΆr (VarsayΔ±lan: 'INBOX')INBOX

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoDinlenecek klasΓΆr (VarsayΔ±lan: 'INBOX')
timeoutSecondsNoYeni e-posta beklenirken beklenecek maksimum saniye (10-300 sn, varsayΔ±lan: 30 sn). Yeni mail gelirse anΔ±nda dΓΆner.

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 17 tool updatesv1.0.0
    • First observedanalyze_email
    • First observedcheck_inbox
    • First observedcreate_draft
    • First observeddelete_email
    • First observeddownload_attachment
    • First observedextract_calendar_event
    • First observedfind_unsubscribe_links
    • First observedflag_email
    • First observedlist_folders
    • First observedmove_email
    • First observedread_email
    • First observedreply_email
    • First observedsearch_emails
    • First observedsend_email
    • First observedtriage_inbox
    • First observedverify_smtp_connection
    • First observedwatch_new_emails

TDQS

A3.7/5.0

Scored across 17 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    10
    153 npm
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with email accounts via IMAP and SMTP, supporting mailbox listing, email search, retrieval, sending, and management.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to send, read, and manage emails via SMTP and IMAP, with support for attachments, threads, and mailbox organization.
    16
    17 npm
    1
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Enables AI models to send, receive, search, and manage emails via SMTP/IMAP, including support for attachments, contacts, and advanced search.
    18
    -