mcpbeat Sign in

Orbit MCP Server

by orbit-search Your server? Claim it
answering

Orbit is answering right now. Last checked 5 min ago. It exposes 69 tools.

The most in-depth, source-backed context about a person for deep personalization and research.

The linked repository no longer exists on GitHub — it was deleted or made private.

Uptime history 59 days of history · worst day 92%
59 days agonow
100.0%
Uptime 24h
182 of 182 checks
69
Tools
read from the server
352 ms
Response time
average over 24h
OAuth sign-in
Access
streamable-http

What changed 150

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 10 September 2026. No other catalogue keeps this.

2 Nov 7 tools appeared find_people, get_directory_insight_people, get_directory_insights and 4 more
2 Nov 2 tool descriptions were rewritten get_search_status, search_people
2 Nov a tool changed the parameters it asks for search_people
23 Oct a tool description was rewritten get_profile
23 Oct a tool changed the parameters it asks for get_profile
22 Oct 5 tool descriptions were rewritten8 times that day get_profile, get_search_status, search_people and 2 more
22 Oct a tool appeared show_profile
22 Oct a tool changed the parameters it asks for get_profile
21 Oct 4 tool descriptions were rewritten batch_enrich_profiles, enrich_profile, search_directory and 1 more
21 Oct 4 tools changed the parameters they ask for batch_enrich_profiles, enrich_profile, search_directory and 1 more
and 123 more, back to 10 September 2026

Orbit missed 3 checks this week

Everything else answered, so this is steady rather than shaky. We check every 15 minutes, which is how a one-off gets told apart from the start of a pattern, and how you hear about the next one within the hour instead of from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 5 min ago.

run in your terminal
claude mcp add orbit --transport http https://chatgpt.orbitsearch.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://chatgpt.orbitsearch.com/mcp
~/.codex/config.toml
[mcp_servers.orbit]
url = "https://chatgpt.orbitsearch.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "orbit": {
      "url": "https://chatgpt.orbitsearch.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "orbit": {
      "type": "http",
      "url": "https://chatgpt.orbitsearch.com/mcp"
    }
  }
}

This endpoint answered with an authorization challenge. The server is running, and it signs you in through your browser: there is no API key to paste.

This server publishes 1 more address. The block above uses the one we reach during checks; the full list is under Endpoints below, and the author may intend a particular one for your client.

Available tools 69

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

