REA
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Grade MCP servers A to F with the open behavioral litmus. npm: full toolset; hosted: lookups only.
Pick the AI app you use, then copy the settings.
Passed 3/4 checks · Runs on your computer
We hid some of the commands
Connect by URL: the server address did not answer when we checked
Use “Run on your computer” instead; the steps are below
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
One time only; it works for every server that needs Node.js
SettingsDeveloperEdit Config
{
"mcpServers": {
"litmus": {
"command": "npx",
"args": [
"-y",
"@polygraphso/litmus",
"polygraphso-litmus-mcp"
]
}
}
}Use Litmus and tell me what you can do for me, then show me one thing✓ If Claude says it is using Litmus or shows a Litmus tool in the answer, you are connected
The command above works without these. Add them only if you want to change something, following the maker’s description.
POLYGRAPH_API_URL Base URL for published-grade lookups (check_server, list_servers, request_grade) and attestation resolution. · default https://polygraph.soNEXT_PUBLIC_POLYGRAPH_NETWORK Which network to read attestations from: 'base' (mainnet, default) or 'base-sepolia' (testnet). · default baseDescriptions are as written by the maker.
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect Litmus yet
Litmus runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect Litmus
B · Others in Developer tools that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
Works with Claude Code, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add --scope user litmus -- npx -y @polygraphso/litmus polygraphso-litmus-mcpYou should see Litmus listed as connected
Use Litmus and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Litmus or shows a Litmus tool in the answer, you are connected
The command above works without these. Add them only if you want to change something, following the maker’s description.
POLYGRAPH_API_URL Base URL for published-grade lookups (check_server, list_servers, request_grade) and attestation resolution. · default https://polygraph.soNEXT_PUBLIC_POLYGRAPH_NETWORK Which network to read attestations from: 'base' (mainnet, default) or 'base-sepolia' (testnet). · default baseDescriptions are as written by the maker.
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Use Litmus and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Litmus or shows a Litmus tool in the answer, you are connected
The command above works without these. Add them only if you want to change something, following the maker’s description.
POLYGRAPH_API_URL Base URL for published-grade lookups (check_server, list_servers, request_grade) and attestation resolution. · default https://polygraph.soNEXT_PUBLIC_POLYGRAPH_NETWORK Which network to read attestations from: 'base' (mainnet, default) or 'base-sepolia' (testnet). · default baseDescriptions are as written by the maker.
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Use Litmus and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Litmus or shows a Litmus tool in the answer, you are connected
The command above works without these. Add them only if you want to change something, following the maker’s description.
POLYGRAPH_API_URL Base URL for published-grade lookups (check_server, list_servers, request_grade) and attestation resolution. · default https://polygraph.soNEXT_PUBLIC_POLYGRAPH_NETWORK Which network to read attestations from: 'base' (mainnet, default) or 'base-sepolia' (testnet). · default baseDescriptions are as written by the maker.
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
Claude Code
claude mcp add --scope user litmus -- npx -y @polygraphso/litmus polygraphso-litmus-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"litmus": {
"command": "npx",
"args": [
"-y",
"@polygraphso/litmus",
"polygraphso-litmus-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"litmus": {
"command": "npx",
"args": [
"-y",
"@polygraphso/litmus",
"polygraphso-litmus-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"litmus": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@polygraphso/litmus",
"polygraphso-litmus-mcp"
]
}
}
}POLYGRAPH_API_URL envNEXT_PUBLIC_POLYGRAPH_NETWORK envDescriptions are as written by the maker.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
npm: @polygraphso/litmusBased on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Connect over the internet in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
The server did not answer when we last checked, so we could not read its tools.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 14, 2026
The registry name was verified with the GitHub account polygraphso, which owns the repo
Code last changed 4 months ago
Uses Apache-2.0
Did not respond within 6 seconds when we checked
Did not respond within 6 seconds when we checked
Not checked yet; we read the tool list when we check the endpoint
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 4 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed 4 months ago, and the latest version (0.36.0) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT on the web (full MCP on Business and above; Pro read-only).
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
The open behavioral litmus harness for MCP servers — grade A–F, reproducible.
# -p is required: the package ships three bins, so npx must be told which to run
npx -y -p @polygraphso/litmus polygraphso-litmus litmus npm/@modelcontextprotocol/server-filesystem
Point it at an npm ref, a pypi ref, a github/owner/repo ref (cloned, built, and run sandboxed — Docker required; the grade pins the commit SHA), an https:// MCP endpoint, or a local entry file. The harness connects the way an agent would, fingerprints the exact tool surface, runs the four probe categories, and prints the grade with the findings behind it — plus a deterministic evidence bundle on disk. It runs the target's code (egress is Docker-sandboxed; without Docker, C-02 is skipped and the grade caps at B), takes ~20–60s, and exits non-zero on D/F so it scripts anywhere. To dispute any published grade, re-run this same command against the same server — open and deterministic means a re-run reproduces the grade, or refutes it.
Looking up a grade someone already published takes under a second and runs nothing: the polygraph.so index, or check_server from the MCP tools below.
For grade lookups, point any MCP client at polygraph's hosted endpoint, no install:
claude mcp add --transport http polygraph https://polygraph.so/api/mcp
or the raw config:
{ "mcpServers": { "polygraph": { "url": "https://polygraph.so/api/mcp" } } }
This serves the lookup tools only (check_server, list_servers, request_grade); grading a server yourself (run_litmus, run_skill_litmus) executes its code, so it needs the local stdio install below.
The package also ships a stdio MCP server (polygraphso-litmus-mcp) with the full toolset, for any MCP-capable client:
grade/limit/offset filters and a full-corpus summary).In Claude Code, the plugin wires the server plus two commands in one step:
/plugin marketplace add polygraphso/litmus
/plugin install polygraph@polygraphso
then /polygraph:grade and /polygraph:check . Cursor and manual JSON setups are on polygraph.so; full tool docs in packages/litmus/README.md.
Fail a build when an MCP server or an Agent Skill it ships grades D/F under the open behavioral litmus. For servers it is hybrid — a fast lookup of the published grade, then the harness when ungraded; for skills it is a fast static scan. Un-gradeable targets warn unless strict.
It's on the [GitHub Marketplace](https://github.com/marketplace/actions/polygraph-mcp-gate) as polygraphso/litmus@v1. For a security gate, pin to a commit SHA rather than the mutable @v1 tag:
# .github/workflows/mcp-gate.yml
name: mcp-gate on: [pull_request] # NOT pull_request_target — that exposes secrets to fork PRs permissions: contents: read jobs: gate: runs-on: ubuntu-latest steps:
servers: | npm/@modelcontextprotocol/server-filesystem skills: | ./my-skill
Inputs: servers · skills · discover (default false) · min-grade · strict · working-directory · version · bearer. Outputs: result · failed · report.
Security. Grading a server runs its code (egress is Docker-sandboxed, but it still executes). Trigger on pull_request, never pull_request_target. Keep discover off on public repos and name targets explicitly — auto-discovered config is pull-request-controllable. bearer is sent as an Authorization header to the target, so pass it only for an explicitly trusted, pinned remote — never with discovery or on untrusted PRs, and keep it scoped and short-lived.
Not on GitHub? The gate is a plain command — npx @polygraphso/litmus@0.20.0 ci (pin the version) — so it runs in any CI or as a pre-commit hook. A grade is a measurement, not a guarantee: re-run the open harness to reproduce any result.
This is the source for [`@polygraphso/litmus`](https://www.npmjs.com/package/@polygraphso/litmus), the open behavioral litmus harness for MCP servers from polygraph.so.
The harness connects to an MCP server the way an agent would, fingerprints its exact tool surface, and runs four probe categories — C-01 tool-output injection (static, dynamic, and second-order — one tool's output weaponized as another's input), C-02 permission/egress (in a hardened default-deny Docker sandbox, matched host and port), C-03 sensitive-data handling (planted canaries), C-04 adversarial-input handling (malformed/oversized and jailbreak inputs) — then grades the server A–F. A passing grade is a measurement, not a guarantee; the methodology and its disclosed limits are at polygraph.so (the open source here is the ground truth).
Alongside the grade, an npm target's dependency tree is checked against the osv.dev vulnerability database and any vulnerable dependencies are reported as dependency advisories. This is a separate, point-in-time signal — it is *advisory only*: it never affects the A–F grade and is not part of the reproducible evidence (vulnerability data changes over time, so folding it into the grade would break re-run reproducibility). It applies to npm targets only; other target kinds report it as skipped. Resolution runs npm install --package-lock-only --ignore-scripts, which resolves the tree without downloading tarballs or running any package code. Opt out with --no-deps-audit (or LITMUS_DEPS_AUDIT=0).
The same package also grades Claude Code / Agent Skills (a SKILL.md + bundle) under a separate static litmus (litmus-skill-v3): a deterministic byte-scan — S-01 prompt injection, S-03 data-exfiltration instructions, S-04 dangerous commands in the SKILL.md body or bundled scripts (incl. base64-obfuscated curl | bash) — graded A/B/D/F and anchored by a whole-directory content hash, plus a separate advisory quality signal. It is *static* (no execution): an A is static-clean, not behavioral proof. See packages/litmus/README.md.
The hosted, operator-run grading service is not in this repo — it lives in a separate private repo and consumes this package from npm like any other client.
This is a pnpm monorepo. Only `@polygraphso/litmus` is published; the @polygraph/* packages are private building blocks that tsup bundles into it.
packages/
litmus/ # @polygraphso/litmus — the only published package (lib + 3 bins: CLI, skill CLI, MCP) core/ # contract types, canonical JSON, identity helpers probes/ # the harness: connect, fingerprint, grade, probe runners, sandbox onchain/ # EAS attestation read + encode/decode (Base) — read-only, no minting agent/ # agent-gate decision logic + live-fingerprint recheck mcp/ # MCP server wrapper cli/ # CLI commands + target/auth resolution demo-*-mcp/ # demo MCP servers used as test fixtures
See packages/litmus/README.md for the npm-facing usage docs, and polygraph.so for the methodology and proof format.
pnpm install
pnpm -r typecheck pnpm -r test pnpm --filter @polygraphso/litmus build # → packages/litmus/dist
@polygraphso/litmus is versioned in packages/litmus/package.json. Tag to publish:
git tag litmus-v<x.y.z> && git push origin litmus-v<x.y.z>
The Publish @polygraphso/litmus workflow builds, typechecks, tests, and publishes with npm provenance. See CONTRIBUTING.md for the full process and the local-development workflow for downstream consumers.
Apache-2.0 — © polygraph.so.