proofmarket-mcp
# proofmarket-mcp
An MCP server that exposes a **machine-callable proof-market surface**. An agent
connects over the Model Context Protocol, submits Proof Requests, reads the
market's supply / allocated / utilized, and composes multi-step workflows that
run with no human in the loop.
It is the surface Fermah keeps describing: the primary user of a protocol is no
longer a human clicking a dashboard, it is an agent calling an execution surface
directly. This repo is a small, runnable answer to "what does that surface look
like."
> This is a **reference model**, not Fermah's production Kernel and not live
> network data. The coordination mechanics come from
> [proofmarket-sim](https://github.com/Zhekinmaksim/proofmarket-sim); the same
> engine settles every number. Vocabulary follows Fermah: Seekers submit Proof
> Requests, the Matchmaker assigns them to Prover Nodes.
## Tools
- **market_state** - snapshot supply, allocated, utilized, and the matching and scheduling gaps of the running market.
- **simulate_coordination** - run the coordination model over a full horizon for a regime (today / no-operator / coordinated). Same supply in every regime; only coordination changes.
- **submit_proof_request** - a Seeker submits a Proof Request; returns an id to poll.
- **poll_proof** - check a request; on settle it carries a proof id and attestation, delivered the way a proof returns to a Seeker callback. Zero humans.
- **compose_workflow** - define an ordered sequence (observe, request_proof, act, settle) and the surface runs the whole thing, returning an attested trace with humans in the loop = 0.
There is also an `proofmarket://about` resource describing what the surface is and is not.
## Run it
```bash
npm install
npm test # in-memory MCP client lists tools, drives the surface
npm run demo # an agent drives the surface end to end, no human in the loop
npm start # start the MCP server on stdio
```
## Connect it to an agent
Claude Desktop (`claude_desktop_config.json`), Cursor, or any MCP client over stdio:
```json
{
"mcpServers": {
"proofmarket-surface": {
"command": "node",
"args": ["/absolute/path/to/proofmarket-mcp/src/server.js"]
}
}
}
```
Then ask the agent to check the market, compare coordination regimes, and compose
a proof workflow. It will call the tools directly, with no human in the loop.
## Why this exists
A protocol without a machine-callable surface is invisible to agents no matter
how capable its onchain logic is. The point of this repo is not to reimplement
Fermah. It is to make the surface concrete, runnable, and honest: an agent can
drive a proof market end to end, and you can read every line of how it works.
## License
MIT. Built by ZERTH MAXX ([@0maxxdev](https://x.com/0maxxdev)).
Not affiliated with or endorsed by Fermah.
TDQS
Scored across 5 tools
Most tools have clear boundaries: submit_proof_request and poll_proof handle request lifecycle, simulate_coordination explores scenarios, and compose_workflow orchestrates. However, market_state and simulate_coordination both report utilization and gaps, so agents could initially confuse which to use for current market health vs. hypothetical coordination regimes.
The set is mostly verb_noun (simulate_coordination, submit_proof_request, poll_proof, compose_workflow), but market_state breaks the pattern as a noun phrase rather than get_market_state, creating minor inconsistency.
Five tools is appropriate for the server's focus on market analysis, request submission, status polling, and workflow composition. It's neither sparse nor bloated, covering the core interactions with a proof market.
The core lifecycle is covered: market state inquiry, simulation for planning, request submission, result polling, and workflow orchestration. Missing operations like canceling requests or listing historical requests are workable gaps, but the essential seeker-approval journey is represented.