directory
add_directory_person
Use this when the user wants to add a known Orbit profile to a directory. Confirm the directory and profile. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
check_directory_membership
Use this when the user wants to check supplied identities for existing directory membership before import. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
check_directory_slug
Use this when the user wants to check if a public directory slug is available. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
create_directory
Use this when the user wants to create a directory. Confirm the organization, name, and visibility; public makes it discoverable outside the organization. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
create_directory_watchers
Use this when the user wants to schedule updates for selected members. Confirm profile IDs, interval, phases, and ongoing organization credit usage. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
delete_directory_watcher
Use this when the user wants to stop a directory member's watcher after confirming the target. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
get_directory
Use this when the user wants to read a directory and its readiness before changing it. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
get_directory_insight_people
Use this when the user wants to inspect people behind a completed city map or scalar people-count result, never arbitrary aggregate values. Supply its exact definition and evidenceSnapshot when present; city is required only for maps. Follow offset/hasMore. A stale snapshot requires refreshing the original insight, not a new search. This read never starts inference or enrichment. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
get_directory_insights
Use this when the user wants to evaluate the saved shared Insights dashboard over the entire authorized published directory, not ranked search results. Set capabilities=true to check canView/canManage without evaluating. Evaluation and continued polling can advance external model work. Pending results are progress, never final counts. Preserve coverage, unknowns and freshness; stop on errors or rate limits. Returns data, not charts. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
get_directory_person
Use this when the user wants to read a directory member. Use its returned profile ID with get_profile for deep person research. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
get_directory_readiness
Use this when the user wants to check whether a directory is ready to search. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
get_directory_source
Use this when the user wants to read a source and recover pending CSV processing where needed. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
get_directory_source_status
Use this when the user wants to check import progress and recover pending CSV processing where needed. Queued or importing is not completion. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
list_directory_activity
Use this when the user wants to read sourced directory-member updates sorted by event date or discovery date. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
list_directory_grants
Use this when the user wants to inspect directory access grants before sharing or revoking access. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
list_directory_organizations
Use this when the user wants to find the user's organizations before choosing a directory. Do not guess organization IDs. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
list_directory_people
Use this when the user wants to list directory members, optionally filtering by name or source. This is not semantic search. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
list_directory_refreshes
Use this when the user wants to check one-time refresh progress. Report acceptance separately from completion. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
list_directory_sources
Use this when the user wants to list import sources and recover pending CSV processing where needed. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
list_directory_watchers
Use this when the user wants to list watchers for directory members. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
remove_directory_people
Use this when the user wants to remove selected directory members after confirming the exact selection. Save the returned removal source for restoration. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
remove_directory_person
Use this when the user wants to remove one directory member after confirming its directory-person ID, not its Orbit profile ID. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
remove_directory_source_people
Use this when the user wants to remove members contributed by a source after confirming the source and impact. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
search_directory
Use this when the user wants to search within one directory using concise natural-language criteria close to the user's wording. Preserve explicit constraints without adding inferred roles or synonym lists. Never fall back to global search if access is denied or the directory is not ready. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
update_directory
Use this when the user wants to change a directory's details. Read it first and confirm changes, especially public visibility, which publishes it outside the organization. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
update_directory_source_status
Use this when the user wants to make an explicitly requested administrative source-status correction. Never mark an import completed merely to hide a failure; verify the actual processing state first. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
update_directory_watcher
Use this when the user wants to change a member's watcher. Confirm schedule, phases, enabled state, and credit implications. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
watcher
create_watcher
Create or re-enable a scheduled profile watcher. Runs consume Orbit credits. Confirm the profile, organization and schedule first.
delete_watcher
Permanently delete a watcher in its original organization.
get_watcher
Read one watcher by ID in the selected account. Keep its original organization.
list_watcher_runs
List newest runs for a watcher in its original organization.
update_watcher
Replace selected watcher settings. May disable future runs or change schedule/phases; enabled runs consume credits. Keep its original organization.
people
find_people
Resolve identity at quick depth without upgrading known profiles; new discovery candidates may build level-1 profiles using credits. Quick discovery needs phone/email/address, URLs with exactly one intent.names entry, or one name plus an organization in intent.experiences. Use search_people for open-ended partial/full discovery. Enrich only selected profile IDs afterward. This call returns quickly; poll get_search_status until terminal (completed, completed_with_errors, failed). On timeout, retry with the same requestId and identical arguments — do not start a new search. Prefer get_search_status if you already have searchId. Discovery and depth beyond quick always run asynchronously. Find or resolve people and return compact people data for cards or text summaries. Use a concise query close to the user's wording. If the user's request is already clear and short, send it essentially unchanged: "aepi brothers who work in tech" needs no expansion into a full name, synonyms, or tech job categories. Preserve explicit constraints without adding inferred criteria. Supports query, structured intent, or identity signals; at least one must be nonempty. Prefer query alone for ordinary searches; use intent for explicit structured constraints, which override query-derived fields. For find, list, or shortlist requests, if the host visibly renders an interactive people list or single-result summary card, finish with that view and a brief acknowledgement. Otherwise, including in a text-only host, summarize the returned people data in text with available names, headlines, locations, and links; do not refer to an unseen card. Do not call get_profile or enrichment merely to verify, summarize, or display individual matches, including while searching or for a single match. Read profiles only after selection or an explicit request for person-specific details, research, or a substantive comparison. If done is false, the search is still running, even when people is empty: poll get_search_status before claiming a final result. Never restart the same search to poll it. Enable Candidate Discovery to find people beyond the known index. Discovery and generation use Orbit credits. Optional faceSearch requires candidateDiscovery: true, profileDepth: full, and at most 30 combined limit + candidateDiscoveryLimit slots (defaults 20 + 10). Already-full cached profiles remain cached.
get_people_batch_status
Poll a people batch without new work. Each item id is the submitted personKey; result contains profile IDs, per-result statuses and profiles after that person finishes. Keep successes when another person fails. Read every next_offset page, including after terminal status. Poll queued/processing every 3 seconds; stop on completed, completed_with_errors, failed or canceled.
search_people
This call returns quickly; poll get_search_status until terminal (completed, completed_with_errors, failed). On timeout, retry with the same requestId and identical arguments — do not start a new search. Prefer get_search_status if you already have searchId. Discovery and depth beyond quick always run asynchronously. Find or resolve people and return compact people data for cards or text summaries. Use a concise query close to the user's wording. If the user's request is already clear and short, send it essentially unchanged: "aepi brothers who work in tech" needs no expansion into a full name, synonyms, or tech job categories. Preserve explicit constraints without adding inferred criteria. Supports query, structured intent, or identity signals; at least one must be nonempty. Prefer query alone for ordinary searches; use intent for explicit structured constraints, which override query-derived fields. For find, list, or shortlist requests, if the host visibly renders an interactive people list or single-result summary card, finish with that view and a brief acknowledgement. Otherwise, including in a text-only host, summarize the returned people data in text with available names, headlines, locations, and links; do not refer to an unseen card. Do not call get_profile or enrichment merely to verify, summarize, or display individual matches, including while searching or for a single match. Read profiles only after selection or an explicit request for person-specific details, research, or a substantive comparison. If done is false, the search is still running, even when people is empty: poll get_search_status before claiming a final result. Never restart the same search to poll it. Enable Candidate Discovery to find people beyond the known index. Discovery and generation use Orbit credits. Optional faceSearch requires candidateDiscovery: true, profileDepth: full, and at most 30 combined limit + candidateDiscoveryLimit slots (defaults 20 + 10). Already-full cached profiles remain cached.
search_people_batch
Start one durable job for independent people; returns jobId quickly. Poll get_people_batch_status for per-person status and results. One failure never discards successful people. Discovery and generation use credits; existing search defaults apply. On timeout retry identical people with the same requestId; if jobId is known poll it instead. Never start a replacement batch.
webhook
create_webhook
Register an HTTPS endpoint to receive Orbit events. Confirm destination, organization, and event types first. The one-time signing secret is shown in the widget and hidden from the model.
delete_webhook
Permanently delete a webhook endpoint in its original organization.
account
get_account_context
List organizations available to the connected Orbit user and show the default organization chosen during connection. Returns data for account questions or conversational organization switching with select_organization. This does not start paid work or buy credits.
archive
archive_directory
Use this when the user wants to archive a directory after confirming the exact target. Orbit's delete route also archives; this does not permanently erase data. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
auth
auth_status
Check whether the user connected Orbit to this app.
batch
batch_enrich_profiles
Start profile research for 1 to 20 Orbit profile IDs or slugs using the connected account's Orbit credits. The regenerate operation forces fresh work and can replace existing facts for every selected profile. Use regenerate only when the user asks for that refresh. Optional faceSearch applies to every selected profile, requires full or regenerate, needs no candidate discovery, and starts new paid work even for already-full profiles.
count
count_directory_people
Use this when the user wants to count resolved directory members. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
credit
get_credit_usage
Read usage for the current research credential/principal and available/reserved credits for its billing account. Use for credit questions or to refresh a balance. Usage is not necessarily all activity by the user or organization. Does not purchase credits.
directories
list_directories
Use this when the user wants to list directories in a selected organization. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
disconnect
disconnect_orbit
Remove a legacy widget token. This does not disconnect OAuth; use your host's connector settings for that.
enrich
enrich_profile
Start profile research in Orbit using the connected account's Orbit credits. Partial builds a partial profile, full builds a full profile, and regenerate forces fresh work that can replace existing profile facts. Use regenerate only when the user asks to refresh the profile. Optional faceSearch requires full or regenerate, needs no candidate discovery, and starts new paid work even for an already-full profile.
enrichment
get_enrichment_status
Read the latest status and optional profile for one v3 enrichment request.
grant
grant_directory_access
Use this when the user wants to grant directory permissions only to an existing principal in the same Orbit organization. The backend rejects recipients outside that organization; this does not publish the directory or send to arbitrary external destinations. Confirm the exact recipient, directory, and permissions; never infer a principal ID. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
infer
infer_directory_csv_mapping
Use this when the user wants to suggest CSV column mapping from user-supplied headers. Review the mapping before upload; this may call an external model. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
leave
leave_directory
Use this when the user wants to remove the authenticated user's own membership after confirmation. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
pending
list_pending_directory_people
Use this when the user wants to inspect unresolved or processing directory members. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
populate
populate_directory_from_entities
Use this when the user wants to populate a directory from known companies or schools. Confirm IDs, AND/OR criteria and research costs. Never guess entity IDs. Poll source status after acceptance. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
population
search_population
Search everyone in one population: every current employee of a company, or everyone who attended a school. Reserves the quoted credits from the connected account and returns compact people data at once for cards or text summaries; Orbit keeps adding people while it runs. Follow with get_search_status until terminal. For find, list, or shortlist requests, if the host visibly renders an interactive people list or single-result summary card, finish with that view and a brief acknowledgement. Otherwise, including in a text-only host, summarize the returned people data in text with available names, headlines, locations, and links; do not refer to an unseen card. Do not call get_profile or enrichment merely to verify, summarize, or display individual matches, including while searching or for a single match. Read profiles only after selection or an explicit request for person-specific details, research, or a substantive comparison. Use only after quote_population_search and confirmation of the cost.
preview
preview_directory_insight
Use this when the user wants to answer a directory-wide analytics question using existing published facts, without enrichment or saving. Requires directory manage access. Supply either prompt alone OR title and definition, never both. Ask returned clarifications. If pending, continue with the returned widget title and definition, not the prompt; this advances model work. Space polls out and stop on errors/rate limits. Never present partial counts as final or infer sensitive traits. Returns data, not charts. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
profile
get_profile
Read the full existing Orbit profile for an explicit person-specific research question, substantive comparison, or a text-only host. Modern callers must set purpose: research for requested analysis, or text_summary for a text-only host. Never choose a research purpose merely to display a profile or narrate search results. For compatibility, older published clients may omit purpose and receive the legacy profile response; this still makes one billed profile read. Modern research returns data without opening a card or changing visible results; older published widget bindings may display it. In a UI-capable host, use show_profile instead for simple profile-display requests or selection; do not read the full profile merely to narrate a visible card. Search already returns compact people data: do not call this merely to verify, summarize, or display each search match for a find, list, or shortlist request. For a simple profile-display request, if the host visibly renders a profile card, acknowledge it briefly without repeating its details. The visible card fulfills that display request: use at most one short acknowledgement, not a second profile card, portrait/image, name-and-headline block, Orbit link, biography, or unsolicited fact list. Do not start additional web searches or enrichment merely to decorate or repeat the visible card. Otherwise, including in a text-only host, summarize the returned profile in text with available source links; do not refer to an unseen card. For an explicit research question, use the returned source-backed profile to answer with analysis focused on the requested question, without recreating a visible card's portrait or identity block. Uses Orbit credits; use enrich_profile for requested new research.
quote
quote_population_search
Price a search for everyone in one population: every current employee of a company, or everyone who attended a school. Returns the whole cost as one number in credits. This read starts no work and reserves no credits. Quote first, tell the user the cost, and call search_population only after they confirm.
refresh
refresh_directory_profiles
Use this when the user wants to start a credit-consuming one-time refresh. Confirm selected members or everyone and cost implications; preserve request_id on retries. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
restore
restore_directory_people
Use this when the user wants to restore selected removed members or a recorded removal source, within the backend's restoration window. Confirm the exact selection or source. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
resync
resync_directory_people
Use this when the user wants to rematerialize selected directory members from existing data, after confirming the selection. This is separate from a research refresh. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
revoke
revoke_directory_access
Use this when the user wants to revoke a specific access grant after confirming the recipient and permissions affected. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
save
save_directory_insights_dashboard
Use this when the user wants to replace the shared Insights dashboard after confirming the directory and requested changes. Read get_directory_insights first and preserve unrelated widgets. Send the latest revision and complete widgets array (empty explicitly clears it). A revision conflict requires reloading and reconciling, never blindly retrying. Requires directory manage access. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
select
select_organization
Set the default organization for new work on this Orbit connection. Use only for an organization explicitly chosen by the user; discover IDs with get_account_context. Changes apply across chats using this connection, not to existing jobs. Never switch automatically to bypass insufficient credits or permissions.
show
show_profile
Display the full available existing Orbit profile after the user selects a person or explicitly asks to see/open their profile in a UI-capable host. Use this instead of get_profile for display-only requests. Profile details are delivered only to the widget, not the model; contact details remain masked. Finish with at most a brief acknowledgement; do not recreate the card, add another portrait or biography, or call get_profile, web search, or enrichment merely to narrate it. Search results already fulfill find/list/shortlist requests, including the summary card for a single match; do not open each match. For an explicit research question or a text-only host, use get_profile instead. Uses Orbit credits for one profile read; it does not generate or refresh facts.
status
get_search_status
Poll every 3 seconds while running; stop on completed, completed_with_errors or failed. Progress percent/ETA can be unknown; do not invent estimates. Keep ready people if others fail. Read the latest compact results and status for an existing Orbit search, including population searches, for a visible list or text summary. Empty results while done is false mean still searching, not no matches. Use outcome to distinguish failure from completed no matches. For find, list, or shortlist requests, if the host visibly renders an interactive people list or single-result summary card, finish with that view and a brief acknowledgement. Otherwise, including in a text-only host, summarize the returned people data in text with available names, headlines, locations, and links; do not refer to an unseen card. Do not call get_profile or enrichment merely to verify, summarize, or display individual matches, including while searching or for a single match. Read profiles only after selection or an explicit request for person-specific details, research, or a substantive comparison.
test
test_webhook
Send one signed test event to an existing endpoint in its original organization. Payload can contain recent real account data or an example. Confirm destination and type first. Free, not retried or stored in delivery history.
upload
upload_directory_csv
Use this when the user wants to import user-supplied CSV text into a directory. Confirm the target and field mapping. Never invent rows. Limited to 512 KiB; use the dashboard for larger files. Preserve idempotency_key on retries. Requires an Orbit user connection; organization and directory permissions are enforced by Orbit.
watchers
list_watchers
List profile watchers for the selected Orbit account.
webhooks
list_webhooks
List webhook endpoints for the selected organization. Secrets are masked.

