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

/.well-known/mcp.json and /llms.txt name the Claude Code and OpenCode plugins, each with its one install line #8296

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

`/.well-known/mcp.json` and `/llms.txt` now name the Claude Code and OpenCode plugins, each with its one install line. I ran `tsc`, `test/mcp-card-plugins.test.ts`, `test/mcp-card.test.ts`, `test/standards.test.ts` and `test/mcp-size.test.ts`; all pass. I did not run `scripts/gate.ts` or `scripts/fast.ts`, and the forge's check will run the full suite on the push.

shipped production is serving it deploy d909ee7

opened this

/.well-known/mcp.json and /llms.txt now name the Claude Code and OpenCode plugins, each with its one install line. I ran tsc, test/mcp-card-plugins.test.ts, test/mcp-card.test.ts, test/standards.test.ts and test/mcp-size.test.ts; all pass. I did not run scripts/gate.ts or scripts/fast.ts, and the forge's check will run the full suite on the push.

  • Card: mcpCard has a new plugins list in src/core/mcp_card.ts. Each entry has harness, path and install, and no existing field is renamed.
  • One constant: the list is built from HARNESS_PLUGINS in the same file. The "Use it from your harness" section of /llms.txt (in src/web/standards.ts) reads the same constant, so the two cannot drift.
  • Install lines: Claude Code is claude --plugin-dir plugins/claude-code. OpenCode is mkdir -p .opencode/plugin && cp plugins/opencode/forge.ts .opencode/plugin/. I used the copy command because plugins/opencode/README.md documents it as the install.
  • Test: test/mcp-card-plugins.test.ts fetches both URLs and checks each plugin's harness, its install line, and that its path exists in the repository. It fails without the source change; I ran it with src/ stashed and it failed.
  • Not done: no new MCP tool, and the ceilings are untouched.

To try it, fetch /.well-known/mcp.json and /llms.txt on the preview.

Closes #8273

commented

/.well-known/mcp.json and /llms.txt now name the Claude Code and OpenCode plugins, each with its one install line. I ran tsc, test/mcp-card-plugins.test.ts, test/mcp-card.test.ts, test/standards.test.ts and test/mcp-size.test.ts; all pass. I did not run scripts/gate.ts or scripts/fast.ts, and the forge's check will run the full suite on the push.

  • Card: mcpCard has a new plugins list in src/core/mcp_card.ts. Each entry has harness, path and install, and no existing field is renamed.
  • One constant: the list is built from HARNESS_PLUGINS in the same file. The "Use it from your harness" section of /llms.txt (in src/web/standards.ts) reads the same constant, so the two cannot drift.
  • Install lines: Claude Code is claude --plugin-dir plugins/claude-code. OpenCode is mkdir -p .opencode/plugin && cp plugins/opencode/forge.ts .opencode/plugin/. I used the copy command because plugins/opencode/README.md documents it as the install.
  • Test: test/mcp-card-plugins.test.ts fetches both URLs and checks each plugin's harness, its install line, and that its path exists in the repository. It fails without the source change; I ran it with src/ stashed and it failed.
  • Not done: no new MCP tool, and the ceilings are untouched.

To try it, fetch /.well-known/mcp.json and /llms.txt on the preview.

Approved

Works on the preview: /.well-known/mcp.json carries plugins[] with harness, path and install for Claude Code and OpenCode, and /llms.txt lines 21-22 print the same install lines from the one HARNESS_PLUGINS constant. Paths exist, no existing card field changed, test fails without the change. No new dependency, no tool added.

Two things I would do next:

  1. The install lines only work from the root of a clone of the forge repository, and the card (unlike llms.txt) does not say so. Add a short note or from field to each card entry, e.g. "run in a clone of the forge repository", so an agent reading only the card does not run it elsewhere.
  2. Set FORGE_URL and FORGE_TOKEN are needed by both plugins but the card never says it; add env: ["FORGE_URL","FORGE_TOKEN"] to the entries so the card is self-sufficient.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs