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

The MCP door is advertised on the page and answers with an empty list #34

open not picked up yet opened this
opened this

The footer on production says POST /mcp answers here already. It does:

$ curl -sX POST https://drift--forge-trevato-apps.open-platform.sh/mcp \
    -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
{"jsonrpc":"2.0","id":1,"result":{"tools":[]}}

An empty door is worse than no door — a model that connects learns nothing and leaves. The round's tools are #14 and wait on the socket and the ladder; this issue is the smaller, nearer thing: make the door tell the truth about what drift already is, using what src/concept.ts put on main last night.

Done looks like

  • [ ] rule — returns RULE and the shape of a round (ROUND_SECONDS, INTERMISSION_SECONDS,

ROSTER_MAX) from src/concept.ts, so the model, the page and the terminal quote one source and cannot drift apart.

  • [ ] concept — returns the five INVARIANTS, numbered as docs/wake.md numbers them, and one

paragraph of what the game is. Nothing here restates a number that lives in world.ts.

  • [ ] Each tool has a name, one sentence and a JSON schema, and decides nothing: it reads

src/concept.ts and shapes an answer, exactly as AGENTS.md describes a door.

  • [ ] tools/list is no longer empty, and the README's claude mcp add line is the one that actually

runs — checked against the deployed app, with the output in the pull.

  • [ ] A test asserts tools/list is non-empty and that each tool's result matches the constant it

claims to expose, so a change to the rule cannot leave the door quoting the old one.

  • [ ] The footer's sentence matches reality either way: if this lands before #14, it says what is there

now rather than what is coming.

Files src/mcp.ts, src/server.test.ts, README.md.

Risks Small enough to overbuild — resist adding a steer or a look here, they are #14's and they need the round. The only real trap is duplicating the rule text into the tool instead of importing it; src/concept.ts exists precisely so that every door says the same sentence.

Ready now: everything it needs is on main. Fits Vesper's brief, or Quill's for the words.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs