Email MCP Server
Allows listing, searching, reading, and sending emails via Gmail using POP3 and SMTP protocols, including support for fetching recent emails and managing attachments.
Enables access to Daum/Kakao email accounts for listing, searching, reading, and sending messages through POP3 and SMTP protocols.
Provides tools to manage Naver email accounts, allowing users to search, read, and send emails, as well as extract text from various attachment formats.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Email MCP ServerFind emails from 'John' about the project and summarize the latest one."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Email MCP Server
POP3/SMTP 이메일 계정에 접근하는 MCP(Model Context Protocol) 서버입니다. Claude Desktop, Claude Code 등 MCP 클라이언트에서 이메일을 조회, 검색, 읽기, 발송할 수 있습니다.
설치
git clone https://github.com/jhw7500/email-mcp-server.git
cd email-mcp-server
npm install
npm run build설정
MCP 클라이언트의 설정 파일에 다음을 추가하세요.
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"email": {
"command": "node",
"args": ["/절대경로/email-mcp-server/dist/index.js"],
"env": {
"EMAIL_USER": "your-email@example.com",
"EMAIL_PASSWORD": "your-password",
"POP3_HOST": "pop3.your-provider.com",
"POP3_PORT": "995",
"SMTP_HOST": "smtp.your-provider.com",
"SMTP_PORT": "465"
}
}
}
}Claude Code (~/.claude/settings.json)
설정 파일의 mcpServers 섹션에 위와 동일한 형식으로 추가합니다.
환경변수
변수 | 필수 | 기본값 | 설명 |
EMAIL_USER | O | - | 이메일 계정 |
EMAIL_PASSWORD | O | - | 이메일 비밀번호 |
POP3_HOST | X | pop3.hiworks.co.kr | POP3 서버 호스트 |
POP3_PORT | X | 995 | POP3 서버 포트 (SSL) |
SMTP_HOST | X | smtp.hiworks.co.kr | SMTP 서버 호스트 |
SMTP_PORT | X | 465 | SMTP 서버 포트 (SSL) |
지원 메일 서비스
POP3/SMTP를 지원하는 모든 메일 서비스에서 사용 가능합니다:
서비스 | POP3_HOST | SMTP_HOST |
HiWorks | pop3.hiworks.co.kr | smtp.hiworks.co.kr |
Gmail | pop.gmail.com | smtp.gmail.com |
Naver | pop.naver.com | smtp.naver.com |
Daum/Kakao | pop.daum.net | smtp.daum.net |
Gmail은 앱 비밀번호 생성이 필요합니다.
제공 도구 (8개)
도구 | 설명 |
list_emails | 최근 이메일 목록 조회 |
search_emails | 키워드로 이메일 검색 |
read_email | 이메일 전체 내용 읽기 |
fetch_recent_emails | 최근 이메일 배치 조회 (요약용) |
fetch_email_thread | 제목 기반 스레드 복원 |
download_attachment | 첨부파일 다운로드 |
read_attachment_text | 첨부파일 텍스트 추출 (pptx/docx/xlsx/pdf) |
send_email | 이메일 발송 |
사용 예시
Claude에게 다음과 같이 요청하세요:
"최근 이메일 10개 보여줘"
"김철수한테 온 메일 찾아줘"
"첫 번째 이메일 읽어줘"
"오늘 받은 이메일 요약해줘"
"첨부파일 내용 추출해줘"
Available Tools
8 toolsdownload_attachmentC
이메일 첨부파일을 지정된 경로에 다운로드합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| email_id | Yes | 이메일 ID | |
| filename | Yes | 첨부파일 이름 | |
| save_path | No | 저장 디렉토리 (기본: /tmp/) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the download action but doesn't mention permissions needed, file system impacts, error handling, or whether it overwrites existing files. This leaves significant gaps for a tool that writes to the filesystem.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized for a straightforward download operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after download (success/failure indicators), file naming conventions, or how it interacts with the email system. The lack of behavioral context is particularly problematic for a filesystem-writing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal value beyond the schema, mentioning '지정된 경로' (specified path) which aligns with save_path but doesn't provide additional context about parameter relationships or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('다운로드합니다' - downloads) and the resource ('이메일 첨부파일' - email attachment), specifying what the tool does. It distinguishes itself from siblings like read_attachment_text by focusing on downloading rather than reading content, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like read_attachment_text or other email-related tools. It mentions a default save path but doesn't explain prerequisites, error conditions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_email_threadC
제목 키워드로 이메일 스레드(대화)를 복원합니다. 최근 100건에서 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| subject_keyword | Yes | 제목에 포함된 키워드 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the scope ('최근 100건에서 검색합니다') and implies a read-only operation by using '복원합니다' (restores), but lacks critical details such as authentication requirements, rate limits, error conditions, or what '복원' (restoration) entails (e.g., does it fetch full conversation history?). For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, consisting of two sentences that directly state the tool's purpose and scope. There is no wasted language, and it efficiently communicates core information. However, it could be slightly improved with more structured guidance, preventing a perfect score of 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and scope but lacks details on behavioral traits, output format, or differentiation from siblings. Without annotations or an output schema, the description should provide more context (e.g., what '복원' returns), making it incomplete for optimal agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'subject_keyword' fully documented in the schema as '제목에 포함된 키워드' (keyword included in the subject). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or search behavior specifics. According to guidelines, when schema coverage is high (>80%), the baseline score is 3 even without param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '제목 키워드로 이메일 스레드(대화)를 복원합니다' (Restores email threads/conversations by subject keyword). It specifies the verb ('복원합니다' - restores) and resource ('이메일 스레드' - email threads), and mentions the scope ('최근 100건에서 검색합니다' - searches in the most recent 100 items). However, it doesn't explicitly differentiate from sibling tools like 'search_emails' or 'fetch_recent_emails', which prevents a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance. It states the tool searches within the most recent 100 items, but offers no explicit advice on when to use this tool versus alternatives like 'search_emails' or 'fetch_recent_emails'. There's no mention of prerequisites, exclusions, or comparative contexts with sibling tools, leaving the agent with little guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_recent_emailsB
최근 N개 이메일의 전체 본문을 배치로 가져옵니다. 요약/일정 추출 시 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 가져올 이메일 수 (기본: 5, 최대: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions fetching 'recent' emails in batch with full body content, but doesn't specify what 'recent' means (e.g., time frame), whether authentication is required, rate limits, or how errors are handled. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that efficiently convey the core functionality and suggested use case. It's front-loaded with the main purpose, though the second sentence could be more tightly integrated. There's no wasted text, but it could benefit from slightly better structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (fetching emails with one parameter), no annotations, and no output schema, the description is adequate but incomplete. It covers the basic purpose and usage hint but lacks details on behavior, output format, and error handling, which are important for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting the 'count' parameter with its type, default, and maximum. The description adds minimal value beyond this, only implying batch fetching without providing additional parameter context. This meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: fetching recent emails in batch with their full body content. It specifies the verb ('fetch'), resource ('recent emails'), and scope ('full body, batch'), but doesn't explicitly differentiate from siblings like 'list_emails' or 'read_email' beyond the batch aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by suggesting 'use for summarization/schedule extraction,' which gives context for when this tool might be appropriate. However, it doesn't explicitly state when to use this versus alternatives like 'list_emails' or 'search_emails,' nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_emailsC
최근 이메일 목록을 조회합니다. 제목, 발신자, 수신일시를 포함합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 조회할 이메일 수 (기본: 10, 최대: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('조회합니다') and lists included fields, but doesn't mention important behavioral aspects like ordering (most recent first?), pagination, authentication requirements, rate limits, or what happens when count exceeds available emails. The description adds minimal behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that efficiently convey the core functionality. The first sentence states the main purpose, and the second adds useful detail about included fields. There's no wasted language or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with no annotations and no output schema, the description is insufficient. It doesn't explain the return format beyond listing three field names, doesn't specify ordering or time range for 'recent', and provides no error handling information. Given the complexity of email data and lack of structured documentation, the description should provide more complete context for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with clear documentation of the 'count' parameter including default value and maximum. The description adds no parameter information beyond what's already in the schema. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '조회합니다' (retrieve/list) with the resource '최근 이메일 목록' (recent email list) and specifies what information is included. It distinguishes from siblings like 'search_emails' by focusing on recent emails rather than search functionality, but doesn't explicitly contrast with 'fetch_recent_emails' which appears to be a similar sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'fetch_recent_emails' or 'search_emails'. It mentions '최근' (recent) which implies a temporal context, but doesn't specify what 'recent' means or when to choose this over other email retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_attachment_textB
이메일 첨부파일(pptx, docx, xlsx, pdf, txt)의 텍스트를 추출하여 반환합니다. Claude가 내용을 요약할 수 있도록 텍스트로 변환합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| email_id | Yes | 이메일 ID | |
| filename | Yes | 첨부파일 이름 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool extracts and returns text, but doesn't mention error handling (e.g., unsupported file types), performance characteristics, or whether the operation is read-only/destructive. The mention of Claude summarization adds some context about intended use, but lacks operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: one stating the core functionality and supported file types, and another explaining the purpose for Claude integration. Both sentences add value, though the second sentence could be integrated more tightly with the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, 100% schema coverage, and no output schema, the description provides adequate basic context about what the tool does and why. However, it lacks details about return format (e.g., structured text vs raw extraction), error conditions, or limitations of the text extraction process that would be helpful given no annotations exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (email_id and filename) adequately. The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or constraints on filename matching. Baseline 3 is appropriate when schema provides complete parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: extracting text from email attachments (pptx, docx, xlsx, pdf, txt) and returning it. It specifies the resource (email attachments) and the action (text extraction), but doesn't explicitly differentiate from sibling tools like 'download_attachment' which handles file downloads rather than text extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'Claude가 내용을 요약할 수 있도록' (so Claude can summarize the content), suggesting this tool is for content analysis rather than file retrieval. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'download_attachment' for binary files or 'read_email' for email body text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_emailC
특정 이메일의 전체 내용을 읽습니다. 본문과 첨부파일 목록을 포함합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 이메일 ID (list_emails에서 반환된 id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool reads content, implying a read-only operation, but doesn't disclose behavioral traits such as authentication requirements, rate limits, error handling, or whether it returns structured data. The description is minimal and lacks context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded, consisting of a single sentence that directly states the tool's function. There is no wasted language, and every word contributes to understanding the purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (reading email content with attachments) and lack of annotations and output schema, the description is incomplete. It doesn't explain return values, error cases, or how attachments are handled (e.g., as metadata or links). For a tool with no structured output, more context is needed to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'id' documented as 'email ID (from list_emails)'. The description doesn't add meaning beyond this, as it doesn't explain parameter usage or constraints. With high schema coverage, the baseline is 3, and the description doesn't compensate with extra details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'read the full content of a specific email, including body and attachment list.' It specifies the verb ('read') and resource ('specific email'), and mentions what content is included. However, it doesn't explicitly differentiate from siblings like 'fetch_email_thread' or 'list_emails' beyond implying it's for a single email.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an email ID from 'list_emails'), exclusions, or comparisons to siblings like 'fetch_recent_emails' or 'search_emails'. Usage is implied only by the action described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_emailsC
키워드로 이메일을 검색합니다. 제목과 발신자에서 검색합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | 검색 키워드 | |
| limit | No | 검색 범위 최근 N건 (기본: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the search scope (subject and sender) but doesn't disclose critical behaviors: whether it's read-only or mutating, authentication needs, rate limits, pagination, error handling, or return format. For a search tool with zero annotation coverage, this leaves significant gaps in understanding how it operates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Korean that states the core function. It's appropriately sized for a simple search tool, with no wasted words. However, it could be slightly more structured by explicitly separating purpose from scope for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a search operation that likely returns complex results, the description is incomplete. It doesn't explain what the tool returns (e.g., email IDs, summaries, full content), how results are ordered, or error conditions. For a tool with 2 parameters and potential behavioral complexity, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no parameter-specific information beyond implying keyword usage for subject/sender search. It doesn't explain keyword matching (exact, partial, case-sensitive), limit behavior beyond the schema's default, or other semantic details. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'search emails by keyword' with specific scope 'in subject and sender'. It distinguishes from siblings like 'fetch_recent_emails' or 'list_emails' by specifying keyword-based search. However, it doesn't explicitly contrast with 'fetch_email_thread' or other search-related tools, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over 'fetch_recent_emails' for recent emails, 'list_emails' for unfiltered listing, or 'fetch_email_thread' for thread-based retrieval. No prerequisites, exclusions, or comparative context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailC
이메일을 발송합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | 수신자 이메일 주소 | |
| subject | Yes | 제목 | |
| body | Yes | 본문 (텍스트) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the action but doesn't describe any behavioral traits such as permissions needed, whether it's idempotent, error handling, or side effects. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized for a simple tool, though it could be more informative. The structure is front-loaded but minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like success/failure responses, authentication needs, or usage context. For a tool that sends emails, more detail is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (to, subject, body). The description adds no additional meaning beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '이메일을 발송합니다' (sends an email) states the basic action but lacks specificity about scope or resource. It doesn't distinguish from siblings like fetch_email_thread or search_emails, which are read operations versus this write operation. The purpose is clear but minimal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites like authentication, rate limits, or when to choose send_email over other email-related tools. The description offers no context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is some overlap between list_emails and fetch_recent_emails, as both retrieve recent emails, which could cause confusion. The other tools are clearly differentiated, such as send_email for sending and read_email for reading specific emails.
All tool names follow a consistent snake_case pattern with clear verb_noun combinations, such as download_attachment, fetch_email_thread, and send_email. This consistency makes the tool set predictable and easy to navigate for an agent.
With 8 tools, the server is well-scoped for email management, covering key operations like sending, reading, listing, searching, and handling attachments. Each tool serves a specific function without redundancy, making the count appropriate for the domain.
The tool set provides strong coverage for email operations, including CRUD-like actions (send, read, list, search) and attachment handling. A minor gap is the lack of tools for updating or deleting emails, but agents can work around this with the existing tools for most workflows.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides email capabilities, hosted on Alpic platform
An MCP server that provides email capabilities, hosted on Alpic platform
An MCP server that provides email capabilities, hosted on Alpic platform
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jhw7500/email-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server