MCP and Puckai GitHub issue

How the Model Context Protocol fits — and doesn't fit — into the Puckai pipeline.

vibecode
{"vibecode": {
    "doc": "puckai_and_mcp",
    "role": "comparative analysis of MCP's architectural shape against Puckai's; identifies which stages of the Puckai workflow MCP belongs in and which it doesn't",
    "audience": ["Stuart, who knows MCP well",
        "Puckai implementers weighing transport and tooling options",
        "Miko and other Puck architects scoping V1 integrations"],
    "position": "MCP is a context-injection layer for an LLM-driven app, not a peer-agent transport. It does not displace ACP for moving Puckai worldlets between agents. It complements Puckai cleanly at the consultation stage, where an agent gathers external context before deciding.",
    "recommendation": "First slice: Puckai agents speaking MCP as clients to tool servers, recording each call as a puck.uno/ai/puckai/consultation record. No architectural overlap with ACP; clean V1 surface; immediate utility.",
    "non_recommendation": "Do not route Puckai worldlets over MCP as a transport substitute for ACP. The primitives don't match the traffic.",
    "related_docs": ["index.md", "agent.md", "bootstrap/index.md",
        "../../caspian/packages/acp/index.md"]
}}

The premise here is narrow: given MCP and given Puckai, what are the architectural shapes their interaction could take? Three positions need separating — MCP as a transport for Puckai (replacing ACP), MCP as an augmentation used by Puckai agents (alongside ACP), and Puckai as exposed material served back through MCP. The three are at different layers and the picture gets muddled when they're collapsed.


MCP as an alternative transport GitHub issue

The first question to dispose of: should MCP carry Puckai worldlets between two collaborating agents, the way ACP does today?

The answer is no, and the reason is shape mismatch. ACP is a peer-to-peer agent transport — symmetric, request-response, with session and streaming primitives that match what Puckai actually does on the wire (agent A hands agent B a worldlet, agent B works on it, agent B hands back a worldlet, optionally over multiple turns). MCP is asymmetric by design: a host-side client connects to a server that exposes tools, resources, and prompts for an LLM session to consume. The server is a context provider; the client is the LLM-driven app deciding what to pull.

That asymmetry is load-bearing in MCP, not incidental. Trying to route Puckai over it forces awkward choices at every seam:

MCP can be made to carry Puckai. It is not the right shape for doing so. ACP remains the cleaner transport, and there's no argument for displacing it.


MCP as augmentation to Puckai+ACP GitHub issue

The genuine fit is one layer down. A Puckai agent processing an issue needs to gather context before deciding — call APIs, query databases, look things up, invoke tools. That's exactly what MCP is built for, and Puckai already has the record type ready to capture what happened: puck.uno/ai/puckai/consultation.

The shape:

This is the strongest fit because the three layers do not overlap. MCP handles the agent's outbound context calls. Puckai records what those calls were and what they returned. ACP moves the resulting worldlet between agents. Each protocol does the thing it was designed for.

There's a small piece of design work attached: settling the convention for how an MCP tool call maps onto a consultation record. Worth doing once and documenting, so every Puckai agent renders its MCP traffic the same way and audit tooling can rely on the shape. The kind enum on consultation may want an explicit mcp_tool and mcp_resource variant rather than overloading the existing :tool and :document values — that decision can sit with the consultation record's owner.


Puckai records exposed as MCP resources GitHub issue

The reverse direction is also worth considering. A completed Puckai session is exactly the kind of structured, addressable material MCP's resource primitive was built to serve. A Puckai-aware MCP server could expose:

This is genuinely useful — it lets a different LLM (running in a different client, owned by a different team) consume historical Puckai decisions as context. Audit tooling, cross-system observability, "show me every decision agent X has made in the last week" workflows. None of this needs Puckai to speak MCP for transport; it only needs a thin MCP server layered over the storage that already holds completed sessions.

This is not a V1 concern — it presupposes a corpus of completed Puckai sessions worth querying, and a story for how MCP clients authenticate against the Puck side. But it's the kind of integration that becomes obvious once the corpus exists, and the architecture is simple enough that it doesn't need design pre-work today. Note it as a downstream possibility.


Where MCP and Puckai genuinely don't overlap GitHub issue

The two protocols serve different stages of the same workflow:

Stage Owned by
Gather external context for a decision MCP (tools, resources, prompts, sampling)
Record the decision process and its provenance Puckai (issues, frames, consultations, decisions, reports)
Move structured decisions between peer agents ACP (REST/HTTP request-response)

Trying to make any one of them do another's job produces the awkwardness the alternative-transport section above describes. The cleanest mental model is that MCP feeds Puckai (during the consultation stage) and ACP carries Puckai (during the inter-agent stage), with Puckai itself owning the structured record of what was decided and why.

A second non-overlap worth naming: MCP has no concept of multi-agent collaboration. Its session model is one client, one server, one LLM consuming the context. Puckai's conversation mode (multiple agents posting records concurrently, consensus or named-decider dispatch, impasse handling) lives entirely outside what MCP models. There's no rivalry here — they just answer different questions.


Recommendation GitHub issue

If MCP integration is on the table for V1, the first slice is the augmentation pattern: Puckai agents speak MCP as clients to consume tool servers, recording each call as a puck.uno/ai/puckai/consultation record. Concretely, the work is:

Easy V1, clear value, no architectural overlap with ACP or with Puckai's existing surface.

The other two shapes — MCP-as-transport and Puckai-as-MCP-resource — should not be pursued at the same time. The first is an architectural mistake; the second is a downstream possibility worth noting but not building yet.


Open questions GitHub issue


See also GitHub issue


© 2026 Puck.uno