mcp server
postal-mcp
A mailbox system for two or more agents to communicate via MCP
Set up
Runs on your computer. Pick your agent and operating system.
Before you start
- uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
{
"mcpServers": {
"postal-mcp": {
"command": "uvx",
"args": [
"postal-mcp"
]
}
}
}same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Oct 22, 2026Postal: 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.