litmus

Grade MCP servers A to F with the open behavioral litmus. npm: full toolset; hosted: lookups only.

사용해야 할까요

품질 및 안전성

A
설명 품질
93%
스키마 완전성
97%
이름 품질
93%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,468토큰 (도구 정의)
~4.9 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.15%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "litmus": {
      "command": "npx",
      "args": [
        "@polygraphso/litmus"
      ]
    }
  }
}

실행 가능한 패키지

npm@polygraphso/litmus0.36.0stdio

원격 엔드포인트

https://polygraph.so/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (3)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢check_server(server_ref)

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",
  "properties": {
    "server_ref": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512,
      "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"
    }
  },
  "required": [
    "server_ref"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "graded",
        "not_available"
      ],
      "description": "Whether a published grade exists."
    },
    "server_ref": {
      "type": "string"
    },
    "grade": {
      "type": "string",
      "description": "A-F, present when status is graded."
    },
    "categories": {
      "type": "object",
      "properties": {
        "c01": {
          "type": "string"
        },
        "c02": {
          "type": "string"
        },
        "c03": {
          "type": "string"
        }
      },
      "required": [
        "c01",
        "c02",
        "c03"
      ],
      "additionalProperties": false,
      "description": "Per-category pass/fail, present when graded."
    },
    "current_version": {
      "type": [
        "string",
        "null"
      ]
    },
    "version_match": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "report_url": {
      "type": "string"
    },
    "self_grade": {
      "type": "string",
      "description": "One-command reproduce/grade, present on a miss."
    }
  },
  "required": [
    "status",
    "server_ref"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_servers(grade, limit, offset)

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",
  "properties": {
    "grade": {
      "type": "string",
      "enum": [
        "A",
        "B",
        "C",
        "D",
        "F"
      ],
      "description": "Restrict to servers with this grade."
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Rows to return. Default 25, capped at 100 per call."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Rows to skip before taking `limit`, for paging past the first page."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "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",
        "properties": {
          "server_ref": {
            "type": "string"
          },
          "polygraph": {
            "type": "string"
          }
        },
        "required": [
          "server_ref",
          "polygraph"
        ],
        "additionalProperties": false
      }
    },
    "summary": {
      "type": "object",
      "properties": {
        "total": {
          "type": "number",
          "description": "Total graded servers across the whole corpus."
        },
        "byGrade": {
          "type": "object",
          "properties": {
            "A": {
              "type": "number"
            },
            "B": {
              "type": "number"
            },
            "C": {
              "type": "number"
            },
            "D": {
              "type": "number"
            },
            "F": {
              "type": "number"
            }
          },
          "required": [
            "A",
            "B",
            "C",
            "D",
            "F"
          ],
          "additionalProperties": false,
          "description": "Count of graded servers per letter, across the whole corpus."
        }
      },
      "required": [
        "total",
        "byGrade"
      ],
      "additionalProperties": false,
      "description": "Always covers the full graded corpus, independent of `grade`, `limit`, or `offset`."
    }
  },
  "required": [
    "total",
    "servers",
    "summary"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢request_grade(server_ref)

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",
  "properties": {
    "server_ref": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512,
      "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"
    }
  },
  "required": [
    "server_ref"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "const": "queued"
    },
    "server_ref": {
      "type": "string",
      "description": "The server ref that was recorded."
    },
    "created": {
      "type": "boolean",
      "description": "false if the server was already recorded."
    },
    "demand": {
      "type": "number",
      "description": "How many times this server has been requested."
    },
    "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."
    },
    "payment": {
      "type": "object",
      "properties": {
        "required": {
          "type": "boolean",
          "description": "false when the fee is already paid or authorized."
        },
        "usdPrice": {
          "type": "number",
          "description": "The one-time fee, in USD."
        },
        "payUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "Human/browser checkout for this request, paid in $POLYGRAPH."
        },
        "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."
        },
        "network": {
          "type": "string",
          "description": "CAIP-2 chain id the x402 payment settles on: eip155:8453 (Base mainnet)."
        },
        "asset": {
          "type": "string",
          "description": "The token the x402 rail expects: USDC."
        }
      },
      "required": [
        "required",
        "usdPrice",
        "payUrl",
        "x402Url",
        "network",
        "asset"
      ],
      "additionalProperties": false,
      "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."
    }
  },
  "required": [
    "status",
    "server_ref",
    "created",
    "demand",
    "requestId",
    "statusUrl",
    "payment"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 3개
검증됨버전이 기록되지 않음도구 3개