Tools removed

Tools this server used to expose. Anything built against them stopped working on the day they went.

connect_orbit
removed 10 Sep 2026
me
removed 10 Sep 2026
search_people_updates
removed 10 Sep 2026
whoami
removed 10 Sep 2026

Endpoints

URLTransportStateLatencyChecked
https://chatgpt.orbitsearch.com/mcp streamable-http answering 345 ms 5 min ago
https://api.orbitsearch.com/mcp streamable-http sign-in 277 ms 7 min ago

Alternatives to Orbit

same job, measured the same way
Orbit
by nicholasdominici

The most in-depth, source-backed context about a person for deep personalization and research.

69 tools answering
Sensefold
by sensefold

Personal context for every AI: search, read, and write back to your private Markdown library.

answering
LinkupPlatform Linkup MCP Server
by smithery

Search the web in real time to get trustworthy, source-backed answers. Find the latest news and co…

answering
aieo
by web-casa

SEO and AI-search checks for a website's build output, fixed in the source files

local only
ResearchZosho
by wyrdsekai

Deep research assistant that checks its citations against the sources and keeps what it found.

559 installs/wk local only
Untax
by untax

Source-backed property assessment research and draft assessment comparisons for supported pilot j...

20 tools answering
Promptarch
by promptarch

Research-backed lint + generation for agent context files (CLAUDE.md, AGENTS.md) + prompt enhancer.

