Request a polygraph grade for an MCP server
request_gradeRecord a grade request with polygraph.so. Recording is free; only real, plausibly-MCP targets are accepted. Grading starts once the request's one-time $1 USD fee is paid: payment.payUrl is the human/browser checkout (paid in $POLYGRAPH), and payment.x402Url is the agent rail, POST the same request body there with an x402-capable client. A bare POST to x402Url returns a 402 with the exact payment requirements; retry with an X-PAYMENT header. Asset is USDC on Base mainnet (eip155:8453). On the x402 rail settlement is deferred: the authorization is charged only once a grade lands, and a run the harness cannot complete voids it, so nothing is charged. Paying starts a 48h grading clock. The fee buys the run, never the grade. After paying, poll check_server with the same server_ref for the published result, or poll statusUrl for progress.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| server_ref | Yes | Registry-prefixed server ref: npm/<name>, npm/@scope/<name>, pypi/<name>, or github/<owner>/<repo>, with an optional @version. Example: npm/@modelcontextprotocol/server-filesystem |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| demand | Yes | How many times this server has been requested. | |
| status | Yes | ||
| created | Yes | false if the server was already recorded. | |
| payment | Yes | How grading is paid for. The web checkout settles up front in $POLYGRAPH; the x402 rail takes an authorization that is charged only once a grade lands, and a run the harness cannot complete voids it, so nothing is charged. The fee buys the run, never the grade. | |
| requestId | Yes | The recorded request's id. | |
| statusUrl | Yes | Poll for grading progress (unpaid, grading, graded, failed); check_server also reflects the published result. | |
| server_ref | Yes | The server ref that was recorded. |