Skip to main content
Glama
Kinolian1107

phison-mail-mcp

by Kinolian1107

Mail MCP 工具

Node.js TypeScript

English Version (README-EN.md)

這是什麽

這是一個基於 MCP (Model Context Protocol) 的郵件工具,它能讓 AI 模型通過標準化接口訪問電子郵件服務。

簡單來說,它讓 AI 助手能夠執行各種郵件操作,如發送郵件、閱讀收件箱、處理附件等,無需用戶手動輸入覆雜的API調用或切換到郵件客戶端。

  • 郵件發送:普通文本郵件、HTML郵件、帶附件郵件、群發郵件

  • 郵件接收與查詢:獲取文件夾列表、列出郵件、高級搜索、獲取郵件詳情

  • 郵件管理:標記已讀/未讀、刪除郵件、移動郵件

  • 附件管理:查看附件列表、下載附件、查看附件內容

  • 聯系人管理:獲取聯系人列表、搜索聯系人

以下是 Mail MCP 工具的一些核心特點:

  • 高級搜索功能:支持多文件夾、關鍵詞、日期範圍、發件人、收件人等覆雜條件搜索

  • 智能聯系人管理:自動從郵件歷史中提取聯系人信息,包括聯系頻率分析

  • 內容範圍控制:可以分段查看大型郵件,避免加載過多內容

  • 多種郵件格式:支持純文本和HTML格式郵件的發送和顯示

  • 附件處理能力:智能識別附件類型,支持文本、圖片等不同類型的附件預覽

  • 安全可靠:本地處理所有郵件操作,不通過第三方服務器轉發敏感信息

通過簡單的自然語言指令,AI 可以幫助你完成上述所有操作,無需手動編寫API調用或在郵件客戶端中執行覆雜操作。

Related MCP server: IMAP Email MCP Server

快速上手

0. 環境準備

  1. 安裝 Node.js 和 npm

    • 訪問 Node.js 官網

    • 下載並安裝 LTS(長期支持)版本

    • 安裝時選擇默認選項即可,安裝包會同時安裝 Node.js 和 npm

  2. 驗證安裝

    • 安裝完成後,打開命令提示符(CMD)或 PowerShell

    • 輸入以下命令確認安裝成功:

      node --version
      npm --version
    • 如果顯示版本號,則表示安裝成功

1. 構建項目

npm install
npm run build

2. 啟動服務

1. SSE
node dist/sse-server.js --port 22102 --host localhost

2. Stdio
{
	"mcpServers": {
		"phison-mail-mcp": {
			"command": "node",
			"args": [
				"dist/index.js"
			],
			"env": {
				"SMTP_HOST": "mail.phison.com",
				"SMTP_PORT": "25",
				"SMTP_SECURE": "false",
				"SMTP_USER": "example@phison.com",
				"SMTP_PASS": "example",
				"SMTP_ALLOW_UNAUTHORIZED_CERT": "false",
				"IMAP_HOST": "mail.phison.com",
				"IMAP_PORT": "993",
				"IMAP_SECURE": "true",
				"IMAP_USER": "example@phison.com",
				"IMAP_PASS": "example",
				"DEFAULT_FROM_NAME": "example",
				"DEFAULT_FROM_EMAIL": "example@phison.com"
			}
		}
	}
}

配置好郵件服務器信息後,就可以開始使用了。

你可以要求 AI 執行以下操作:

  • "列出我的郵箱文件夾"

  • "顯示收件箱中的最新5封郵件"

  • "發送一封主題為'測試郵件'的郵件給example@example.com"

  • "測試SMTP連接"(新增功能,可測試郵件服務器連接狀態)

  • "搜索包含'發票'關鍵詞的郵件"

  • "查看UID為1234的郵件詳情"

  • "下載郵件中的附件"

工作原理

本工具基於 MCP (Model Context Protocol) 標準實現,作為 AI 模型與電子郵件服務之間的橋梁。它使用 nodemailernode-imap 作為底層郵件客戶端,並通過 Zod 進行請求驗證和類型檢查。

