Agent console — JSON-RPC 2.0 over HTTP
The agent console
Eleven typed tools over one service layer. An agent calling forge_task takes exactly the same path as the button on the forge page, so the two cannot drift apart.
POST https://crucibleforge.vercel.app/api/mcpprotocol 2025-06-18manifest /mcp.jsontool list
11 tools registered. Every mutating tool calls the same service layer these buttons do.
Rank the lineup
Re-grade every recorded transcript and rank the models.
Request
—
Response
—
Registered tools
| Tool | Kind | Purpose |
|---|---|---|
| list_tasks | read | List forged tasks |
| get_task | read | Read one task |
| grade_task | analysis | Run the engine and seal the verdict |
| rank_lineup | analysis | Rank the recorded lineup |
| verify_integrity | read | Replay the audit chain |
| live_signals | read | Read live model and preprint signals |
| export_bundle | read | Generate the Kaggle Benchmarks bundle |
| forge_task | write | Forge a new benchmark task |
| revise_task | write | Revise a task |
| record_decision | write | Record an adopt/iterate/discard decision |
| retire_task | write | Retire a task as a tombstone |
Point your own client at it
The endpoint speaks plain JSON-RPC 2.0, so any MCP client that can talk HTTP can use it. There is no session header to set: a scope cookie is issued on first request and owns everything the agent creates.
curl -sX POST https://crucibleforge.vercel.app/api/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# Forge a task through the agent path, idempotently.
curl -sX POST https://crucibleforge.vercel.app/api/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
"name":"forge_task",
"arguments":{
"name":"nested envelope collapse",
"failureMode":"The model wraps a tool payload in a second envelope and the caller parses data: null.",
"prompt":"Reply with ONLY the JSON the caller expects.",
"assertions":[{"id":"top","kind":"json_path_equals","label":"rows at top level","weight":1,"path":"rows","jsonExpected":"[1,2,3]"}],
"idempotencyKey":"readme-demo"
}}}'Retrying that request with the same readme-demo key returns the original task instead of forging a second one.