Litmus logo

Litmus

Grade MCP servers A–F with reproducible behavioral probes, evidence bundles, and optional CI enforcement.

Install Litmus

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "litmus": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "@polygraphso/litmus",
        "polygraphso-litmus"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

The litmus MCP server grades MCP servers from A–F using reproducible behavioral probes and content-addressed evidence. It connects to npm, PyPI, GitHub, HTTPS MCP endpoints, or local entry files, fingerprints the tool surface, runs four probe categories, and reports findings. Use it to assess a server before installation, verify a published grade, or gate CI on minimum grades. Running a grade executes target code and requires Docker for the egress probe.

Use cases

  • Grade an MCP server before installing it
  • Check published server grades without executing targets
  • Gate CI on minimum MCP server or skill grades
  • Inspect behavioral evidence for a disputed grade

Key features

  • A–F behavioral grading
  • Four security and robustness probe categories
  • Deterministic evidence bundles
  • Published grade lookup
  • Docker-sandboxed egress testing
  • GitHub Actions CI gate

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

7/7 checks healthy over the last 46d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 13d ago via OSV.dev · @polygraphso/litmus (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars8Stargazers on the source repository.
npm downloads45kPackage downloads in the last 30 days.
Last commit3mo agoMost recent push to the default branch.

How Litmus works

What litmus does

The litmus MCP server evaluates MCP servers through the way an agent would interact with them. It records the target's exact tool surface, runs behavioral checks, assigns an A–F grade, and writes a deterministic evidence bundle. Results include the findings supporting the grade rather than only a letter.

The harness accepts npm and PyPI references, github/owner/repo targets, HTTPS MCP endpoints, and local entry files. GitHub targets are cloned, built, and run in a sandbox, with the commit SHA pinned for the grade. A typical run takes about 20–60 seconds and exits with a non-zero status for D or F results.

The four probe categories cover tool-output injection, permission and egress behavior, sensitive-data handling, and adversarial inputs. The npm workflow can also inspect dependencies against the OSV vulnerability database. That dependency result is a separate, point-in-time advisory and does not change the behavioral grade.

How it works

The litmus MCP server first connects to the target and fingerprints its available tools. It then exercises the four probe groups: C-01 checks static, dynamic, and second-order tool-output injection; C-02 checks network permissions in a default-deny Docker environment; C-03 uses planted canaries to examine sensitive-data handling; and C-04 sends malformed, oversized, and jailbreak-style inputs.

Docker is required for the GitHub build-and-run path and for the egress isolation used by C-02. Without Docker, C-02 is skipped and the resulting grade is capped at B. Because grading executes the target's code, the README recommends treating target selection and CI discovery as security-sensitive operations.

Published grades can be read without executing the target. The hosted MCP endpoint provides lookup-only access, while local execution is needed for run_litmus and run_skill_litmus. Re-running the same command against the same target is intended to reproduce the result or provide evidence for disputing it.

Setup and configuration

Run a one-off grade with:

Terminal
npx -y -p @polygraphso/litmus polygraphso-litmus litmus npm/@modelcontextprotocol/server-filesystem

The -p option selects the package because the npm distribution contains three command-line binaries. For CI or a pre-commit hook, use the package's ci command and pin a version, such as npx @polygraphso/litmus@0.20.0 ci.

For lookup-only use, configure an MCP client with https://polygraph.so/api/mcp. The package also includes the stdio server polygraphso-litmus-mcp, which exposes the full tool set to MCP-capable clients. Claude Code users can install the accompanying plugin and use its grade and check commands. Cursor can be configured through the documented manual JSON setup.

Tools and capabilities

The local MCP server exposes:

  • check_server to retrieve a published grade without running the target.
  • list_servers to browse graded servers with pagination, grade filters, and corpus totals.
  • request_grade to submit a paid grade request; the response includes the payment link.
  • run_litmus to execute the behavioral harness and return the grade with evidence.
  • run_skill_litmus to statically assess a Claude Code or Agent Skill as A, B, D, or F.
  • verify_attestation to inspect the onchain proof for a published grade on Base.

The GitHub Action can fail builds when servers or skills fall below a configured minimum. It supports explicit targets, optional discovery, strict handling of ungradeable targets, a working directory, a version, and a bearer value. The same gate can run outside GitHub as a command.

Limitations and notes

A grade measures the tested behavior; it is not a guarantee of safety. Running a target still executes its code, even though egress is sandboxed. On public repositories, the README advises using explicit target allowlists, leaving discovery disabled, avoiding pull_request_target, and supplying bearer credentials only to trusted, pinned remotes.

Dependency auditing applies only to npm targets. It resolves the dependency tree with npm install --package-lock-only --ignore-scripts, does not download tarballs or run package code, and can be disabled with LITMUS_DEPS_AUDIT=0. Vulnerability data may change after a grade, so it is excluded from reproducible evidence.

The litmus MCP server's hosted endpoint serves lookup tools only. Local stdio installation is required when an agent needs to grade a target immediately or run the skill-specific check.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Litmus

litmus is an MCP server that connects agents to Polygraph's MCP grading and lookup system. Its main tools check published grades, list graded servers, request new grades, run the behavioral litmus harness, assess Claude Code or Agent Skills, and verify onchain attestations. Local execution is required for immediate grading.

Install the stdio package with the documented npm command or configure the hosted HTTP endpoint at `https://polygraph.so/api/mcp`. The hosted endpoint provides lookup tools only; use the local `polygraphso-litmus-mcp` package when you need to run a grade.

Yes, litmus works with Cursor through the manual JSON MCP configuration documented by Polygraph. The hosted endpoint can provide lookup tools, while a local stdio setup is needed for grading a server immediately.

Yes, use `polygraphso/litmus@v1` or pin the action to a commit SHA. Configure server or skill targets, an optional minimum grade, and strict handling for ungradeable targets. The action can look up published grades and grade ungraded servers.

Docker is required for sandboxed egress testing and for cloning, building, and running GitHub repository targets. Without Docker, the C-02 probe is skipped and the grade is capped at B.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewLitmus AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/litmus?style=directory)](https://allmcps.com/mcp/litmus)
HTML Embed
<a href="https://allmcps.com/mcp/litmus"><img src="https://allmcps.com/api/badge/litmus?style=directory" alt="Litmus on AllMCPs" /></a>