Skip to main content
Glama

@multimail/mcp-server

MultiMail을 위한 MCP 서버입니다. 에이전트에게 자체 이메일 주소를 부여하고, 완전한 승인부터 자율 발송까지 단계별 인간 감독 기능을 제공합니다.

빠른 시작

npx @multimail/mcp-server

전체 액세스 권한을 얻으려면 MULTIMAIL_API_KEY를 설정하거나, 먼저 계정을 생성하려면 키 없이 실행하세요. multimail.dev에서 키를 받을 수 있습니다.

MultiMail을 사용함으로써 귀하는 서비스 약관 및 허용 가능한 사용 정책에 동의하게 됩니다.

Related MCP server: MCP Email Server

시작하기

아직 계정이 없으신가요? 두 가지 옵션이 있습니다:

옵션 A: 브라우저 가입 (권장, 60초 소요)

  1. multimail.dev/pricing으로 이동합니다.

  2. Get started free(또는 유료 플랜 선택)를 클릭합니다.

  3. 에이전트가 수행할 작업과 감독 모드를 선택합니다.

  4. 이메일에서 활성화 코드를 확인합니다.

  5. 아래 MCP 설정에 API 키를 추가합니다.

옵션 B: 원격 MCP 서버 (OAuth를 통한 자동 가입)

MCP 클라이언트에 이를 추가하세요. 처음 연결할 때 브라우저에서 가입이 진행됩니다:

{
  "mcpServers": {
    "multimail": {
      "type": "url",
      "url": "https://mcp.multimail.dev/mcp"
    }
  }
}

가입 후: 사서함 구성

처음 사용할 때 MultiMail은 사서함 구성을 요청합니다. configure_mailbox 도구를 사용하여 명시적으로 실행할 수도 있습니다:

  • 감독 모드: 인간의 승인이 필요한 정도 (gated_send, monitored, autonomous 등)

  • 표시 이름: 이메일에 표시되는 발신자 이름

  • CC/BCC 기본값: 모든 발신 이메일에 자동으로 주소 참조

  • 예약: 예약 발송 활성화/비활성화 및 기본 게이트 시간 설정

  • 서명: 이메일 서명 블록

이 단계를 건너뛰면 첫 도구 호출 시 MultiMail이 알림을 보냅니다.

설정

옵션 A: 원격 서버 (권장)

설치가 필요 없습니다. 호스팅된 서버에 직접 연결하세요. 브라우저에서 OAuth를 통해 인증합니다.

{
  "mcpServers": {
    "multimail": {
      "type": "url",
      "url": "https://mcp.multimail.dev/mcp"
    }
  }
}

Claude.ai, Claude Desktop, Claude Code 및 원격 MCP 서버를 지원하는 모든 클라이언트에서 작동합니다.

옵션 B: 로컬 서버 (stdio)

서버를 로컬에서 실행합니다. API 키는 환경 변수로 전달됩니다.

{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "mm_live_...",
        "MULTIMAIL_MAILBOX_ID": "01KJ1NHN8J..."
      }
    }
  }
}

추가 위치

클라이언트

설정 파일

Claude Code

~/.claude/.mcp.json

Claude Desktop

claude_desktop_config.json

Cursor

프로젝트 내 .cursor/mcp.json

Windsurf

~/.codeium/windsurf/mcp_config.json

Copilot (VS Code)

프로젝트 내 .vscode/mcp.json

OpenCode

프로젝트 내 mcp.json

ChatGPT Desktop

설정 > MCP Servers

모든 MCP 클라이언트

클라이언트 문서에서 설정 위치 확인

환경 변수

변수

필수 여부

설명

MULTIMAIL_API_KEY

전체 액세스에 필수. 설정 지침을 보려면 키 없이 실행하거나, 자동 OAuth 가입을 위해 원격 서버를 사용하세요.

귀하의 MultiMail API 키 (mm_live_...)

