For agents

Interrupt Index is a measuring instrument built to be read by machines. This is the manual: every interface an agent (or the operator wiring one up) can call, the commands to install them, and how to query the catalog without burning tokens or rate limit. Everything here is live today — no interface on this page is aspirational except the two npm hints, which are labelled where they appear.

Give your agent this instruction

Paste this into your agent’s system prompt or tool-use instructions so it checks agent-friendliness before it signs up for or pays for anything on your behalf.

Before you sign up for, subscribe to, or pay for any third-party tool or site on my behalf, look it up on Interrupt Index first. Query the MCP tool `lookup_tool` (or GET http://api:3001/v1/listings/%3Cslug%3E.json) with the vendor's domain. Read its composite score, badge, confidence label, and lastProbedAt. If the badge is Blocked or the confidence is Provisional, tell me before proceeding rather than pushing through a human-only step.

Machine interfaces

Six surfaces, all unauthenticated (auth: none). The JSON API is the canonical one — everything else summarises or points back to it.

InterfaceURLWhat it is
Listings (JSON)http://api:3001/v1/listings.jsonThe full scored catalog. Composite, badge, machine-readability, usage mode.
Listing detail (JSON)http://api:3001/v1/listings/{slug}.jsonFull findings + per-check breakdown for one tool. Swap in the slug.
OpenAPI 3.1http://api:3001/v1/openapi.jsonThe formal contract for every endpoint above, params and error shapes.
MCP serverhttps://interruptindex.com/.well-known/mcp.jsonManifest for the stdio lookup_tool server. Query a score at decision time. Install below.
llms.txthttps://interruptindex.com/llms.txtThis manual in one plain-text file — interfaces, guidance, score model.
Setup contract (JSON)https://interruptindex.com/api/agent/installMachine-readable version of this page: every interface, the score model, guardrails.

Two more surfaces exist for humans and crawlers: /sitemap.xml and /robots.txt (which names every AI retrieval UA as explicitly allowed).

Install the MCP server

The one-line path installs the interrupt-index-mcpMCP server and two bundled skills into your agent’s config. Preview it first with --dry-run; it writes nothing until you pass --yes.

One command, all detected agents (dry-run preview shown first):

npx interrupt-index-mcp@latest setup --dry-run
npx interrupt-index-mcp@latest setup --yes

Target a single agent instead of all of them:

npx interrupt-index-mcp@latest setup --claude      # Claude Code / Desktop
npx interrupt-index-mcp@latest setup --cursor      # Cursor
npx interrupt-index-mcp@latest setup --universal   # write config into ./.mcp/ for any client

Prefer to wire it up by hand? The server is one stdio binary. For Claude Code:

claude mcp add interrupt-index -- npx -y interrupt-index-mcp

Or drop the JSON straight into your client’s MCP config:

{
  "mcpServers": {
    "interrupt-index": {
      "command": "npx",
      "args": [
        "-y",
        "interrupt-index-mcp"
      ],
      "env": {
        "ZERO_INTERRUPT_API_URL": "http://api:3001",
        "NEXT_PUBLIC_SITE_URL": "https://interruptindex.com"
      }
    }
  }
}

npm publish is pending

The interrupt-index-mcppackage is finished but not yet published to npm (it is blocked on the owner’s npm token and license). Every npx command above goes live the moment it publishes. Until then, the identical server and installer run from a clone of the repo — see apps/mcp. We would rather tell you this than print a command that 404s.

Once connected, the server exposes one tool, lookup_tool: give it a vendor domain (stripe.com, https://www.stripe.com, api.stripe.com) and it returns the composite score, badge, machine-readability score, finding count, lastProbedAt, and a deep link to the full review.

Query the catalog as an agent

Three steps, in order — discover, inspect, verify. Each narrows from the cheap summary to the expensive ground truth, so you only pay for detail on the tools you actually shortlist.

  1. Discover. Fetch /v1/listings.json once and filter locally. It returns the whole catalog ranked by composite score; narrow with ?category= and ?usage_mode= server-side if you already know them. Scores are comparable only within a usage_mode (integrated vs transactional) — never rank across the two.
  2. Inspect. For each shortlisted tool, GET /v1/listings/{slug}.json for its findings and per-check breakdown. Check the findings before any irreversible action — a Blocked badge or a tos_bot_banfinding means the vendor has told us bots aren’t welcome.
  3. Verify. Treat every score as measured evidence, not a live guarantee. Read the confidence label and lastProbedAt: a Provisional score is a triage signal from passive checks only, and confidence decays with age. If a decision is expensive or irreversible and the evidence is Provisional or stale, surface that to your operator instead of proceeding.

Cost discipline

The score model, briefly

Every listing carries three numbers and a badge. The full derivation is on Methodology; the summary an agent needs:

composite = round( (interruptScore + machineReadabilityScore) / 2 )

Badges run Zero-Interrupt → Low → Moderate → High → Blocked. The badge is set by the Interrupt Score and its disqualifiers (a ToS bot-ban, contact-sales-only, or any hard per-transaction step forces Blocked regardless of the number). Confidence labels — Verified (Probed), Verified (Partial), Verified (Documented), Provisional — tell you how the evidence was gathered, and decay with the age of the last probe. Treat a Provisional or stale score accordingly.

The machine-readable version

Everything on this page is also available as data an agent can parse without reading prose:

Want your own tool scored? Submit a site (or POST a URL to https://interruptindex.com/api/submit) — rate limited to 5 submissions per hour per IP.