Envoi MCP
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., "@Envoi MCPsend an email to hello@example.com about the project update"
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.
envoi-mcp
Give any AI agent a real email address. MCP server for Envoi.work.
Quick Start
npx envoi-mcpNo install required. Just add it to your AI client's MCP configuration.
Related MCP server: Email MCP Server
Setup
1. Get an API Key
Register your agent at envoi.work to get an API key and an @envoi.work email address.
2. Configure Your AI Client
Claude Code
claude mcp add envoi-mcp -e ENVOI_API_KEY=your-key-here -- npx envoi-mcpClaude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"envoi": {
"command": "npx",
"args": ["envoi-mcp"],
"env": {
"ENVOI_API_KEY": "your-key-here"
}
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"envoi": {
"command": "npx",
"args": ["envoi-mcp"],
"env": {
"ENVOI_API_KEY": "your-key-here"
}
}
}
}Windsurf
Add to ~/.windsurf/mcp.json:
{
"mcpServers": {
"envoi": {
"command": "npx",
"args": ["envoi-mcp"],
"env": {
"ENVOI_API_KEY": "your-key-here"
}
}
}
}Tools
register_agent
Register a new AI agent on Envoi and get a real email address.
Input: { name, email, skills[], bio? }
Output: { api_key, email_address, profile_url, handle }send_email
Send an email from your agent's @envoi.work address.
Input: { to, subject, body }
Output: { success, message_id }check_inbox
List recent emails in the agent's inbox.
Input: { limit? }
Output: [{ id, from, subject, preview, date, read }]read_email
Read the full content of a specific email.
Input: { email_id }
Output: { from, to, subject, body, date, thread_id }reply_to_email
Reply to an email, maintaining the conversation thread.
Input: { email_id, body }
Output: { success, message_id }Environment Variables
Variable | Required | Description |
| Yes* | Your Envoi API key (*not required for |
| No | API base URL (default: |
Development
git clone https://github.com/yourusername/envoi-mcp.git
cd envoi-mcp
npm install
npm run buildTest locally:
ENVOI_API_KEY=your-key node dist/index.jsLicense
MIT
Available Tools
5 toolscheck_inboxC
List recent emails in the agent's inbox
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of emails to return (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it lists emails but doesn't describe what 'recent' means, whether it's read-only, if it requires authentication, how results are ordered, or what the output format looks like. For a tool with zero annotation coverage, 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 a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, with zero waste, making it easy for an agent to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'recent' entails, the structure of returned emails, or any behavioral constraints. For a tool that interacts with an inbox, more context on permissions, data format, or scope would be needed for 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?
The input schema has 100% description coverage, with the 'limit' parameter fully documented in the schema itself. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline of 3 where the 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 action ('List') and target resource ('recent emails in the agent's inbox'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'read_email' or 'reply_to_email', but the verb 'List' versus 'read' or 'reply' provides some implicit distinction.
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_email' or 'send_email'. It doesn't mention prerequisites, context for use, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_emailC
Read the full content of a specific email
| Name | Required | Description | Default |
|---|---|---|---|
| email_id | Yes | The ID of the email to read |
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 states the action but lacks details on permissions required, rate limits, whether it's idempotent, or what happens if the email_id is invalid. For a read operation with zero annotation coverage, this leaves significant gaps in understanding tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It front-loads the core purpose ('read the full content') and efficiently specifies the target ('a specific email'), making it easy to parse and understand immediately.
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 lack of annotations and output schema, the description is incomplete for a tool that performs a read operation. It doesn't explain what 'full content' includes (e.g., headers, body, attachments) or the return format, leaving the agent uncertain about the tool's output and behavioral nuances.
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 single parameter 'email_id' well-documented in the schema. The description adds no additional parameter semantics beyond implying that 'email_id' identifies a specific email, which is already covered by the schema. This meets the baseline for high schema coverage.
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 ('read') and resource ('full content of a specific email'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'check_inbox' or 'reply_to_email' beyond the basic verb, missing an opportunity to clarify scope distinctions.
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 like 'check_inbox' for listing emails or 'reply_to_email' for responding. The description implies usage for reading a specific email but offers no context about prerequisites, error conditions, or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_agentB
Register a new AI agent on Envoi.work and get a real email address (@envoi.work)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the agent | |
| Yes | Desired email handle (e.g. 'myagent' for myagent@envoi.work) | ||
| skills | Yes | List of skills/capabilities the agent has | |
| bio | No | Short bio describing what the agent does |
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. While it indicates this is a registration/create operation, it doesn't describe authentication requirements, rate limits, error conditions, or what happens if an agent with the same email already exists. For a creation 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 a single, efficient sentence that communicates the core purpose and outcome. Every word earns its place, with no redundant information or unnecessary elaboration. It's appropriately sized for the tool's complexity.
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 creation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the registration process entails, what permissions are needed, what the response looks like, or potential error scenarios. Given the complexity of agent registration and the lack of structured metadata, more behavioral context is needed.
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 thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain format constraints, provide examples beyond the email handle example (which is already in the schema), or clarify relationships between parameters.
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 specific action ('Register a new AI agent') and resource ('on Envoi.work'), and explicitly mentions the outcome ('get a real email address'). It distinguishes this from sibling tools which focus on email operations rather than agent registration.
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. The description doesn't mention prerequisites, timing considerations, or how this relates to the sibling email tools. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_emailB
Reply to an email, maintaining the conversation thread
| Name | Required | Description | Default |
|---|---|---|---|
| email_id | Yes | The ID of the email to reply to | |
| body | Yes | Reply body (plain text or HTML) |
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 mentions thread maintenance but doesn't disclose behavioral traits like required permissions, whether replies are sent immediately or saved as drafts, rate limits, or error conditions. The description is minimal 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 a single, efficient sentence with zero waste. It's front-loaded with the core action and includes the key behavioral detail about thread maintenance, making it appropriately sized for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a mutation tool with 2 parameters, the description is adequate but has clear gaps. It covers the basic purpose but lacks details on permissions, response format, or error handling, making it minimally viable but incomplete for safe 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?
Schema description coverage is 100%, with clear parameter descriptions in the schema. The description doesn't add any meaning beyond what the schema provides, such as explaining email_id format or body content constraints, so it meets the baseline for high schema coverage.
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 ('Reply to an email') and resource ('an email'), specifying it maintains the conversation thread. However, it doesn't explicitly differentiate from sibling tools like 'send_email' beyond the thread maintenance 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 implies usage for replying within an existing thread, but doesn't provide explicit guidance on when to use this versus 'send_email' for new emails or 'check_inbox' for reading. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailC
Send an email from your agent's @envoi.work address
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address | |
| subject | Yes | Email subject line | |
| body | Yes | Email body (plain text or HTML) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the sender address but fails to cover critical aspects such as authentication needs, rate limits, error handling, or whether the email is sent immediately or queued. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly.
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 complexity of an email-sending tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, error cases, response format, and how it differs from sibling tools, making it incomplete for effective 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?
Schema description coverage is 100%, so the input schema already documents all three parameters (to, subject, body) with clear descriptions. The description adds no additional semantic details beyond what the schema provides, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('send') and resource ('email'), specifying it originates from the agent's @envoi.work address. However, it does not explicitly differentiate from sibling tools like 'reply_to_email' or 'check_inbox', which reduces clarity in distinguishing use cases.
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 'reply_to_email' or 'check_inbox', nor does it mention any prerequisites or exclusions. It simply states the basic function without contextual usage advice.
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. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
check_inbox - First observed
read_email - First observed
register_agent - First observed
reply_to_email - First observed
send_email
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose with no overlap: check_inbox lists emails, read_email reads a specific email, register_agent sets up the agent, reply_to_email replies within a thread, and send_email sends new emails. The descriptions make it easy to distinguish between them, preventing misselection.
All tools follow a consistent verb_noun pattern with snake_case (e.g., check_inbox, read_email, register_agent). The naming is predictable and readable throughout, with no deviations or mixed conventions.
With 5 tools, the server is well-scoped for email management on Envoi.work. Each tool earns its place by covering core email operations (inbox, reading, sending, replying) and agent setup, without being too thin or bloated.
The toolset provides strong coverage for basic email workflows: agent registration, inbox listing, reading, sending, and replying. A minor gap is the lack of tools for managing emails (e.g., delete_email or archive_email), but agents can still handle core tasks effectively.
Maintenance
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
Email inboxes for AI agents: send, receive, reply, search, and manage threaded email over MCP.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Hosted email MCP for AI agents with inboxes, send/receive, memory, recovery, and credits.
Hosted email for AI agents: create inboxes, send, receive, and reply over MCP with scoped API keys
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceProvides an AI agent with its own email address to send, receive, and manage emails via MCP. No email server setup required.3312MIT- FlicenseNot gradedqualityCmaintenanceGive AI agents their own email inboxes. Create, send, receive, and manage email entirely via MCP tools.-
- AlicenseNot gradedqualityBmaintenanceConnects any IMAP/SMTP mailbox to AI agents via MCP, enabling email read, search, send, reply, and management through natural language.28MIT
- AlicenseAqualityBmaintenanceEnables AI agents to send, receive, and reply to email through dedicated thread-aware mailboxes, with sandbox testing and compatibility across MCP clients.9488MIT
Appeared in Searches
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/chriskoturathbun/envoi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server