主要技術組件包括:

  • SMTP 客戶端:負責所有郵件發送功能,支持HTML內容和附件,特別支持端口25的非TLS/SSL連接

  • IMAP 客戶端:負責連接郵箱服務器,獲取郵件列表、詳情和附件

  • 郵件解析器:使用 mailparser 解析覆雜的電子郵件格式

  • 內容處理:智能處理HTML和純文本內容,並支持分段加載大型郵件

  • 聯系人提取:從郵件歷史中自動提取和整理聯系人信息

  • 連接測試:內置SMTP連接測試功能,可驗證郵件服務器配置

每個郵件操作都被封裝為標準化的 MCP 工具,接收結構化參數並返回格式化結果。所有數據都經過處理,以確保以人類可讀的格式呈現,使 AI 模型能夠輕松理解電子郵件的內容結構。


由 kino_lian 開發維護

Available Tools

18 tools
deleteEmailA

Delete a specific email from a folder using its UID. Permanently removes the email from the mail server.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
folderNoINBOX

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does the most important part: it explicitly states 'Permanently removes the email from the mail server,' which is the destructive semantics an agent must know. It omits auth/permission requirements, error behavior for invalid UIDs, and whether the UID is folder-scoped.

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?

Two short, front-loaded sentences with zero filler. However, the second sentence could be folded in or expanded to add the missing usage context rather than just repeating the verb.

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 destructive two-parameter tool with no annotations and no output schema, the description covers the critical destructiveness but leaves gaps: no permissions, no error cases, no sibling routing. Adequate but clearly incomplete for a delete operation.

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 0%, so the description should compensate, but it only restates that a UID identifies the email. It adds no clarity on whether the UID is IMAP message UID (which is folder-relative), and says nothing about the folder parameter or its INBOX default.

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?

Specific verb+resource ('Delete a specific email'), scoped by folder and UID, and clearly distinguished from siblings like moveEmail, markAsRead, and getEmailDetail. An agent can tell this is destructive deletion, not archival or flagging.

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, no alternatives named, no preconditions. The description doesn't say to prefer moveEmail for recoverable operations or that this is irreversible, leaving the agent to infer context.

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

getAttachmentC

Download and view email attachments by email UID and attachment index. Supports various attachment types with content preview capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
folderNoINBOX
saveToFileNo
attachmentIndexYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It omits the important behavior that saveToFile defaults to true, meaning the call writes a file to disk by default, plus any auth requirements, size limits, or unsupported attachment types despite the vague 'supports various attachment types' claim.

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?

Two short sentences, front-loaded with the core action and lookup keys, with no filler. It is efficient, though the trailing 'content preview capabilities' is a soft claim that adds little.

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 4-parameter tool with no annotations, no output schema, and 0% schema coverage, the description is too thin. It does not say what is returned, how previews work, what saveToFile does, or what happens on failure, which an agent needs before calling a tool that writes files by default.

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

Parameters2/5

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

Schema description coverage is 0% and the description explains only the two required parameters it already names, adding no format or constraint detail. It says nothing about 'folder' (default INBOX) or the side-effecting 'saveToFile' default, leaving half the parameters undocumented in both places.

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?

States a specific verb ('Download and view') plus resource ('email attachments') and even the lookup keys (email UID and attachment index). It is clear what the tool does, though it never contrasts itself with the obvious sibling getEmailDetail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance on when to use this versus getEmailDetail (which likely also exposes attachments) or versus downloading a whole message. The only usage cue is the implied 'you need the UID and index', which is not a when-to-use rule.

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

getContactsC

Extract contact information from email history with frequency analysis. Searches through email addresses and provides contact usage statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxResultsNo
searchTermNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It implies a read-only search and mentions frequency analysis/usage statistics, but it does not state permissions, side effects, return format, or pagination behavior. The gaps are significant for a tool with no structured hints.

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 two sentences and front-loads the core purpose. The second sentence partially restates the first but adds 'usage statistics', so it is mostly efficient with minor redundancy.

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

