{"server":"io.github.polygraphso/litmus","count":3,"tools":[{"name":"check_server","title":"Check a server's published polygraph grade","description":"Read a server's published behavioral grade (A-F) from polygraph.so in under a second; no execution. The pre-flight check before recommending or installing an MCP server. On a miss it returns not_available (unevaluated: neither safe nor unsafe) with next steps.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["server_ref"],"properties":{"server_ref":{"type":"string","maxLength":512,"minLength":1,"description":"Registry-prefixed server ref: npm/<name>, npm/@scope/<name>, pypi/<name>, or github/<owner>/<repo>, with an optional @version. Example: npm/@modelcontextprotocol/server-filesystem"}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["status","server_ref"],"properties":{"grade":{"type":"string","description":"A-F, present when status is graded."},"status":{"enum":["graded","not_available"],"type":"string","description":"Whether a published grade exists."},"categories":{"type":"object","required":["c01","c02","c03"],"properties":{"c01":{"type":"string"},"c02":{"type":"string"},"c03":{"type":"string"}},"description":"Per-category pass/fail, present when graded.","additionalProperties":false},"report_url":{"type":"string"},"self_grade":{"type":"string","description":"One-command reproduce/grade, present on a miss."},"server_ref":{"type":"string"},"version_match":{"type":["boolean","null"]},"current_version":{"type":["string","null"]}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T17:24:49.596Z"},{"name":"list_servers","title":"List servers with a published grade","description":"Servers with a published polygraph grade, sorted A-first then by ref. Returns up to `limit` rows starting at `offset` (default limit 25, capped at 100 per call); `grade` restricts to one letter. `summary` always covers the full graded corpus (a total plus a count per grade), regardless of `grade`, `limit`, or `offset`.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"grade":{"enum":["A","B","C","D","F"],"type":"string","description":"Restrict to servers with this grade."},"limit":{"type":"integer","description":"Rows to return. Default 25, capped at 100 per call.","exclusiveMinimum":0},"offset":{"type":"integer","minimum":0,"description":"Rows to skip before taking `limit`, for paging past the first page."}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["total","servers","summary"],"properties":{"total":{"type":"number","description":"Rows matching `grade` (if given), before `limit`/`offset`. Equals summary.total when grade is omitted."},"servers":{"type":"array","items":{"type":"object","required":["server_ref","polygraph"],"properties":{"polygraph":{"type":"string"},"server_ref":{"type":"string"}},"additionalProperties":false}},"summary":{"type":"object","required":["total","byGrade"],"properties":{"total":{"type":"number","description":"Total graded servers across the whole corpus."},"byGrade":{"type":"object","required":["A","B","C","D","F"],"properties":{"A":{"type":"number"},"B":{"type":"number"},"C":{"type":"number"},"D":{"type":"number"},"F":{"type":"number"}},"description":"Count of graded servers per letter, across the whole corpus.","additionalProperties":false}},"description":"Always covers the full graded corpus, independent of `grade`, `limit`, or `offset`.","additionalProperties":false}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T17:24:49.596Z"},{"name":"request_grade","title":"Request a polygraph grade for an MCP server","description":"Hosted grading is discontinued. This tool returns gone. Existing published grades remain available via check_server / list_servers. To grade a server yourself, run the open harness: npx -y -p @polygraphso/litmus polygraphso-litmus litmus <server_ref>.","input_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["server_ref"],"properties":{"server_ref":{"type":"string","maxLength":512,"minLength":1,"description":"Registry-prefixed server ref: npm/<name>, npm/@scope/<name>, pypi/<name>, or github/<owner>/<repo>, with an optional @version. Example: npm/@modelcontextprotocol/server-filesystem"}},"additionalProperties":false},"output_schema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["status","server_ref","created","demand","requestId","statusUrl","payment"],"properties":{"demand":{"type":"number","description":"How many times this server has been requested."},"status":{"type":"string","const":"queued"},"created":{"type":"boolean","description":"false if the server was already recorded."},"payment":{"type":"object","required":["required","usdPrice","payUrl","x402Url","network","asset"],"properties":{"asset":{"type":"string","description":"The token the x402 rail expects: USDC."},"payUrl":{"type":["string","null"],"description":"Human/browser checkout for this request, paid in $POLYGRAPH."},"network":{"type":"string","description":"CAIP-2 chain id the x402 payment settles on: eip155:8453 (Base mainnet)."},"x402Url":{"type":"string","description":"The agent payment endpoint. POST the same request body here; a bare POST returns a 402 with the exact payment requirements, and a retry with an X-PAYMENT header pays it."},"required":{"type":"boolean","description":"false when the fee is already paid or authorized."},"usdPrice":{"type":"number","description":"The one-time fee, in USD."}},"description":"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.","additionalProperties":false},"requestId":{"type":["string","null"],"description":"The recorded request's id."},"statusUrl":{"type":["string","null"],"description":"Poll for grading progress (unpaid, grading, graded, failed); check_server also reflects the published result."},"server_ref":{"type":"string","description":"The server ref that was recorded."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:24:49.596Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/io.github.polygraphso%2Flitmus/connection?target=mcpServers","arguments":{"name":"io.github.polygraphso/litmus","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/io.github.polygraphso%2Flitmus","arguments":{"name":"io.github.polygraphso/litmus"}}]}