4 tools answering
Docdex
by bekirdag

Fast per-repo documentation indexer and full-text search MCP server for codebases.

3 177 installs/wk local only

Orbit — questions

Answers built from our own checks of this server.

What can Orbit do?
It exposes 69 tools, read directly from the server on our last check. Among them: add_directory_person, archive_directory, auth_status, batch_enrich_profiles, check_directory_membership, check_directory_slug and 63 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Orbit mostly used for?
Its tools cluster around directory, watcher and people. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Orbit working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 182 of 182 checks got a reply (100.0%), average response time 352 ms. The bar chart above shows every period we have measured.
Did Orbit ever remove tools?
Yes. connect_orbit, me, search_people_updates, whoami are no longer exposed — we recorded the date each one disappeared. A tool vanishing usually means a breaking change for anything that depended on it.
Is Orbit still maintained?
The linked repository no longer exists on GitHub — it was deleted or made private. We show this because it changes what you can expect: an unmaintained server may keep answering for months and then stop without warning.
How do I connect Orbit?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You sign in through your browser once and the client keeps the session: no key to copy, and it refuses anonymous clients.
How do you sign in to Orbit?
No API key is involved. Orbit answers our knock with an OAuth challenge, so you authorise it once in your browser and the client keeps the session. That is also why we see no tool list: it will not describe itself to an anonymous client, and that is the server working as intended, not a fault.
How fast is Orbit?
It answers our handshake in 352 ms on average, which is faster than 39% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.