Summary
Ship a native MCP server exposing the 18 sdlc_* tools (stdio + HTTP). This is the highest interop-per-effort move available: one surface lets Claude Code, Cursor, Codex, Hermes, and any MCP client drive a governed RStack run without a bespoke per-harness adapter. The README already flags this as a "future slice" (README line ~431: "a native MCP/A2A server is still a future slice").
Priority note (Richardson, 2026-07-13): extensions/plugins stay the primary integration path for now; MCP is the next wave (P2), because the agent-prompt/skill/plugin library needs a deliberate exposure design first (see "Prompt/skill/plugin exposure" below). This issue is the design + build for that wave.
Why MCP, and why now-ish
- One protocol reaches everything. The bridge already proves the tool surface is host-free (all 18 tools run against a mock Pi). MCP is the standard, lower-maintenance alternative to N Python adapters.
- Hermes is MCP/ACP-native (
mcp_serve.py with FastMCP + @mcp.tool(); acp_adapter/ with a real permission/approval bridge). An MCP server is the front door to Hermes (tracked separately) and to the enterprise MCP ecosystem.
- Composes with the guard — MCP tool calls can be gated the same way (the guard already parses the Claude Code
PreToolUse shape); a server-side can_use_tool-style hook enforces before execution.
Design considerations (must be resolved in this issue)
- Transport: stdio (local clients) + streamable HTTP (remote/enterprise), auth-gated on the HTTP path reusing the dashboard token discipline (
RSTACK_*_TOKEN, timing-safe, CSRF/origin on writes).
- Enforcement on the MCP path: every mutating tool call routes through the same destructive gate + validator sandbox; no second policy engine.
- Prompt/skill/plugin exposure (the fine-tuning Richardson called out): MCP exposes tools, not the agent
.md library. The orchestrator/builder/validator prompts, the 69 skills, the specialist agents, and the model: frontmatter tag in each agent .md need a deliberate exposure path — candidates: MCP prompts + resources for the agent/skill catalog, and folding the routing/prompt-assembly into the tool descriptions and sdlc_delegate output. Decide what is a tool vs. a prompt vs. a resource, and how model: selection is honored when the client's model runs the loop.
- Conformance: add an MCP conformance test analogous to
tests/bridge-conformance.test.js so the MCP tool surface can't drift from the Pi registry.
Acceptance criteria
Source: docs/audits/2026-07-13-feasibility-standalone-vs-extensions.md §5. Sequenced after the P0/P1 enforcement + parity wave.
Summary
Ship a native MCP server exposing the 18
sdlc_*tools (stdio + HTTP). This is the highest interop-per-effort move available: one surface lets Claude Code, Cursor, Codex, Hermes, and any MCP client drive a governed RStack run without a bespoke per-harness adapter. The README already flags this as a "future slice" (README line ~431: "a native MCP/A2A server is still a future slice").Why MCP, and why now-ish
mcp_serve.pywithFastMCP+@mcp.tool();acp_adapter/with a real permission/approval bridge). An MCP server is the front door to Hermes (tracked separately) and to the enterprise MCP ecosystem.PreToolUseshape); a server-sidecan_use_tool-style hook enforces before execution.Design considerations (must be resolved in this issue)
RSTACK_*_TOKEN, timing-safe, CSRF/origin on writes)..mdlibrary. The orchestrator/builder/validator prompts, the 69 skills, the specialist agents, and themodel:frontmatter tag in each agent.mdneed a deliberate exposure path — candidates: MCP prompts + resources for the agent/skill catalog, and folding the routing/prompt-assembly into the tool descriptions andsdlc_delegateoutput. Decide what is a tool vs. a prompt vs. a resource, and howmodel:selection is honored when the client's model runs the loop.tests/bridge-conformance.test.jsso the MCP tool surface can't drift from the Pi registry.Acceptance criteria
rstack-agents mcp(or arstack-mcpbin) serves the 18sdlc_*tools over stdio and HTTP.model:handling exposed via MCP prompts/resources per the design decision above.Source:
docs/audits/2026-07-13-feasibility-standalone-vs-extensions.md§5. Sequenced after the P0/P1 enforcement + parity wave.