Completeness2/5

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

Given the lack of annotations, output schema, and parameter descriptions, the description is incomplete. It does not explain what 'frequency analysis' returns, how results are ordered, or how the searchTerm and maxResults parameters affect behavior.

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

Parameters1/5

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

Schema description coverage is 0% for two parameters (maxResults, searchTerm). The description does not mention these parameters at all, so it completely fails to compensate for the missing schema documentation.

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 verb ('Extract') and resource ('contact information from email history') and adds a distinctive feature ('frequency analysis'). It is clear enough to distinguish from siblings like sendMail or listEmails, though it does not 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?

The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or context. It only states what the tool does, leaving the agent to infer usage.

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

getEmailDetailB

Get detailed information about a specific email including full content, headers, attachments list. Supports content range limiting for large emails.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
folderNoINBOX
contentRangeNo

TDQS

B3/5.0
Behavior3/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 does disclose that content can be limited via a content range for large emails, which is useful behavioral context, and hints at the returned payload (content, headers, attachments list). However it says nothing about permissions/auth, whether this is a pure read, error behavior for invalid uids, or pagination beyond the range limit.

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?

Two compact sentences with the core purpose front-loaded and no filler. Slightly generic wording ('detailed information'), but every clause carries information about either scope or the range-limiting capability.

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?

With no output schema, the description must convey return shape; it does so partially by naming content, headers, and attachments list, but omits item-level structure and the effect of range limiting on truncation. Combined with 0% parameter coverage and no annotations, the definition is adequate but leaves real gaps an agent must guess at.

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

Parameters2/5

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

Schema description coverage is 0% across three parameters. The description only touches contentRange ('content range limiting'), leaving folder (default INBOX) and uid entirely undocumented, and it does not explain the nested start/end semantics or defaults within contentRange. It therefore compensates for only a fraction of the missing schema documentation.

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?

States a specific verb+resource (get detailed info about a specific email) and enumerates what is returned: full content, headers, attachments list. It does not differentiate from siblings like getAttachment (which also retrieves attachment content) or listEmails/searchEmails, leaving the boundary between 'detail' and 'list/search' 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?

There is no explicit when-to-use guidance. The description implies the tool targets one specific email (requiring a uid) but never tells the agent how this differs from searchEmails or listEmails, nor when to prefer getAttachment for attachment retrieval. No prerequisites or exclusions are stated.

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

listEmailsB

List emails from a specific folder with pagination and read status filtering. Returns email summaries including subject, sender, date, and read status.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNo
fromNo
limitNo
folderNoINBOX
toDateNotoDate must be a valid ISO 8601 datetime string. e.g. 2025-08-21T00:00:00Z
subjectNo
fromDateNofromDate must be a valid ISO 8601 datetime string. e.g. 2025-08-21T00:00:00Z
readStatusNoall
hasAttachmentsNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the return shape (subject, sender, date, read status). However, it omits pagination mechanics (only a 'limit' is mentioned, no offset/cursor) and any permission or rate-limit context, which matters for a 9-parameter listing tool.

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

Conciseness4/5

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

Two tight sentences that front-load the operation and then the result shape, with no filler. Slightly compact given the schema's complexity, but nothing is wasted.

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 9-parameter tool with no output schema and no annotations, the description covers the core operation and return fields but leaves most parameters and pagination semantics unexplained. It is minimally adequate rather than complete.

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

Parameters2/5

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

Schema description coverage is only 22%, so the description must compensate, yet it only touches folder, limit, and readStatus. The sender/recipient, subject, date-range, and hasAttachments parameters (which include an ISO 8601 format requirement) get no mention in the description.

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?

