51 public endpoints run the same hosted documentation template (mintlify-docs).
They do not serve the same contract. Here is which one each of them serves, by name, as of this pulse.
Note № 01 establishes that the search_* tool of this template has
four distinct schema fingerprints across 51 tenants. That is the
right number for judging the sample and the wrong one for doing anything. Nobody integrates with a
distribution: they integrate with one named endpoint, and the only question they have is which of
the four they are about to get.
The template's tool names embed the tenant slug, so the fingerprints differ trivially for every tenant
and cannot be compared directly. What is compared here is the shape of the
search_* input schema: every variant requires query and every variant is closed to unknown properties.
The variation is entirely in which optional parameters exist.
| required onlycb69ec950d34e626 | 38 | |
|---|---|---|
versionfb21dc8a09203eac |
7 | |
language9718d03564ef138a |
4 | |
languageversion7f49cff0033583af |
2 |
The four variants are exactly the power set of the two optional parameters language and version — 22 is 4, 4 is what is live, and there is no leftover.
That is a feature matrix, not drift: each tenant has some subset of switches on, every combination is
somebody's production contract, and no combination is unaccounted for.
None of this is negotiated with the caller. There is no user, no session and no credential anywhere in
this sample; the same anonymous request gets a different contract depending only on which tenant answers it.
A client written against one tenant's search_* is not portable to the next one, and nothing in a
tools/list response says which of the four it just received.
One row per endpoint, so the question "what will this URL accept" has an answer that does not
require calling it. Extra parameters is what this endpoint's search_* accepts beyond
the required query;
V is the variant number from the table above; read via is how this registry obtained the
row on the last pulse, not how the endpoint is documented.
| Tenant | Host | Extra parameters | V | Fingerprint | Read via |
|---|---|---|---|---|---|
| Anchor Browser Docs | docs.anchorbrowser.io | version |
2 | fb21dc8a09203eac | direct POST |
| Aryn Docs | docs.aryn.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Baseten Docs | docs.baseten.co | — | 1 | cb69ec950d34e626 | direct POST |
| Bland AI Docs | docs.bland.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Bright Data Docs | docs.brightdata.com | language |
3 | 9718d03564ef138a | direct POST |
| Cartesia Docs | docs.cartesia.ai | language version |
4 | 7f49cff0033583af | direct POST |
| Chroma Docs | docs.trychroma.com | — | 1 | cb69ec950d34e626 | direct POST |
| Chunkr Docs | docs.chunkr.ai | version |
2 | fb21dc8a09203eac | direct POST |
| CockroachDB Docs | docs.cockroachlabs.com | version |
2 | fb21dc8a09203eac | direct POST |
| Cognee Docs | docs.cognee.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Contextual AI Docs | docs.contextual.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Courier Docs unvouched | docs.courier.com | — | 1 | cb69ec950d34e626 | direct POST, redirected |
| CrewAI Docs | docs.crewai.com | language version |
4 | 7f49cff0033583af | direct POST |
| Daily Docs | docs.daily.co | — | 1 | cb69ec950d34e626 | direct POST |
| Dub Docs | dub.co | — | 1 | cb69ec950d34e626 | direct POST |
| Dust Docs | docs.dust.tt | — | 1 | cb69ec950d34e626 | direct POST |
| E2B Docs | docs.e2b.dev | version |
2 | fb21dc8a09203eac | direct POST |
| Fal AI Docs unvouched | docs.fal.ai | — | 1 | cb69ec950d34e626 | direct POST, redirected |
| Fireworks AI Docs | docs.fireworks.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Galileo Docs | docs.galileo.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Hanko Docs | docs.hanko.io | — | 1 | cb69ec950d34e626 | direct POST |
| Helicone Docs | docs.helicone.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Honeycomb Docs | docs.honeycomb.io | — | 1 | cb69ec950d34e626 | direct POST |
| Hoppscotch Docs | docs.hoppscotch.io | — | 1 | cb69ec950d34e626 | direct POST |
| Hyperbrowser Docs unvouched | docs.hyperbrowser.ai | — | 1 | cb69ec950d34e626 | direct POST, redirected |
| Labelbox Docs | docs.labelbox.com | — | 1 | cb69ec950d34e626 | direct POST |
| LanceDB Docs | docs.lancedb.com | — | 1 | cb69ec950d34e626 | direct POST |
| LangChain Docs | docs.langchain.com | — | 1 | cb69ec950d34e626 | direct POST |
| Linkup Docs | docs.linkup.so | — | 1 | cb69ec950d34e626 | direct POST |
| Mem0 Docs | docs.mem0.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Mergent Docs | docs.mergent.co | — | 1 | cb69ec950d34e626 | direct POST |
| Mixpanel Docs | docs.mixpanel.com | — | 1 | cb69ec950d34e626 | direct POST |
| Novu Docs | docs.novu.co | — | 1 | cb69ec950d34e626 | direct POST |
| Perplexity Docs | docs.perplexity.ai | — | 1 | cb69ec950d34e626 | direct POST |
| Pinecone Docs | docs.pinecone.io | version |
2 | fb21dc8a09203eac | direct POST |
| Polymarket Docs | docs.polymarket.com | language |
3 | 9718d03564ef138a | direct POST |
| Porter Docs | docs.porter.run | — | 1 | cb69ec950d34e626 | direct POST |
| Prefect Docs | docs.prefect.io | — | 1 | cb69ec950d34e626 | direct POST |
| Reducto Docs | docs.reducto.ai | version |
2 | fb21dc8a09203eac | direct POST |
| Replit Docs | docs.replit.com | language |
3 | 9718d03564ef138a | direct POST |
| Resend Docs | resend.com | — | 1 | cb69ec950d34e626 | direct POST |
| Retell AI Docs | docs.retellai.com | — | 1 | cb69ec950d34e626 | direct POST |
| RunPod Docs | docs.runpod.io | — | 1 | cb69ec950d34e626 | direct POST |
| Tavily Docs | docs.tavily.com | — | 1 | cb69ec950d34e626 | direct POST |
| Together AI Docs | docs.together.ai | version |
2 | fb21dc8a09203eac | direct POST |
| Trigger.dev Docs | trigger.dev | — | 1 | cb69ec950d34e626 | direct POST |
| Turso Docs | docs.turso.tech | — | 1 | cb69ec950d34e626 | direct POST |
| Unstructured Docs | docs.unstructured.io | — | 1 | cb69ec950d34e626 | direct POST |
| Weights and Biases Docs | docs.wandb.ai | language |
3 | 9718d03564ef138a | direct POST |
| Zapier Docs | docs.zapier.com | — | 1 | cb69ec950d34e626 | direct POST |
| ZenRows Docs | docs.zenrows.com | — | 1 | cb69ec950d34e626 | direct POST |
The template (mintlify-docs) documents an MCP endpoint of its own,
https://docs.mintlify.com/mcp. It is not one of the 51 endpoints above and enters none of their
counts, but it is a URL a reader of this page may well call next, so the same collector probes it on the
same pulse and the result is printed here rather than left to be discovered.
On this pulse it did not answer: HTTP 530: {"type":"https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-1xxx-errors/error-1016/","title":"Error 1016: Origin DNS error",. That has been the outcome on 5 consecutive pulses, since 2026-09-09 15:51Z. Plan for it the way you would plan for any endpoint that may not answer.
No contract was read on this pulse: https://docs.mintlify.com/mcp was reached and did not answer usably. One endpoint's result on one pulse, with a timestamp — not a statement about anybody's reliability or about the 51 endpoints above, which are served by different infrastructure and are measured separately on this same page.
Nothing above is asserted from a hash. Every variant is published with the properties it actually accepts, so the table can be re-derived rather than believed:
curl -s https://he110.github.io/mcp-drift-registry/api/fleet.json \
| jq '.variants[] | {tenants, required, optional, additionalProperties}'
# and the full input schema of any single endpoint, as returned to us:
curl -s https://he110.github.io/mcp-drift-registry/api/servers/<id>.json \
| jq '.tools[] | select(.name | startswith("search_")) | .inputSchema'
The census is also regenerable locally from the committed state, with no network call at all — the same function this page renders from, printed to a terminal:
git clone https://github.com/he110/mcp-drift-registry && node bin/fleet.js node bin/fleet.js --json | jq '.tenants[] | select(.optional | length > 0)'
Of the 51 rows above, 51 were read by direct POST and
0 required a full initialize handshake;
3 went through a method-preserving redirect, and
3 were read from a URL other than the one declared.
3 rows are not vouched for and are marked as such above.