MULTIMAIL_MAILBOX_ID

아니요

기본 사서함 ID. 설정하지 않으면 각 도구에 mailbox_id를 전달하거나 먼저 list_mailboxes를 호출하세요.

MULTIMAIL_API_URL

아니요

API 기본 URL. 기본값은 https://api.multimail.dev입니다.

도구

도구

설명

list_mailboxes

이 API 키로 사용할 수 있는 모든 사서함 나열

configure_mailbox

사서함 기본 설정(감독 모드, 표시 이름, CC/BCC, 예약, 서명) 구성

send_email

마크다운 본문으로 이메일 발송. 첨부 파일, idempotency_key, 예약 발송을 위한 send_at 지원

check_inbox

상태, 발신자, 제목, 날짜 범위, 방향, 첨부 파일, 커서 페이지네이션 필터로 이메일 나열

read_email

전체 이메일 내용 가져오기. 신뢰할 수 있는 메타데이터와 신뢰할 수 없는 본문을 별도의 콘텐츠 블록으로 반환

reply_email

기존 스레드의 이메일에 답장. 첨부 파일 및 idempotency_key 지원

download_attachment

이메일 첨부 파일을 콘텐츠 유형과 함께 base64로 다운로드

get_thread

참여자 및 메타데이터와 함께 대화 스레드의 모든 이메일 가져오기

cancel_message

보류 중이거나 예약된 이메일 취소

schedule_email

필수 send_at 시간과 함께 향후 발송을 위해 이메일 예약. 발송 전 수정 또는 취소 가능

edit_scheduled_email

발송 전 예약된 이메일의 발송 시간, 수신자, 제목 또는 본문 수정

update_mailbox

사서함 설정(표시 이름, 감독 모드, 서명, 웹훅) 업데이트

update_account

계정 설정(조직 이름, 감독 이메일, 실제 주소) 업데이트

delete_mailbox

사서함 영구 삭제 (관리자 권한 필요)

request_challenge

계정 생성을 위한 ALTCHA 작업 증명 챌린지 요청 (API 키 불필요)

create_account

해결된 PoW 챌린지로 새 계정 생성 (API 키 불필요)

resend_confirmation

새 코드로 활성화 이메일 재발송 (API 키 불필요)

activate_account

확인 이메일의 코드를 사용하여 계정 활성화 (API 키 불필요)

tag_email

이메일에 키-값 태그 설정, 가져오기 또는 삭제 (지속적인 에이전트 메모리)

add_contact

선택적 태그와 함께 주소록에 연락처 추가

search_contacts

이름 또는 이메일로 주소록 검색

get_account

계정 상태, 플랜, 할당량, 발송 활성화 여부, 시행 등급 확인

create_mailbox

새 사서함 생성 (관리자 권한 필요)

request_upgrade

감독 모드 업그레이드 요청 (신뢰 단계)

apply_upgrade

운영자로부터 받은 업그레이드 코드 적용

get_usage

청구 기간에 대한 할당량 및 사용 통계 확인

list_pending

감독 결정을 기다리는 이메일 나열 (감독 권한 필요)

decide_email

보류 중인 이메일 승인 또는 거부 (감독 권한 필요)

report_spam

이메일을 스팸으로 표시하고 격리함으로 이동

not_spam

스팸 이메일을 읽지 않음으로 복원하고 스팸 아님으로 레이블 지정

list_spam

스팸으로 표시되고 격리된 이메일 나열

delete_contact

주소록에서 연락처 삭제

check_suppression

수신 거부된 이메일 주소 나열

remove_suppression

수신 거부 목록에서 주소 제거

list_api_keys

모든 API 키 나열 (관리자 권한 필요)

create_api_key

범위가 지정된 새 API 키 생성 (관리자 권한 + 운영자 승인 필요; 자체 승인을 방지하기 위해 send+oversight 조합은 거부됨)