States a specific verb and resource ('List emails from a specific folder') and adds scope qualifiers (pagination, read status filtering). It does not, however, distinguish itself from the sibling searchEmails, so an agent must infer which listing tool applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when the tool is useful (listing a folder's contents with filtering) but never states when to prefer it over searchEmails or getEmailDetail, and gives no prerequisites. Usage 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.

listFoldersB

List all available email folders/mailboxes in the email account. Returns folder names and hierarchy for navigation.

ParametersJSON Schema
NameRequiredDescriptionDefault
random_stringNo

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. The verb 'List' implies a read-only, non-mutating operation and the description states the return shape, but it omits any mention of authentication needs, pagination, rate limits, or whether the operation has side effects.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and followed by the return value. Every sentence earns its place and there is no padding.

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 list tool with no output schema and no annotations, the description explains the purpose and return contents adequately. However, it leaves the lone schema parameter undocumented and gives no usage context, so it is only minimally complete.

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

Parameters2/5

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

There is one parameter ('random_string') with 0% schema description coverage, and the description does not mention it at all. With such low coverage, the description should compensate by explaining parameter meaning, but it provides no parameter guidance.

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 gives a specific verb ('List') and resource ('email folders/mailboxes'), and its scope is clearly distinct from sibling tools such as listEmails and searchEmails. It also states the returned content (folder names and hierarchy), so an agent can identify the tool's purpose 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?

It implies a use case ('for navigation') but provides no explicit when-to-use guidance, no alternatives, and no conditions that distinguish it from listEmails or searchEmails. An agent gets only a vague contextual hint, not routing instructions.

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

markAsReadC

Mark a specific email as read using its UID. Updates the read status flag on the email server.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
folderNoINBOX

TDQS

C2.8/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 the server-side flag update, but omits permissions, reversibility, idempotency, error handling, and what happens if the UID is invalid or missing.

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 tight sentences, front-loaded with the core action and effect. Every sentence earns its place with no redundancy.

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, no output schema, and 0% schema description coverage, the description is too thin for a mutation tool. It should at least explain the folder parameter, likely side effects, and failure behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions uid but omits the optional folder parameter, its default of INBOX, and any clarification of what UID means or how folder affects the operation.

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?

States a specific verb+resource: mark a specific email as read using its UID. The singular 'specific email' implicitly distinguishes it from markMultipleAsRead, but no sibling alternative is named explicitly, preventing a 5.

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 or when-not-to-use guidance. It does not mention alternatives like markAsUnread or markMultipleAsRead, nor does it explain folder selection or prerequisites.

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

markAsUnreadC

Mark a specific email as unread using its UID. Updates the unread status flag on the email server.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
folderNoINBOX

TDQS

C2.8/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 discloses that the change is pushed to the email server (a remote mutation rather than a local flag), which is useful, but says nothing about idempotency, required permissions, or what happens on an invalid UID.

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?

Two tight sentences with the core action front-loaded and no filler. Nothing is redundant, though there is very little content for the length to be praised further.

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 two-parameter flag toggle with no output schema, the description covers the essential action. It falls short on the folder scoping parameter and on failure behavior, which an agent would want before invoking a server-side mutation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, and it does not. It references the UID only as an identifier ('using its UID') with no format or validity notes, and the 'folder' parameter (default INBOX) is never mentioned at all.

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?

States a specific verb and resource ('Mark a specific email as unread'), and the phrase 'a specific email' implicitly separates it from the sibling markMultipleAsUnread. It stops short of naming that sibling, so the differentiation is inferable rather than explicit.

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, no prerequisites, and no mention of the obvious alternatives (markAsRead, markMultipleAsUnread). The agent must infer from the name alone when this is the right tool.

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

markMultipleAsReadC

Mark multiple emails as read using their UIDs. Batch operation for efficiently updating read status of several emails at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidsYes
folderNoINBOX

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 carries the full behavioral burden. It discloses only that this is a batch mutation; it says nothing about behavior for unknown/invalid UIDs, idempotency of re-marking already-read mail, required auth, or whether folder changes the target set. For an unannotated write tool this is a significant gap.

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?

Two short sentences with zero filler, front-loading the action and identifier mechanism. It is efficiently sized, though the second sentence is somewhat redundant with the first.

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 batch mutation with no annotations, no output schema, and 0% parameter description coverage, the description should explain folder targeting, invalid-UID behavior, and return/result semantics. It leaves all of these unspecified.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate and largely fails. It mentions UIDs but gives no format, type, or batching limits, and it never mentions the optional `folder` parameter or its 'INBOX' default, leaving a full parameter undocumented in both places.

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?

States a specific verb ('mark as read') and resource ('multiple emails'), and the phrase 'multiple emails ... batch operation' implicitly distinguishes it from the single-item sibling markAsRead. It stops short of naming the sibling or the folder scope, so differentiation is inferable rather than explicit.

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?

'Batch operation for efficiently updating read status of several emails at once' implies the use case (many emails), which quietly distinguishes it from markAsRead. However, it never states when to prefer this over markAsRead/markAsUnread, nor any prerequisites or exclusions.

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

markMultipleAsUnreadC

Mark multiple emails as unread using their UIDs. Batch operation for efficiently updating unread status of several emails at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidsYes
folderNoINBOX

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description bears full burden. It says 'batch operation' and 'efficiently updating', but does not disclose whether changes are reversible, whether UIDs must be valid, error behavior for partial failures, or permission requirements. Minimal behavioral context.

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?

Two concise sentences, front-loaded with the action and mechanism. No wasted words, though it repeats 'unread' and 'batch' without adding new 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, no output schema, and 0% parameter description coverage, the description omits critical operational details: how UIDs map to emails, what happens if a UID is invalid, whether the operation is atomic, and how the folder parameter affects scope. Incomplete for a mutation tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'using their UIDs' and implies a folder context but does not explain that 'uids' is an array of numbers or that 'folder' defaults to INBOX. The schema names the parameters but lacks descriptions, and the description adds no format or default details.

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?

States a specific verb (mark) and resource (emails as unread) and specifies batch scope via UIDs. Distinguishes from single-item sibling markAsUnread implicitly through 'multiple' and 'batch', though it doesn't explicitly name the sibling.

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?

Implies use when updating multiple emails at once, but gives no explicit when-to-use versus markAsUnread or markMultipleAsRead, no preconditions (e.g., folder must exist or default to INBOX).

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

moveEmailC

Move an email from one folder to another using its UID. Useful for organizing emails into different mailbox folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
sourceFolderYes
targetFolderYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. It does not disclose whether the move is destructive to the source folder, whether it requires specific permissions, whether the email is copied or truly moved, or what happens on UID conflicts.

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?

Two short sentences, front-loaded with the primary action. No wasted words, though the second sentence ('Useful for organizing...') adds little informational value.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and 0% parameter description coverage, the description is inadequate. It omits critical operational details such as folder identifier format, error conditions, and side effects.

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

Parameters2/5

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

Schema description coverage is 0% for 3 required parameters. The description does not explain what sourceFolder and targetFolder should contain (names vs. paths vs. IDs), nor does it clarify the UID type or format. The description only restates the obvious parameter purpose.

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?

States a specific verb and resource ('Move an email') and the identifier used ('UID'). It is distinguishable from sibling tools like deleteEmail, but it does not explicitly differentiate itself from other folder-management siblings such as listFolders.

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 offers a vague purpose ('Useful for organizing emails'), but provides no when-to-use/when-not-to-use guidance and does not mention alternatives like deleteEmail or searchEmails. There is no routing guidance for the agent.

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

searchEmailsC

Search for emails across multiple folders using keywords, date ranges, sender/recipient filters. Provides comprehensive email search capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNo
fromNo
endDateNoendDate must be a valid ISO 8601 datetime string. e.g. 2025-08-21T00:00:00Z
foldersNoBy default, this parameter is not given. Give the user an array of folders to search, for example ['INBOX', 'BACKUP']
subjectNo
keywordsNo
startDateNostartDate must be a valid ISO 8601 datetime string. e.g. 2025-08-21T00:00:00Z
maxResultsNo
includeBodyNo
hasAttachmentNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says nothing about pagination behavior despite a maxResults default of 50, nothing about the cost/effect of includeBody=true, and nothing about result ordering or whether the search is read-only. Only the verb 'Search' weakly implies a non-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.

Conciseness3/5

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

The first sentence is well front-loaded and dense with the filter vocabulary. The trailing sentence is pure filler that repeats the purpose without adding information, dragging the structure down.

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?

A 10-parameter tool with 0 required params, 30% schema coverage, no annotations, and no output schema needs more than two sentences. An agent cannot tell what the defaults do, what the return shape is, or how to disambiguate from listEmails.

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 30%, so the description must compensate. It names keywords, date ranges, and sender/recipient filters, which maps to roughly half the parameters, but omits subject, maxResults, includeBody, and hasAttachment entirely — those are undocumented in both places. Partial compensation only.

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 gives a specific verb (Search) and resource (emails) plus the filter dimensions it accepts: keywords, date ranges, sender/recipient. However, it never differentiates itself from the sibling listEmails, which an agent would reasonably confuse it with. The second sentence ('Provides comprehensive email search capabilities') is a restatement that adds nothing.

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 versus listEmails or getEmailDetail, no mention of prerequisites, and no exclusions. The phrase 'across multiple folders' implies the scope but the agent must infer that unfiltered listing belongs to a different tool.

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

sendBulkMailB

Send bulk emails to multiple recipients with automatic batching and rate limiting. Supports text, HTML content, and attachments. Processes recipients in batches to avoid server limits.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYes
bccNo
htmlNo
textNo
subjectYes
attachmentsNo

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 must carry behavioral disclosure, and it does add real value by stating that batching and rate limiting are automatic and that server limits are respected. However, it omits critical bulk-send semantics: whether one message is sent with many recipients or individual messages, what happens on partial failure, and permission requirements.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core action and capability list. The final sentence ('Processes recipients in batches to avoid server limits') largely restates the 'automatic batching' already stated, so a small amount of redundancy exists.

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 7-parameter mutation tool with no annotations and no output schema, the description covers the headline behavior adequately but leaves return shape, per-recipient error reporting, and partial-failure handling unaddressed, which an agent needs to invoke and interpret bulk sends 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 0% across 7 parameters, so the description must compensate. It covers the recipients, text, HTML, and attachments concepts, but leaves cc, bcc, and subject entirely unexplained, and gives no format guidance such as attachment encoding or address syntax.

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?

Specific verb+resource+scope: 'Send bulk emails to multiple recipients' clearly identifies the operation and differentiates itself from sendMail/sendHtmlMail via the 'bulk' framing. It stops short of naming the siblings it competes with, so it is clear but not fully disambiguating.

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?

Use for bulk/multi-recipient sending is implied by the description and the 'to' array, but there is no explicit statement of when to prefer this over sendMail, sendHtmlMail, or sendSimpleMail, and no exclusions such as message-count limits threshold.

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

sendHtmlMailC

Send an HTML-formatted email to a single recipient with support for CC, BCC, and file attachments. Ideal for rich content emails.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYes
bccNo
htmlYes
subjectYes
attachmentsNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that email is sent and that CC, BCC, and attachments are supported, but it does not disclose authentication needs, immediate-delivery side effects, error behavior, rate limits, or whether sending is reversible.

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 two sentences and front-loads the core operation before the secondary use-case sentence. It is appropriately short, though 'Ideal for rich content emails' adds little beyond the first sentence.

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?

This is a six-parameter mutation tool with nested attachment objects and no output schema or annotations. The description is too thin for that complexity: it does not explain address formats, attachment payload expectations, SMTP/delivery behavior, or failure modes.

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

Parameters2/5

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

Schema description coverage is 0% for six parameters. The description mentions recipients, CC, BCC, attachments, and HTML content, but it omits subject semantics, address formatting (especially whether CC/BCC accept multiple addresses), and attachment content encoding or contentType usage. It does not compensate for the complete lack of schema descriptions.

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 gives a specific verb and resource: 'Send an HTML-formatted email' to a single recipient. It partially distinguishes from siblings by contrasting single-recipient sending with bulk mail and HTML content with simple mail, but it does not explicitly name sendSimpleMail or sendMail as 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?

'Ideal for rich content emails' is a weak implied-use statement. There is no explicit guidance on when to choose this over sendMail or sendSimpleMail, no when-not guidance, and no prerequisites such as SMTP configuration or authentication.

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

sendMailC

Send emails to one or more recipients with support for CC, BCC, text/HTML content, and file attachments. Provides comprehensive email sending functionality.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYes
bccNo
htmlNo
textNo
subjectYes
useHtmlNo
attachmentsNo

TDQS

C2.8/5.0
Behavior2/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, but it only states the basic action. It does not mention side effects, permissions, rate limits, failure behavior, or return format. This is a significant gap for a mutation/side-effect tool.

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

Conciseness3/5

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

The first sentence is dense and front-loaded with useful feature information. The second sentence, 'Provides comprehensive email sending functionality', is largely redundant and does not earn its place. The definition could be trimmed without losing meaning.

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

Completeness2/5

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

Given the tool's complexity (8 parameters, no annotations, no output schema, 0% schema coverage), the description is too thin. It lacks behavioral details, parameter specifics, and usage guidance that an agent would need to invoke the tool correctly. It provides only a high-level overview.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for 8 parameters. It does list several features (CC, BCC, text/HTML, attachments) that map to parameters, but it omits explicit explanations for 'useHtml', 'contentType', and the required 'subject' field. It adds some meaning beyond the bare schema but does not fully cover all parameters.

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 verb and resource: 'Send emails to one or more recipients'. It also enumerates supported features (CC, BCC, text/HTML, attachments), making the tool's scope clear. However, it does not explicitly differentiate itself from sibling tools like sendBulkMail, sendHtmlMail, or sendSimpleMail, so sibling differentiation is missing.

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 such as sendBulkMail or sendSimpleMail. It only implies usage by stating what it does. There are no exclusions, prerequisites, or contextual cues for selection.

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

sendSimpleMailB

Send a simple text email to a single recipient. A simplified version of sendMail for quick, basic email sending.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
bodyYes
subjectYes

TDQS

B3/5.0
Behavior2/5

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

No annotations, so the description carries the full burden. It doesn't state whether this requires authenticated SMTP configuration, what happens on failure, whether a copy is saved to Sent, or any rate limits. For a side-effectful send operation, this is a significant gap.

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 short sentences, front-loaded with the primary action and scope. No filler.

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 mutation tool with no annotations, no output schema, and 0% parameter documentation, the description is too thin. It doesn't compensate for missing schema descriptions or explain the behavior relative to its many siblings.

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

Parameters2/5

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

Schema description coverage is 0% – the three required params (to, subject, body) have no descriptions in the schema. The description adds no format details (e.g., whether 'to' accepts a display name, comma-separated lists, or whether body supports plain-text only). It says 'text email' but doesn't clarify plain vs. rich text. Must compensate but doesn't.

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?

Clear verb+resource+scope: 'Send a simple text email to a single recipient.' Distinguishes itself from sendBulkMail/sendHtmlMail via 'single recipient' and 'text'. However, it doesn't explicitly reference the sibling sendMail it is a 'simplified version' of, leaving the exact delta (attachments? cc? html?) ambiguous.

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?

Implies usage via 'quick, basic email sending' but no explicit when-to-use/when-not. The agent could reasonably pick sendMail or sendHtmlMail under the same conditions. No exclusions or prerequisites stated.

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

testSmtpConnectionA

Test the SMTP server connection and authentication. Validates email server configuration and provides troubleshooting information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool validates configuration and provides troubleshooting information, but does not say whether it makes a live network call, whether it can fail with side effects, or what the troubleshooting output looks like.

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?

Two concise sentences that front-load the core action and then add the benefit. No wasted words, though it could be slightly more specific.

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 diagnostic tool with no annotations and no output schema, the description is adequate but thin. It does not explain what constitutes success/failure, what troubleshooting detail is returned, or any prerequisites like server config being set.

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?

Zero parameters, so baseline is 4. The schema is empty and there are no args to clarify, so no further parameter semantics are 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?

States a specific verb+resource: testing the SMTP server connection and authentication. It is distinguishable from siblings like sendMail or sendBulkMail that actually send mail, though it does not explicitly contrast with them.

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?

Implies usage (validating email server configuration) but gives no explicit when-to-use or when-not-to-use guidance. Does not tell the agent to call this before sending mail, or when to prefer it over sendMail for diagnosing issues.

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

waitForReplyC

Wait for new email replies in a specific folder for a specified timeout period. Monitors for incoming emails and returns them when detected.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoINBOX
timeoutNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose the key trait that this is a blocking monitor that returns messages when detected. However, it omits critical behavior: the timeout's unit/scale (the schema default of 10800000 is almost certainly 3 hours), what happens when the timeout expires, and whether the call blocks the session.

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?

Two short sentences, front-loaded with the core action. The second sentence partly restates the first ('monitors... returns them when detected' overlaps 'wait for new email replies'), a minor redundancy.

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 blocking long-poll tool with no annotations, no output schema, and 0% parameter coverage, the description is thin. It should at minimum clarify timeout units, default behavior, and the result on timeout expiry, none of which appear.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It alludes to both parameters (folder, timeout) but adds no meaning beyond the schema's property names — no unit for timeout, no note that folder defaults to INBOX, no format for the folder identifier.

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?

States a specific verb (wait for) and resource (new email replies) plus the scope (specific folder, timeout period). It is clearly distinguishable from the send/list/search siblings, though it never names or contrasts with them.

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 given. An agent cannot tell whether to call this instead of listEmails/searchEmails polling, nor under what circumstances a blocking wait is appropriate.

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. 18 tool updatesv1.0.9
    • First observeddeleteEmail
    • First observedgetAttachment
    • First observedgetContacts
    • First observedgetEmailDetail
    • First observedlistEmails
    • First observedlistFolders
    • First observedmarkAsRead
    • First observedmarkAsUnread
    • First observedmarkMultipleAsRead
    • First observedmarkMultipleAsUnread
    • First observedmoveEmail
    • First observedsearchEmails
    • First observedsendBulkMail
    • First observedsendHtmlMail
    • First observedsendMail
    • First observedsendSimpleMail
    • First observedtestSmtpConnection
    • First observedwaitForReply

TDQS

B3.2/5.0

Scored across 18 tools

Disambiguation3/5

The four send tools (sendMail, sendSimpleMail, sendHtmlMail, sendBulkMail) overlap heavily, with sendSimpleMail and sendHtmlMail being functional subsets of sendMail, so an agent may struggle to pick the right one. The remaining tools (list/search/get/delete/move/mark/attachment/folder) are otherwise clearly distinct.

Naming Consistency5/5

All 18 tools use consistent camelCase verb_noun naming (sendMail, listEmails, getEmailDetail, deleteEmail, markAsRead, testSmtpConnection). Verb styles (send/list/get/delete/move/mark/test) are predictable and the Email/Emails variation is trivial.

Tool Count4/5

18 tools is on the heavy side for an email server, and the count is partly inflated by four redundant send variants. Still, most tools map to genuine, distinct email operations, so it stays reasonable rather than bloated.

Completeness4/5

Coverage is broad: send, list, search, detail, delete, move, attachments, folders, read/unread marking, contacts, reply waiting, and SMTP testing. Minor gaps remain (folder creation/deletion, draft management, explicit reply/forward), but core workflows are covered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI to send, read, search, delete and reply to emails through SMTP or Gmail API, supporting common email services like QQ, 163, Gmail and Outlook with HTML/text formats and attachments.
    19 npm
    1
    ISC
  • 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
    209 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
    6 npm
    1
    MIT