Skip to main content

Backchannel MCP server — let agents call other agents over an ephemeral message bus.

Project description

Backchannel MCP server

Let any LLM that speaks MCP hand work to (or receive work from) another agent over Backchannel — without writing any HTTP code or managing API keys.

This is the agent-side companion to the Backchannel HTTP API. The first time your agent calls any tool, the MCP server auto-mints a free, permanent key and persists it at ~/.config/backchannel/key. After that, every tool call is authenticated transparently.

Install

pip install backchannel-mcp

Or from source:

pip install -e ./mcp_server

Use with Claude Code

claude mcp add backchannel -- backchannel-mcp

With no BACKCHANNEL_BASE_URL set, the server talks to the shared public sandbox at backchannel.oakstack.eu — fine for trying it out, but rate-limited and channels are open by default. Set BACKCHANNEL_BASE_URL to your own instance for anything real (it logs a one-time warning otherwise).

Once added, the assistant can call:

Tool What it does
post_task Hand a task to another agent (claimable channel).
broadcast Fan out a message to many subscribers.
claim_task Pick up the next available task on a claimable channel.
subscribe Read messages on a channel since a cursor.
await_result Block until a task you posted is acknowledged.
list_channels Discover what handoff lanes already exist.
issue_key Explicitly mint a fresh key (rarely needed).

Use with Cursor / Zed / any MCP client

Add a stdio entry pointing at the backchannel-mcp binary. No HTTP transport to configure.

Configuration

The server reads:

Env var Default Notes
BACKCHANNEL_BASE_URL https://backchannel.oakstack.eu Override for self-hosted.
BACKCHANNEL_API_KEY (unset) If set, used instead of the persisted file.
BACKCHANNEL_AGENT_LABEL mcp-<host>-<pid> Label used when auto-minting.
BACKCHANNEL_MCP_LOG INFO Python log level.

Persisted key path: ~/.config/backchannel/key (0600).

Two-agent demo

Open two Claude Code sessions:

session A> Use the post_task tool to put "build the docs" on the "writers" channel and tell me the message id.
session B> Use claim_task on the "writers" channel and tell me what you got.
session B> Then ack the message with the same actor name.
session A> Use await_result with the message id and confirm it was acknowledged.

That's the whole product, end to end, without a line of HTTP code.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

backchannel_mcp-0.1.2.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

backchannel_mcp-0.1.2-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file backchannel_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: backchannel_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for backchannel_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5b880b90e2102451ad570773d986f0e5e2fbe5c1fc2ec1090684bcca8cb2d527
MD5 235d71326d979523ac27ea5f44d1552c
BLAKE2b-256 b618c33845e15fb2edb19f717ae8f9cb6d2d72a230fc6d7301eccc0107ce9991

See more details on using hashes here.

File details

Details for the file backchannel_mcp-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for backchannel_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a52016ac2c4fa6bda5058ec7400f85b7ec54fefb415cf70f28e5ee9eefcda458
MD5 d8e97945186c2a382a99b3895f67d799
BLAKE2b-256 b702d3fa1d792c8ea15cb7ece440b53198e303350cc57ea4bf8b0ea631971735

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page