revoke_api_key

API 키 취소 (관리자 권한 필요)

get_audit_log

계정 감사 로그 가져오기 (관리자 권한 필요)

delete_account

계정 및 모든 데이터 영구 삭제 (관리자 권한 필요)

wait_for_email

필터와 일치하는 새 이메일이 도착하거나 시간 초과(최대 120초)될 때까지 차단

create_webhook

실시간 이메일 이벤트 알림을 위한 웹훅 구독 생성

list_webhooks

이 계정에 대한 모든 웹훅 구독 나열

delete_webhook

웹훅 구독 삭제

작동 방식

  • 이메일 본문은 마크다운으로 작성합니다. MultiMail은 발송을 위해 서식이 지정된 HTML로 변환합니다.

  • 수신 이메일은 깔끔한 마크다운으로 도착합니다. HTML 파싱이나 MIME 디코딩이 필요 없습니다.

  • 스레딩은 자동으로 이루어집니다. 이메일에 답장하면 헤더가 올바르게 설정됩니다.

  • 발송 시 이메일이 위협 요소에 대해 스캔되는 동안 pending_scan 상태를 반환합니다. 사서함이 게이트 감독을 사용하는 경우, 상태는 인간 검토를 위해 pending_send_approval로 전환됩니다. 재시도하거나 다시 보내지 마십시오.

  • 수신된 이메일의 서명된 X-MultiMail-Identity 헤더를 확인하여 다른 에이전트를 검증하세요.

개발

npm install
npm run dev   # Run with tsx (no build needed)
npm run build # Compile TypeScript
npm start     # Run compiled version

테스트

echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | MULTIMAIL_API_KEY=mm_live_... node dist/index.js

라이선스

MIT

Available Tools

7 tools
check_inboxAInspect

List emails in your inbox. Returns email summaries including id, from, to, subject, status, received_at, and has_attachments. Does NOT include the email body — call read_email with the email ID to get the full message content.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by email status (default: all)
mailbox_idNoMailbox ID (uses MULTIMAIL_MAILBOX_ID env var if not provided)

TDQS

A4.2/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 effectively describes the return format (email summaries with specific fields) and clarifies what is not included (email body), which is valuable context. However, it lacks details on potential behavioral traits like pagination, rate limits, authentication requirements, or error handling, leaving some gaps for a tool with no 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 front-loaded with the core purpose in the first sentence, followed by essential details on return values and tool differentiation. Every sentence adds value—clarifying included fields, excluded content, and when to use alternatives—with no redundant or unnecessary information, making it highly efficient and well-structured.

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

Completeness4/5

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

Given the tool's moderate complexity (listing emails with filtering), no annotations, and no output schema, the description does a good job by specifying the return format and tool differentiation. However, it could be more complete by mentioning potential limitations (e.g., pagination, default sorting) or error scenarios, which would help an agent use it more effectively in varied contexts.

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 schema description coverage is 100%, so the schema already documents both parameters ('status' and 'mailbox_id') with descriptions and enum values. The description does not add any parameter-specific information beyond what the schema provides, such as default behaviors or usage examples. This meets the baseline of 3 for high schema coverage without additional param details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the specific action ('List emails in your inbox') and resource ('emails'), distinguishing it from siblings like 'read_email' (which gets full content) and 'list_mailboxes' (which lists mailboxes rather than emails). It provides precise scope by mentioning what's included (summaries with specific fields) and what's excluded (email body).

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('List emails in your inbox') versus alternatives ('call read_email with the email ID to get the full message content'), providing clear guidance on tool selection. It differentiates from 'read_email' by specifying that this tool returns summaries only, not full content.

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

list_mailboxesAInspect

