Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Bicameral MCP

bicameral-mcp is the MCP transport client for the local bicameral-bot daemon. It exposes agent-friendly tools, maps them into canonical ToolRequest envelopes, sends those requests to the daemon, and returns daemon ToolResponse payloads.

MCP is not the Bicameral daemon, Decision Ledger, code graph, dashboard, integration runtime, setup wizard, telemetry sink, or governance engine.

Current Contract

The cutover target is the bot-owned ToolRequest protocol:

MCP tool call
  -> ToolRequest(command + AuthorityContext)
  -> bicameral-bot daemon validation and governance policy
  -> ToolResponse(status + result + governance_result)

MCP performs a daemon capability handshake at startup. It refuses to start when the daemon's ToolRequest protocol version is unsupported. After protocol compatibility is established, individual commands may still return daemon capability errors while bot parity is being implemented.

Configuration

Set the bot daemon endpoint with:

export BICAMERAL_DAEMON_URL=http://127.0.0.1:37373

Optional context:

export BICAMERAL_ACTOR_ID="$(whoami)"
export BICAMERAL_WORKSPACE="$PWD"
export BICAMERAL_POLICY_SCOPE=default

Run the MCP server:

bicameral-mcp

Print supported tool names without contacting the daemon:

bicameral-mcp tools

Supported Tools

MCP exposes only ToolRequest-backed tools:

MCP tool Bot command
bicameral.ingest ingest.submit_local
bicameral.preflight preflight.run
bicameral.bind binding.create
bicameral.binding.inspect binding.inspect
bicameral.review.accept_candidate review.accept_candidate
bicameral.review.reject_candidate review.reject_candidate
bicameral.review.approve_signoff review.approve_signoff
bicameral.review.reject_signoff review.reject_signoff
bicameral.review.resolve_compliance review.resolve_compliance
bicameral.history history.list
bicameral.search search.query

Troubleshooting: Daemon Handshake Failures

MCP stays fail-fast on daemon capability handshake failures. It never starts, installs, upgrades, migrates, or repairs the daemon, and never falls back to legacy MCP-owned handlers. Instead, a failed tool call returns a typed MCP error with an informational recovery payload:

{
  "status": "error",
  "error_code": "daemon_protocol_mismatch",
  "recovery": {
    "error_code": "daemon_protocol_mismatch",
    "category": "setup",
    "retryable": false,
    "mcp_protocol_version": "v2",
    "daemon_protocol_version": "v1",
    "daemon_endpoint": "http://127.0.0.1:37373",
    "requested_tool": "bicameral.preflight",
    "requested_command": "preflight.run",
    "operator_action": "Upgrade bicameral-mcp and bicameral-bot/daemon to matching tags, then retry."
  }
}
error_code Meaning What to do
daemon_unavailable MCP cannot reach the configured/local bot daemon. Start or install the Bicameral bot daemon, then retry.
daemon_protocol_mismatch Daemon is reachable but its ToolRequest protocol version is incompatible. Upgrade bicameral-mcp and bicameral-bot/daemon to matching tags, then retry.
daemon_capability_error Daemon answered capabilities but the requested command is unadvertised or deferred. Use a supported command, or upgrade to a daemon tag that advertises the capability.
Wrong daemon URL Connection target is misconfigured via an env override. Unset or correct BICAMERAL_DAEMON_URL / BICAMERAL_BOT_DAEMON_URL, then retry.

When a daemon URL env override is set, the recovery payload adds a daemon_url_override field and calls out the env var in operator_action, so a wrong URL is easy to spot even though it shares the daemon_unavailable transport path.

Remediation such as installing, upgrading, starting, or migrating the daemon is bot-owned or CLI-owned, not MCP-owned.

Prompts And Skills

MCP may expose MCP prompts for generic Bicameral workflows over supported tools, such as preflight, binding, ingest, history, and search.

Repo-local skills are outside MCP. Keep repo/team behavior in repo skills: when to run Bicameral, which ADRs to read, contribution policy, factory attestation, and workflows that span beyond Bicameral MCP.

Retired From MCP

The v0.2 direct MCP payload surface is not preserved. Removed or unsupported legacy behavior includes:

  • link_commit
  • ratify
  • resolve_collision
  • remove_decision
  • remove_source
  • validate_symbols
  • get_neighbors
  • setup wizard, reset, update, diagnose, usage, feedback, and telemetry
  • dashboard hosting
  • local ledger/event/graph/source/integration runtimes

Missing bot-backed behavior is intentionally unavailable in MCP rather than emulated locally.

Previous implementation history can be inspected at:

0827444c80d45fe3474f68002166e1fc35708eda

Development

Focused cutover checks:

python -m pytest tests/test_toolrequest_thin_client.py -q
python -m build

Repository boundary

bicameral-mcp is the agent-facing tool surface. It exposes local Bicameral actions to coding agents: ingest, preflight, bind, review-command emission, and local run loops.

It is not the source-specific integration repo, the local bot runtime, or the hosted code graph. See docs/adr/0001-mcp-repository-boundary.md.

Metadata

Release files for bicameral-mcp 2026.6.15.dev130946

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

Source distribution (sdist)

Source distribution for bicameral-mcp 2026.6.15.dev130946
File Size Uploaded Provenance Actions
bicameral_mcp-2026.6.15.dev130946.tar.gz 94.9 kB With provenance Details for bicameral_mcp-2026.6.15.dev130946.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bicameral-mcp 2026.6.15.dev130946
File Interpreter ABI Platform Actions
bicameral_mcp-2026.6.15.dev130946-py3-none-any.whl Python 3 none any Details for bicameral_mcp-2026.6.15.dev130946-py3-none-any.whl

Total release size: 109.0 kB

Release files / bicameral_mcp-2026.6.15.dev130946.tar.gz

Download URL bicameral_mcp-2026.6.15.dev130946.tar.gz
Size 94.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3c619a93d5bacdfcdbf460772670c7d835b714ea5ec36c325a0b06d331aee3dc
BLAKE2b-256 checksum
How to use checksums
ed90df29a02c6aaa15b2052ecae1a165e8a9489bcd5f7b3618ea5aeef42d657b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log

Release files / bicameral_mcp-2026.6.15.dev130946-py3-none-any.whl

Download URL bicameral_mcp-2026.6.15.dev130946-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e5abf8eeef10373aab60dc83cc6e0641b9154dd014623133e42bd9c73e9aec7
BLAKE2b-256 checksum
How to use checksums
d0fac1189496c11a5044d61627640713c215a5c60145c9187ae7f62fe844d24d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log

Security for bicameral-mcp 2026.6.15.dev130946

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for bicameral_mcp-2026.6.15.dev130946.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

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