Install

Add mcpindex to your agent.

The gate is the product. It sits in the path of every MCP tool call and runs a deterministic contract-diff, so a server whose contract changed since you approved it can't silently change the tools your agent sees. Start there. If you just want to look first, there is a zero-install path too.

New here?Walk through install and watch your first HOLDA ~4-minute guided path, with the live drift demo, before you commit.
Where the gate sitsWithout mcpindex an agent calls an MCP server directly with nothing in between. With mcpindex the gate sits in the call path: it pins the contract, diffs it, and either proceeds to the server when the live contract matches the pin, or holds the call and returns it to the agent when the contract has changed. The gate runs on your host, holds no credentials, and the default build egresses nothing.TODAYyour agentNOTHING BETWEEN THEMMCP serverWITH THE GATEyour agentTOOLS/CALLmcpindex gatePIN · DIFF · DECIDEPROCEEDlive contract matches your pinMCP serverHELDthe contract changed since you pinned it.the call never leaves your machine.RUNS ON YOUR HOST · ZERO CREDENTIAL CUSTODY · DEFAULT BUILD EGRESSES NOTHING
Fig. 01 · The gate is inside the call path, so a hold actually stops the call.
Read Fig. 01 as text
TODAY          [ your agent ] - - - - - - - - - - - - - -> [ MCP server ]
                                nothing between them

WITH THE GATE  [ your agent ] --> [ mcpindex gate ] --> [ MCP server ]
                                   pin - diff - decide      PROCEED
                                          |                 live contract matches your pin
                                          +--| HELD
                                             the contract changed since you pinned it.
                                             the call never leaves your machine.

               runs on your host - zero credential custody - default build egresses nothing

Permalink, SVG & reuse · CC BY 4.0

Two jobs, two packagesTwo different jobs. Job one is the gate, installed from PyPI as mcpindex-gate: it runs in your call path, it can hold a call, and it cannot tell you what to install. Job two is the directory client, installed from npm as mcp-server-mcpindex or connected remotely: it runs beside your agent as an MCP server, it can search, recommend and look up an advisory verdict, and it cannot stop a call. Installing job two does not install job one. The mcp-index SDK and Mastra binding let you embed either job in your own code.JOB 1 · THE GATEmcpindex-gatePYPI · UV / PIPRUNSin your call pathCANHOLD a callCANNOTtell you what to installJOB 2 · THE DIRECTORY CLIENTmcp-server-mcpindexNPM · OR REMOTERUNSbeside your agent, as an MCP serverCANsearch · recommend · look up a verdictCANNOTstop a callINSTALLING JOB 2 DOES NOT INSTALL JOB 1. DIFFERENT PACKAGE, DIFFERENT JOB.@mcp-index/sdk · @mcp-index/mastraembed either job in your own code
Fig. 08 · Installing the directory client does not install the gate.
Read Fig. 08 as text
        JOB 1 - THE GATE          |        JOB 2 - THE DIRECTORY CLIENT
  ------------------------------  |  ------------------------------------------
  uv / pip:  mcpindex-gate        |  npm:  mcp-server-mcpindex
                                  |        or remote: mcpindex.ai/api/mcp
  runs   in your call path        |  runs   beside your agent, as an MCP server
  can    HOLD a call              |  can    search - recommend - look up a verdict
  cannot tell you what to install |  cannot stop a call

  ! installing job 2 does not install job 1. different package, different job.
  ---------------------------------------------------------------------------
  @mcp-index/sdk - @mcp-index/mastra   embed either job in your own code

Permalink, SVG & reuse · CC BY 4.0

The 90-second pathThe install timeline. At zero seconds you install the gate; at about twenty seconds the installer wires every MCP host it detects; at about thirty seconds you restart the host; at about forty-five seconds the first tools/list pins every tool, silently, with nothing to configure and nothing to see. Then nothing happens until the first drift, which is your first hold and the only time the gate interrupts you. Silence after install is the gate working, not the gate being broken.0sinstallthe gate20swire yourMCP hosts30srestartthe host45sfirst tools/list= every tool pinnedwheneverfirst drift= your first HOLDSILENTnothing to configure.nothing to see.this is correct.THE POINTthe only time the gateever interrupts you.read it, then decide.SILENCE AFTER INSTALL IS THE GATE WORKING, NOT THE GATE BEING BROKEN.
Fig. 16 · After you install, the correct experience is that nothing visible happens.
Read Fig. 16 as text
   0s ------ 20s ------ 30s ------ 45s -------------- whenever
    |          |          |          |                     |
  install    wire your  restart    first tools/list      first drift
  the gate   hosts      the host   = every tool pinned   = your first HOLD

                                   +---- silent ----+    +--- the point ---+
                                   | nothing to     |    | this is the only|
                                   | configure.     |    | time the gate   |
                                   | nothing to     |    | interrupts you. |
                                   | see. correct.  |    |                 |
                                   +----------------+    +-----------------+

  silence after install is the gate working, not the gate being broken.

