MCP 서버

litmus

io.github.polygraphso/litmus
MCP 및 에이전트 인프라 보안 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Looks up published behavioral grades for MCP servers and lists servers that have been evaluated.

check_server
Check a server's published polygraph grade
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.
읽기 전용 외부 접근 가능
입력 스키마
{'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}
출력 스키마
{'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}
list_servers
List servers with a published grade
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`.
읽기 전용 외부 접근 가능
입력 스키마
{'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}
출력 스키마
{'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}
request_grade
Request a polygraph grade for an MCP server
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>.
외부 접근 가능 멱등성
입력 스키마
{'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}
출력 스키마
{'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}
추가됨
request_grade
2026년 9월 17일 12:49 PM
추가됨
list_servers
2026년 9월 17일 12:49 PM
추가됨
check_server
2026년 9월 17일 12:49 PM