Inspiration

Alexa skills die if they don't answer in 8 seconds — but real deliberation takes minutes. I run the ARC agent mesh, a voice-assistant bridge on Alexa/Echo hardware, and I kept hitting this wall: the fast-path answer is shallow, the deep answer is too slow for a voice timeout. ARC Bridge MCP gives Alexa+ the fast path now and the deep answer when it's ready.

What it does

ARC Bridge MCP is a self-hosted MCP server (spec 2025-11-25, Streamable HTTP) that exposes my ARC free-tier agent mesh as MCP tools, over POST /mcp:

  • arc_ask — Ask the mesh a question. Local mode answers by retrieval over the memory corpus; live mode queues it for the worker, which answers async and announces via Echo.
  • arc_queue_status — Read back a queued question's record (status, answer/digest).
  • arc_memory_search — Search the mesh's shared long-term memory.
  • arc_health — Worker liveness: heartbeat age + question-queue depth.
  • arc_notify — Fan out a notification: log (always), echo (Voice Monkey), telegram (Bot API), ntfy (ntfy.sh). Unconfigured channels fail closed with a reason.

Plus one read-only resource, arc://mesh/health.

How I built it

Zero dependencies — pure Python 3.9+ standard library, no pip install. The entry point (server.py) wires env config into the app and serves the full MCP lifecycle (initialize → tools → SSE). Local mode needs no configuration: it seeds clearly-labeled demo memory so judges can run it in 60 seconds. Live mode talks to the production mesh's real queue, memory, and heartbeat endpoints.

It also includes an OAuth 2.1 account-linking front for Alexa+ (RFC 9728 metadata, RFC 7591 dynamic client registration, PKCE S256 consent flow, refresh-token rotation) so Alexa+ gets the 401 + WWW-Authenticate challenge its account-linking flow expects. 15 unit tests cover backends, validation, and full-stack HTTP. Companion: opensource-mini/mini-mcp-harness, a reusable stdlib MCP server scaffold.

Challenges

The 8-second Alexa timeout drove the whole architecture — the queue-and-callback design is the only honest way to bridge voice latency with deep reasoning. OAuth 2.1 for Alexa+ account linking meant implementing RFC 9728 protected-resource metadata and PKCE from scratch in the stdlib. DNS-rebinding protection (origin allowlist) and fail-closed semantics everywhere took care to get right.

Docs included

CONCEPT.md, PRODUCT-FEEDBACK.md, FRICTION-LOG.md, and DEMO-SCRIPT.md ship in the repo.

Built With

Share this project:

Updates

Submission history