Permalink, SVG & reuse · CC BY 4.0

1 · Install the gate

The one-liner installs the gate and wires your MCP hosts to route tool calls through it. Prefer to install the binary yourself? Use uv or pip below.

uv (auditable, all hosts)

Installs the signed PyPI package - no pipe-to-shell - then runs the wiring wizard. Restarts the host after wiring.

uv tool install mcpindex-gate && mcpindex-config-wire

Rather read it first? curl -fsSL https://mcpindex.ai/install.sh | less pipes the script to your pager. uninstall.sh restores the original config.

uv (auditable, all hosts)

Installs the signed PyPI package - no pipe-to-shell - then runs the wiring wizard. Restarts the host after wiring.

uv tool install mcpindex-gate && mcpindex-config-wire
pip

Same binary from PyPI if you would rather not add uv.

pip install mcpindex-gate

The PyPI package is mcpindex-gate. An unrelated third-party package named mcp-index exists on PyPI and is not us.

Or embed the pin in your own server (TypeScript)
npm i @mcp-index/sdk
// then, in your server:
import { wrap, PreflightPin } from "@mcp-index/sdk";
const guarded = wrap(session, { pin: new PreflightPin(), serverId: "your-server" });

Python SDK, manual host-config wiring, and how the gate works: the gate docs.

What the gate does: it diffs each tool's contract against the version you last saw and flags the change. It reports changes; it does not vouch that a server is safe, and it never asks for a credential.

2 · Or try it in seconds

Not ready to wire the gate in? Scan your mcp.json to see the blast radius in your browser (nothing is uploaded), or add the advisory directory server to your agent below.

Add the directory server to your agent

Find MCP servers by task and get advisory screens (check_tool_trust, assess_server) inside your agent. This is the advisory directory client, not the gate.

One click adds the advisory directory server to that host. Every other host: pick it below.

Paste and run, then restart the client.

claude mcp add --scope user mcpindex -- npx -y mcp-server-mcpindex@latest
3 · Every install method
SurfaceMethodCommand
Gate (in-path)Install scriptcurl -fsSL https://mcpindex.ai/install.sh | sh
Gate (in-path)uvuv tool install mcpindex-gate && mcpindex-config-wire
Gate (in-path)pippip install mcpindex-gate
Gate (in-path)SDK (TypeScript)npm i @mcp-index/sdk
Directory (advisory)npxnpx -y mcp-server-mcpindex@latest
Directory (advisory)Remote (hosted, no install)https://mcpindex.ai/api/mcp
Directory (advisory)Claude Codeclaude mcp add --scope user mcpindex -- npx -y mcp-server-mcpindex@latest
Directory (advisory)Gemini CLIgemini mcp add -s user mcpindex npx -y mcp-server-mcpindex@latest
Directory (advisory)Mastra hooknpm i @mcp-index/mastra
Directory (advisory)MCP Registryio.github.gautamgb/mcp-server-mcpindex
Directory (advisory)Dockerdocker mcp gateway run # image mcp/mcpindex
Image build/sign under review (docker/mcp-registry#4441).
Web (no install)Scan your confighttps://mcpindex.ai/scan
Web (no install)Screen a serverhttps://mcpindex.ai/screen

Also listed on the Official MCP Registry as io.github.gautamgb/mcp-server-mcpindex, and on Glama.

What each part is - and isn't
The gate is in-path and deterministic.
It diffs contracts and flags changes on the call. It is not a safety verdict, an antivirus, or a guarantee that a server is trustworthy.
The directory server is advisory.
Its screens run calibrated=false and it never sits in your call path. Treat its verdicts as a second opinion, not a gate.
Zero credentials.
Nothing here asks for an API key or a token. The gate runs locally; the scanner runs in your browser.