Skip to main content
Glama
tkellogg

Postal MCP Server

by tkellogg

Postal: Agent Comms via MCP

PyPI version

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.

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

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/tkellogg/postal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server