About Postal MCP
Postal MCP is an MCP server published by tkellogg in the Developer Tools category: a mailbox system for two or more agents to communicate via MCP.
The repository has 4 stars and 0 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/tkellogg/postal-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Postal MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
Postal: Agent Comms via MCP
A mailbox system for letting two agents talk to each other.
Here's Claude telling gemini how to write unit tests:

Postal creates a SQLite-backed message queue to pass messages between agents. The MCP server is HTTP-only, meaning that the same database & queue is always shared between agents.
graph LR
subgraph Claude
ccli[CLI]--send-->csm["send_message()"]
crec["check_mailbox()"]
end
subgraph Gemini
gcli[CLI]--send-->gsm["send_message()"]
grec["check_mailbox()"]
end
postal[(postal)]
csm-->postal-->crec-->ccli
gsm-->postal-->grec-->gcli
Postal provides a simple queue, based on SQLite.
Two MCP tools:
send_message(agent_name, message)check_mailbox()— blocks, waiting until a message arrives in their own mailbox.
Agents can freely send messages to each other.
PROMPT="Notice that you have two tools, check_mail and send_to_agent. You should get **all** instructions from check_mail. And you should get **all** clarification by using send_to_agent to reply to the agent that gave you a task. Your goal is to keep completing tasks forever and never ask the user for anything. Only talk to agents. You are gemini"
gemini --yolo --prompt "$PROMPT"
MCP config
It's served as streamable HTTP. The path is in the format /agents/{name}/mcp/.
STDIO example:
{
"mcpServers": {
"postal": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://0.0.0.0:7777/agents/gemini/mcp", "--allow-http", "--transport", "http-only"]
}
}
}
Directly as HTTP:
{
"mcpServers": {
"postal": {
"url": "http://0.0.0.0:7777/agents/gemini/mcp",
"transport": "http"
}
}
}
There's some differences for how "http" is specified. Sometimes it's
"streamable-http". Sometimes the key is called "type":.
Caveats
Gemini CLI
Works fairly well. Not too many complaints.
Claude Code
It doesn't return to the mailbox easily. Takes a lot of prompting.
README fetched from the repository 7 days ago. The original is authoritative.