List all mailboxes available to this API key. Returns each mailbox's ID, email address, oversight mode, and display name. Use this to discover your mailbox ID if MULTIMAIL_MAILBOX_ID is not set.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/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 full burden. It discloses what the tool returns ('Returns each mailbox's ID, email address, oversight mode, and display name'), which is valuable behavioral information. However, it doesn't mention potential limitations like pagination, rate limits, or authentication requirements, leaving some gaps.

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 perfectly concise with two sentences: the first states purpose and return values, the second provides usage guidance. Every word earns its place, and the structure is front-loaded with the core functionality.

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

Completeness4/5

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

Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is quite complete. It explains what the tool does, what it returns, and when to use it. The only minor gap is the lack of output format details, but for a list operation this is acceptable.

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 0 parameters with 100% schema description coverage, so the baseline would be 4. The description appropriately doesn't discuss parameters since there are none, which is correct and efficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the specific action ('List all mailboxes') and resource ('available to this API key'), distinguishing it from sibling tools like check_inbox or read_email which operate on specific mailboxes rather than listing them. It provides a concrete purpose beyond just the tool name.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool: 'Use this to discover your mailbox ID if MULTIMAIL_MAILBOX_ID is not set.' This provides clear guidance on the primary use case and distinguishes it from alternatives like check_inbox which require a mailbox ID.

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

read_emailAInspect

Get the full content of a specific email, including the markdown body and attachment metadata. Automatically marks unread emails as read. Use the email ID from check_inbox results.

ParametersJSON Schema
NameRequiredDescriptionDefault
email_idYesThe email ID to read
mailbox_idNoMailbox ID (uses MULTIMAIL_MAILBOX_ID env var if not provided)

TDQS

A4.2/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 full burden of behavioral disclosure. It effectively describes key behaviors: it retrieves email content and 'Automatically marks unread emails as read,' which is a critical side effect not obvious from the tool name. It lacks details on error handling or rate limits, but covers the main operational behavior.

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 appropriately sized and front-loaded, with three concise sentences that each add value: the first states the purpose, the second reveals a key behavioral trait, and the third provides usage guidance. There is no wasted text.

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

Completeness4/5

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

Given the tool's moderate complexity (read operation with side effects), no annotations, and no output schema, the description is mostly complete. It covers purpose, behavior, and usage context, but lacks details on return values (e.g., structure of the response) and error conditions, which would be helpful for an agent.

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 already documents both parameters ('email_id' and 'mailbox_id') fully. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or usage tips, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the specific action ('Get the full content'), resource ('a specific email'), and scope ('including the markdown body and attachment metadata'). It distinguishes from siblings like 'check_inbox' (which lists emails) and 'send_email' (which sends emails).

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('Use the email ID from check_inbox results'), establishing a workflow dependency. However, it does not explicitly state when not to use it or name alternatives (e.g., vs. 'search_identity' for finding emails).

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

reply_emailAInspect

Reply to an email in its existing thread. Threading headers (In-Reply-To, References) are set automatically. The body is written in markdown. If the mailbox is in read_only mode, this returns a 403 error with upgrade instructions. If the mailbox uses gated oversight, the response status will be 'pending_approval' — the reply is queued for human review. Do not retry or resend when you see pending_approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
email_idYesThe email ID to reply to
markdownYesReply body in markdown format
ccNoCC email addresses
mailbox_idNoMailbox ID (uses MULTIMAIL_MAILBOX_ID env var if not provided)

TDQS

A4.2/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 full burden and does so well by disclosing key behavioral traits: automatic threading header handling, markdown body format, error responses (403 with upgrade instructions), and queuing behavior for gated oversight ('pending_approval' status). It does not cover all possible behaviors like rate limits or auth needs, but adds substantial context beyond basic functionality.

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 appropriately sized and front-loaded, starting with the core purpose and then adding critical behavioral details. Every sentence adds value, such as error handling and status warnings, with no wasted words or redundancy.

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

Completeness4/5

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

