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.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 nothingPermalink, SVG & reuse · CC BY 4.0
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 codePermalink, SVG & reuse · CC BY 4.0
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
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.
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-wireRather read it first? curl -fsSL https://mcpindex.ai/install.sh | less pipes the script to your pager. uninstall.sh restores the original config.
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-wireSame binary from PyPI if you would rather not add uv.
pip install mcpindex-gateThe PyPI package is mcpindex-gate. An unrelated third-party package named mcp-index exists on PyPI and is not us.
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.
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| Surface | Method | Command |
|---|---|---|
| Gate (in-path) | Install script | curl -fsSL https://mcpindex.ai/install.sh | sh |
| Gate (in-path) | uv | uv tool install mcpindex-gate && mcpindex-config-wire |
| Gate (in-path) | pip | pip install mcpindex-gate |
| Gate (in-path) | SDK (TypeScript) | npm i @mcp-index/sdk |
| Directory (advisory) | npx | npx -y mcp-server-mcpindex@latest |
| Directory (advisory) | Remote (hosted, no install) | https://mcpindex.ai/api/mcp |
| Directory (advisory) | Claude Code | claude mcp add --scope user mcpindex -- npx -y mcp-server-mcpindex@latest |
| Directory (advisory) | Gemini CLI | gemini mcp add -s user mcpindex npx -y mcp-server-mcpindex@latest |
| Directory (advisory) | Mastra hook | npm i @mcp-index/mastra |
| Directory (advisory) | MCP Registry | io.github.gautamgb/mcp-server-mcpindex |
| Directory (advisory) | Docker | docker mcp gateway run # image mcp/mcpindexImage build/sign under review (docker/mcp-registry#4441). |
| Web (no install) | Scan your config | https://mcpindex.ai/scan |
| Web (no install) | Screen a server | https://mcpindex.ai/screen |
Also listed on the Official MCP Registry as io.github.gautamgb/mcp-server-mcpindex, and on Glama.
- 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=falseand 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.