polygraph.so
Login

Builders

Grade a server. Gate your CI. Ship a badge.

The open litmus harness grades an MCP server A to F with reproducible, content-addressed evidence. Add it to your agent, run it from your terminal, gate a build on it, or embed a live badge. All self-serve, all free.

Run a whole network, not just your own tools?Ecosystem monitoring →

Run polygraph in your agent, or grade a server from your terminal.

The open litmus harness grades a server A to F with reproducible, content-addressed evidence. Add it to your agent, run it yourself, or gate your CI on it.
Add to Cursor

One click: installs the MCP server (run_litmus, verify_attestation). Prefer to edit ~/.cursor/mcp.json? Use the config below.

$ npx -y -p @polygraphso/litmus polygraphso-litmus litmus <mcp-server>

Grade a server yourself. Or wire the MCP server into any client with npx -y -p @polygraphso/litmus polygraphso-litmus-mcp.

/plugin install polygraph@polygraphso

Claude Code, after /plugin marketplace add polygraphso/litmus. Claude Desktop: paste the config below into claude_desktop_config.json.

Fail a build when a tool grades D/F.

The composite GitHub Action stops a merge when an MCP server (or a skill it ships) grades D/F. On the GitHub Marketplace as polygraphso/litmus@v1.
# .github/workflows/mcp-gate.yml
name: mcp-gate
on: [pull_request]
permissions:
  contents: read
jobs:
  gate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: polygraphso/litmus@v1

Show your grade where developers look.

Maintain a server we’ve graded? Put its live polygraph on your README, npm page, or docs. The badge reads the current grade, updates itself, and links back to the reproducible report.
Example polygraph grade card for an MCP server

A fuller card for a README header or a docs page.

Example polygraph grade badgesits in a README badge row
[![polygraph](https://polygraph.so/api/badge?server=npm/@modelcontextprotocol/server-filesystem)](https://polygraph.so/mcp/npm/@modelcontextprotocol/server-filesystem)

Swap in your own registry/owner/name ref. Full embed guide →

See a live report →

One config, every MCP client.

Same config everywhere: paste into ~/.cursor/mcp.json (Cursor), claude_desktop_config.json (Claude Desktop), or your client’s MCP config.
{
  "mcpServers": {
    "polygraph-litmus": {
      "command": "npx",
      "args": ["-y", "-p", "@polygraphso/litmus", "polygraphso-litmus-mcp"],
      "env": { "POLYGRAPH_API_URL": "https://polygraph.so" }
    }
  }
}

Every grade is behavioral and reproducible. Re-run the open harness against the same ref to check it. Browse the full MCP Security Index, or read the methodology.