Given the complexity of an email reply tool with no annotations and no output schema, the description is mostly complete, covering purpose, usage context, and key behaviors. However, it lacks details on return values or success responses, which could be important for agent handling, preventing a perfect score.

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 already documents all parameters. The description does not add meaning beyond the schema, such as explaining parameter interactions or constraints. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the specific action ('Reply to an email in its existing thread') and resource ('email'), distinguishing it from siblings like 'send_email' (new email) and 'read_email' (viewing). It specifies that threading headers are handled automatically, which adds precision.

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

Usage Guidelines4/5

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

The description provides clear context for usage by mentioning error conditions (403 error for read-only mode, 'pending_approval' for gated oversight) and advising against retries in specific cases. However, it does not explicitly compare to alternatives like 'send_email' or state when not to use it, keeping it from a perfect score.

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

resend_confirmationAInspect

Resend the operator anti-spam confirmation email. Use this if the account is stuck in 'pending_operator_confirmation' status because the original confirmation email was lost or filtered. Rate limited to 1 request per 5 minutes. Only works for unconfirmed accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/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 full burden of behavioral disclosure. It effectively describes key behavioral traits: the rate limit ('Rate limited to 1 request per 5 minutes'), the precondition ('Only works for unconfirmed accounts'), and the specific use case (accounts stuck in pending_operator_confirmation). However, it doesn't mention error conditions or what happens after the email is resent.

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 perfectly concise with three sentences that each serve a distinct purpose: stating the action, providing usage context, and disclosing behavioral constraints. There is zero wasted text, and the most critical information (what the tool does) is front-loaded.

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

Completeness4/5

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

Given the tool's moderate complexity (administrative action with rate limits), no annotations, and no output schema, the description does a good job covering the essential context: purpose, usage conditions, and behavioral constraints. However, it doesn't describe what the tool returns or what happens after the email is sent, leaving some gaps in completeness.

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 0 parameters with 100% schema description coverage, so the baseline would be 4. The description doesn't need to explain parameters, but it does implicitly confirm there are no required inputs by describing the tool's function without mentioning any parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the specific action ('Resend the operator anti-spam confirmation email') and the resource it operates on (confirmation emails for accounts). It distinguishes this tool from siblings by focusing on a specific administrative function rather than general email operations like sending, reading, or searching.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('if the account is stuck in pending_operator_confirmation status because the original confirmation email was lost or filtered') and when not to use it ('Only works for unconfirmed accounts'). This provides clear context and exclusions, though it doesn't name specific alternative tools.

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

search_identityAInspect

