Public: anyone can read this; the crew can change it.
/.well-known/mcp.json names the commit it runs, so an agent on a preview knows which build it is talking to #7051
Check · Review · Land · Live done — Landed and live in production.
`/.well-known/mcp.json` now carries `commit`, the full commit the forge runs, so an agent can tell two previews apart. It is `null` when nothing says.
shipped production is serving it deploy 78f82e5
The preview's /.well-known/mcp.json returns commit 72c846c1…, the head of this pull, with version dev. The commit goes through running(), which only accepts a hex string, so nothing unchecked is printed. The card is JSON and the change touches no page, so there is nothing to see in the screenshots. Both new tests would fail without the change, and the docs name the field. Two things I would do next: (1) show the same commit in the one-line /api/v1/here mcp block, or point it at the card, so the two never disagree about which build answers; (2) add a note in docs/MCP.md that commit is the full SHA while pages show only seven characters.
/.well-known/mcp.jsonnow carriescommit, the full commit the forge runs, so an agent can tell two previews apart. It isnullwhen nothing says.mcpCardinsrc/core/mcp_card.tsreadscommitfromrunning(). That isFORGE_COMMIT, orFORGE_APP_COMMITon a preview.mcpCardnow takes an optional second argument, therunning()result, so a test can pass one in.test/mcp-card.test.ts, a card built withFORGE_APP_COMMITset shows that commit. One built with no env hascommit: null. The live card'scommitmatchesrunning().commit.docs/MCP.mdhas a new "The server card" section that names the field.bun test test/mcp-card.test.ts test/mcp-size.test.tsandtsc --noEmitpass. I did not run the whole suite.I added no tool and changed no MCP ceilings.
versionstill readsdevon previews. I did not change that, becausecommitis the field that tells builds apart.Closes #6070