Grade MCP servers A to F with the open behavioral litmus. npm: full toolset; hosted: lookups only.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Registry-prefixed server ref: npm/<name>, npm/@scope/<name>, pypi/<name>, or github/<owner>/<repo>, with an optional @version. Example: npm/@modelcontextprotocol/server-filesystem
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.
| Argument | Type | Description |
|---|---|---|
| server_ref* | string | Registry-prefixed server ref: npm/<name>, npm/@scope/<name>, pypi/<name>, or github/<owner>/<repo>, with an optional @version. Example: npm/@modelcontextprotocol/server-filesystem |
{
"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
}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`.
| Argument | Type | Description |
|---|---|---|
| grade | string | Restrict to servers with this grade. |
| limit | integer | Rows to return. Default 25, capped at 100 per call. |
| offset | integer | Rows to skip before taking `limit`, for paging past the first page. |
{
"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
}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>.
| Argument | Type | Description |
|---|---|---|
| server_ref* | string | Registry-prefixed server ref: npm/<name>, npm/@scope/<name>, pypi/<name>, or github/<owner>/<repo>, with an optional @version. Example: npm/@modelcontextprotocol/server-filesystem |
{
"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
}