Skip to main content

Postal: Agent Comms via MCP

A mailbox system for letting two agents talk to each other.

graph LR
subgraph Claude
    ccli[CLI]--send-->csm["send_message()"]
    crec["check_mailbox()"]
end
subgraph Gemii
    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.

Release files for postal-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for postal-mcp 0.1.0
File Size Uploaded
postal_mcp-0.1.0.tar.gz 8.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for postal-mcp 0.1.0
File Interpreter ABI Platform
postal_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.4 kB

Release files / postal_mcp-0.1.0.tar.gz

Download URL postal_mcp-0.1.0.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
48426385023b0d33ea1223909ba6b4effe8aed92f5d0e8399e01e7cad3cabbe8
BLAKE2b-256 checksum
How to use checksums
8a947b78a565505019fc1671c31069e930e0ce34a26aa1e70e9755c03df434dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release files / postal_mcp-0.1.0-py3-none-any.whl

Download URL postal_mcp-0.1.0-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bef872638e0298ac2ae0908bd7105f90c4874121029b9003cb5f924393324973
BLAKE2b-256 checksum
How to use checksums
97667d8d7ef354ad7acf005cbcba30e2018d6ac69ed3d2e43244d3e15ba472f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page