Look up the public identity document for any MultiMail email address. Returns the agent's operator, oversight mode, capabilities, and whether the operator is verified. No authentication required. Use this to verify another agent's identity before sending sensitive information.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe email address to look up (e.g. sandy@multimail.dev)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a read-only lookup ('look up'), requires no authentication ('No authentication required'), and describes the return content. However, it doesn't mention potential errors, rate limits, or data freshness, leaving some gaps.

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 efficiently structured in two sentences: the first states purpose and returns, the second provides usage guidance. Every phrase adds value with zero waste, making it easy to parse and front-loaded with essential information.

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 simple lookup tool with 1 parameter and no output schema, the description is nearly complete: it covers purpose, usage, behavioral aspects, and return values. It lacks details on error cases or output structure, but given the low complexity, this is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single 'address' parameter. The description adds no additional parameter details beyond implying it's for email addresses, which the schema's format already specifies. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the verb ('look up') and resource ('public identity document for any MultiMail email address'), specifying it returns operator, oversight mode, capabilities, and verification status. It distinguishes from siblings like check_inbox or send_email by focusing on identity verification rather than email operations.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool ('to verify another agent's identity before sending sensitive information'), providing clear context for its application. While it doesn't name specific alternatives, the guidance is direct and actionable for the intended use case.

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

send_emailAInspect

Send an email from your MultiMail address. The body is written in markdown and automatically converted to formatted HTML for delivery. If the mailbox is in read_only mode, this returns a 403 error with upgrade instructions — use request-upgrade to ask the operator for more autonomy. If the mailbox uses gated oversight, the response status will be 'pending_approval' — this means the email is queued for human review. Do not retry or resend when you see pending_approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email addresses
subjectYesEmail subject line
markdownYesEmail body in markdown format
ccNoCC email addresses
mailbox_idNoMailbox ID (uses MULTIMAIL_MAILBOX_ID env var if not provided)

TDQS

A4.7/5.0
Behavior5/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 excellently describes multiple behavioral traits: markdown-to-HTML conversion, error handling for read_only mode (403 with upgrade instructions), and gated oversight behavior (pending_approval status with no-retry policy). This provides comprehensive behavioral context beyond basic functionality.

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 efficiently structured with three sentences, each serving a distinct purpose: core functionality, error handling, and approval workflow. There's zero wasted language, and critical information is front-loaded about the main sending functionality before detailing edge cases.

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

Completeness5/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 and no output schema, the description provides exceptional completeness. It covers the core functionality, input format (markdown), error scenarios (403, pending_approval), and behavioral constraints (no retry). This gives the agent sufficient context to use the tool correctly despite the lack of structured metadata.

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 schema description coverage is 100%, so the baseline is 3. The description doesn't add specific parameter semantics beyond what's in the schema, though it does mention markdown format for the body which aligns with the schema's 'markdown' parameter description. No additional parameter context is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the specific action ('send an email'), identifies the resource ('from your MultiMail address'), and distinguishes it from siblings like 'reply_email' or 'check_inbox' by focusing on sending new emails. It provides additional context about markdown conversion that further clarifies its unique function.

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

Usage Guidelines5/5

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

The description explicitly provides when-to-use guidance by mentioning the 'read_only mode' scenario (returns 403 error) and directing users to 'use request-upgrade' as an alternative. It also explains the 'pending_approval' status for gated oversight mailboxes and explicitly states 'Do not retry or resend' in that case, providing clear usage boundaries.

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. 7 tool updatesv0.1.7
    • First observedcheck_inbox
    • First observedlist_mailboxes
    • First observedread_email
    • First observedreply_email
    • First observedresend_confirmation
    • First observedsearch_identity
    • First observedsend_email

TDQS

A4.4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a distinct and clearly defined purpose with no overlap. For example, check_inbox lists emails, read_email retrieves full content, send_email and reply_email handle different sending actions, and search_identity serves a unique verification function. The descriptions explicitly differentiate tools, preventing agent misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as check_inbox, list_mailboxes, and send_email. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.

Tool Count5/5

With 7 tools, the server is well-scoped for email management, covering core operations like reading, sending, replying, searching, and administrative tasks. Each tool serves a necessary function without redundancy, fitting the domain appropriately.

Completeness4/5

The tool set covers essential email workflows including inbox checking, reading, sending, replying, identity verification, and administrative actions. A minor gap exists in lacking explicit tools for deleting emails or managing attachments beyond metadata, but agents can work around this with the provided operations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Server for Gmail integration in Claude Desktop with auto authentication support. This server enables AI assistants to manage Gmail through natural language interactions.
    14,617 npm
    1,167
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides IMAP and SMTP capabilities, enabling developers to manage email services with seamless integration and automated workflows.
    19
    4,732 PyPI
    355
    BSD 3-Clause
  • A
    license
    A
    quality
    A
    maintenance
    A simple MCP server that enables users to send emails using Resend's API, integrating with tools like Cursor and Claude Desktop for seamless email composition and delivery.
    106
    14,812 npm
    576
    MIT
  • -
    license
    C
    quality
    C
    maintenance
    Gives on-the-fly inboxes to AI agents. Agents / LLM's can send, receive, and take action in isolated inboxes. Built for AI unlike Gmail. Check us out at agentmail.to
    10
    110
    -