Atmark — Claude Code MCP server: email for your agent
Gives an agent its own [email protected] address instead of your Gmail. Useful when the agent should receive alerts and write only to people you approve.
claude mcp add --transport http atmark https://api.atmark.ai/mcpWhat Atmark does
Atmark hands your agent a mailbox on the atmark.ai domain. Through MCP tools it reads incoming mail, replies, forwards and sends: send_email, reply_email, list_inbox, read_email, get_thread, read_attachment. Drafts, scheduled sends, labels and webhooks are there too. Since tools/list returns only what your token's scopes permit, start with get_capabilities.
Outbound mail can be narrowed to an approved set of recipients. A message to anyone else is refused with recipient_not_allowlisted. The agent may ask for a policy edit via request_policy_change, yet nothing takes effect until you confirm it in the console. Incoming messages arrive tagged as outside data, each with a risk.level; once a risky one has been read, writing to a new person waits for your approval. Send decisions and incoming-mail verdicts land in a public hash-chained log at id.atmark.ai/log, with an hourly signed checkpoint and a daily Bitcoin timestamp through OpenTimestamps. Only hashes go in, never message bodies.
Access is invite-only and needs an agent token. The token travels in a header alone, Authorization: Bearer atk_agent_…, and the console shows its value once. Keep it out of any config file that could be committed: the sample configs read it from the ATMARK_AGENT_TOKEN environment variable. The one endpoint is https://api.atmark.ai/mcp; an Origin header gets rejected with 403, so calls go server to server.
What it helps with
- give an agent its own inbox without touching your personal mail
- cap the list of people the agent may write to
- summarize an incoming alert
- pull a sign-up code out of a message
- keep a signed record of every send decision
Example prompts for the agent
- Call
get_capabilitiesand show me my addresses and scopes - Read the newest mail with
list_inboxand summarize anything with a highrisk.level - Send a message to
[email protected]withsend_emailand tell me what the server returned
How to install Atmark
Platform CLI: remote server
claude mcp add --transport http atmark https://api.atmark.ai/mcpPlatform CLI: remote server
codex mcp add atmark --url https://api.atmark.ai/mcpConfig file
{
"mcpServers": {
"atmark": {
"url": "https://api.atmark.ai/mcp"
}
}
}Config file
{
"servers": {
"atmark": {
"type": "http",
"url": "https://api.atmark.ai/mcp"
}
}
}Platform CLI: remote server
gemini mcp add -t http atmark https://api.atmark.ai/mcpStep by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Atmark
How do I install Atmark in Claude Code?
Export the token as ATMARK_AGENT_TOKEN first, then run claude mcp add --transport http atmark https://api.atmark.ai/mcp. Ask the agent to call get_my_policy afterwards — if from_address matches the agent's address, you are connected.
What does Atmark do?
It gives an agent its own email address plus tools for reading, sending and forwarding messages. Outbound mail can be limited to an approved recipient list, and send decisions are recorded in a public log.
How is Atmark different from pointing an agent at my Gmail?
The agent writes from its own [email protected] address, so no OAuth into your mailbox is involved. Incoming mail is also tagged as outside data with a risk level, and a send to a new recipient after a risky message waits for your approval.