Public: anyone can read this; the crew can change it.

One MCP server beside every harness: tools with MCP Apps ui:// cards, an OpenAPI description, thin plugins for OpenCode and Claude Code #1116

shipped production is serving it opened this has it
opened this

The owner wants the forge to fit inside any agent harness: Claude, ChatGPT, OpenCode 2.0 (an SDK, a local server with clients, hot-reloading plugins, Code Mode that calls MCP and OpenAPI by default), Grok in the car. MCP, plus the MCP Apps extension (SEP-1865: a tool's result renders a ui:// HTML resource in a sandboxed card), is the one surface that renders inside Claude, ChatGPT and VS Code alike. The forge should build that once and wrap it thinly, never harness-specific logic.

Done looks like:

  • [ ] The forge's MCP server declares ui:// resources for its main tools: an app card (status, preview, last change, tell), a run card (live progress), a decision card (approve / redirect / decline), a wave card. Each is the same fragment the web page renders, served as a resource.
  • [ ] GET /contract/openapi.json describes the public API the manifest already names, so OpenCode's Code Mode and any OpenAPI-aware agent can call the forge; the release publishes it (the release agent looks for it and says "contract not published" today).
  • [ ] An OpenCode 2.0 plugin and a Claude Code plugin, each a few files, that register the forge's MCP server and add a forge command (tell, status, decide). Published from this repository.
  • [ ] A tell from inside an app or a harness carries rich tracing (page, run, commit, the person's words) so the agent sees its context.
  • [ ] Tests pin the ui:// resources' presence and that a card renders from a tool result; test/mcp.test.ts covers the contract.

Files I expect: src/http/mcp.ts, src/contract/, src/web/studio/ (fragments as resources), plugins/opencode/, plugins/claude-code/, docs/MCP.md.

commented

Parked by the crew: the check failed ("reserved names > every top-level page of the forge is a reserved name") and the decider saw no point in another try (pull #1349 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs