Privacy.
Last updated: 2026-07-20
The site does not run third-party advertising trackers. Standard server logs (IP, user agent, request path, timestamp) are retained for 30 days for operational and security purposes only. Logs are not sold or shared.
The contact and update-notification forms store your email and submission timestamp. They are used to reply about mcpindex (project updates, answers to your message) and nothing else. Your email is never sold, shared, or used to sell you anything, because there is nothing on sale. Unsubscribe at any time by emailing hello@mcpindex.ai.
API requests to /api/v1/* are not logged beyond aggregate rate-limit counters. We do not log query strings. We do not persist task descriptions sent to the recommend endpoint.
One scoped exception: the tool screener (/api/v1/screen). The description you paste is screened in-flight and is not storedunless you explicitly check “Contribute this example to improve detection.” If you check it, we store only that description and its verdict - no IP address, no other identifiers - to improve detection. Leave it unchecked and nothing is retained.
Drift telemetry (the @mcp-index/sdk / mcpindex-gate clients): off by default. The SDK sends nothing unless you set MCPINDEX_DRIFT_TELEMETRY=detection. When enabled, a tool-pin or a contract drift sends one one-way signal to /api/v1/drift: salted (HMAC) fingerprints of the server/tool id, the contract hashes, the change type, a safety flag, an hour-rounded time, and the client SDK tag (py or ts) - plus a random install id that links one machine’s signals so we can count distinct installs (it is a random token, not derived from you, and is never joined to your IP). Under the same flag, the gate also makes a read-only query to /api/v1/drift/anyto ask whether a tool’s contract already drifted, so it can warn you on the first call; that query sends only a salted fingerprint. It never sends tool schemas, arguments, descriptions, URLs, or server/tool names. (detection enables the signal above; contribute is reserved for a future richer tier and behaves identically today.) Unset the variable to stop.
Call receipts (the mcpindex-gate client): on by default. After each gated tool call the gate emits a compact, credential-blind receipt. Here is the complete list of what a receipt contains: a random receipt id; the tool contract hash (a sha256 of the tool’s public contract); the gate verdict; a closed-vocabulary action classification (read / write / execute class, resource kind, reversibility); a closed-vocabulary run context (autonomy level, task-intent class, a human-in-the-loop flag, framework name); a closed-vocabulary outcome (status, side-effect class, a reverted flag, a coarse latency bucket); a yes/no/unclear “justified” flag; and a timestamp rounded to the hour. Every field is an enum from a fixed list, a hash, or a boolean - by construction there is no field that can hold free text, so a receipt never contains tool arguments, results, prompts, server names, or URLs. The ingest schema is strict and rejects anything else.
What the hash lets us do, stated plainly: receipts include the tool contract hash, which we can match to servers in our public index. That tells us which indexed tools an install gates - never what you did with them, and nothing for tools we have not indexed. Receipts are linked by a random per-install token (install_id) generated on first run and stored locally. It is pseudonymous, not anonymous: it is a random token not derived from you or your machine and is never joined to your IP, but it does link one install’s receipts together over time. Keyless installs have no account link; if you sign in and configure an api_key, receipts from that install are associated with your key. Set MCPINDEX_RECEIPT_INGEST_ENABLED=0 to suppress receipt egress entirely; your per-install call log is visible (to anyone holding the token) at mcpindex.ai/receipts?id=<install-id>.
First-run disclosure: from gate v0.9.0, the first run on a machine prints a one-line notice of exactly this behavior to stderr and sends nothingthat session - emission starts on run 2, so no receipt is sent before the disclosure and the opt-out were visible. Earlier gate versions emit without the runtime notice, per the packaging README. The gate’s other local lines (the ambient “noted” lines and the weekly summary line) are rendered from local state and send nothing anywhere.
Cookies and similar storage: the site itself does not set first-party advertising cookies. Hosting on Vercel may set a platform routing cookie. We also load Vercel Analytics and Vercel Speed Insights, which may use cookies or local storage for aggregated, privacy-oriented traffic and performance metrics (no advertising profile). See Vercel Analytics privacy. This is our cookie notice for launch; we do not run a separate consent banner because we do not use advertising trackers.
GDPR / CCPA: email hello@mcpindex.ai to request deletion of any personal data tied to you.
Read Fig. 03 as text
+- YOUR HOST ---------------------------------------+
| |
| [ agent ] <-> [ mcpindex gate ] <-> [ pin store ]|
| local disk |
+-----------+---------------------------+-----------+
| |
DEFAULT | nothing crosses to | tools/call + your credentials
| mcpindex. the tier-0 +-------------> [ MCP server ]
| contract-diff runs here. | passed through untouched.
| | the gate holds no keys.
OPT-IN | contract hash ------------------------> [ mcpindex edge - US ]
| a deterministic hash of the public tool contract
OPT-IN | salted HMAC fingerprint --------------> [ drift network ]
| + change type, safety flag, hour-rounded time. fail-open.
|
NEVER X tokens - arguments - schema bodies - descriptions
X URLs - server names - tool names - your call dataPermalink, SVG & reuse · CC BY 4.0