mcp_registry_snapshot
Get a daily summary of the official MCP server registry: total servers, status breakdown, top namespaces, and 1-day deltas (newly added, reactivated, deprecated). Track ecosystem growth and detect deprecated servers in use.
Instructions
Today's summary of the official Model Context Protocol server registry. Returns total servers, by-status breakdown, top namespaces, and 1-day deltas (newly added, reactivated, deprecated). Captured daily at 9:30 AM UTC from registry.modelcontextprotocol.io. Useful when an agent wants to see how the MCP ecosystem is growing or detect freshly-deprecated servers it may be using. Free, no auth.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- mcp-server/src/index.ts:922-970 (handler)The main MCP tool handler for 'mcp_registry_snapshot'. Registered via server.tool(), it calls fetchJSON('/mcp/registry/snapshot') and formats a text response with total servers, status breakdown, top namespaces, and 1-day deltas (newly added, reactivated, deprecated). Free, no auth required.
server.tool( 'mcp_registry_snapshot', 'Today\'s summary of the official Model Context Protocol server registry. Returns total servers, by-status breakdown, top namespaces, and 1-day deltas (newly added, reactivated, deprecated). Captured daily at 9:30 AM UTC from registry.modelcontextprotocol.io. Useful when an agent wants to see how the MCP ecosystem is growing or detect freshly-deprecated servers it may be using. Free, no auth.', {}, async () => { const data = (await fetchJSON('/mcp/registry/snapshot')) as { summary: { date: string; capturedAt: string; total_servers: number; total_versions: number; by_status: Record<string, number>; top_namespaces: { namespace: string; count: number }[]; new_today: { count: number; names: string[] }; reactivated_today: { count: number; names: string[] }; deprecated_today: { count: number; names: string[] }; delta_vs_yesterday: { added: number; removed: number; net: number } | null; }; }; const s = data.summary; const statusLine = Object.entries(s.by_status) .map(([k, v]) => `${k}: ${v}`) .join(', '); const topNs = s.top_namespaces.slice(0, 10).map(n => ` ${n.namespace}: ${n.count}`).join('\n'); const delta = s.delta_vs_yesterday ? `Day over day: +${s.delta_vs_yesterday.added} new, -${s.delta_vs_yesterday.removed} removed, net ${s.delta_vs_yesterday.net >= 0 ? '+' : ''}${s.delta_vs_yesterday.net}` : 'Day over day: not available (first snapshot)'; const newToday = s.new_today.count > 0 ? `\nNewly listed today (${s.new_today.count}):\n` + s.new_today.names.slice(0, 10).map(n => ` ${n}`).join('\n') : ''; const deprecatedToday = s.deprecated_today.count > 0 ? `\nDeprecated today (${s.deprecated_today.count}):\n` + s.deprecated_today.names.slice(0, 10).map(n => ` ${n}`).join('\n') : ''; return { content: [ { type: 'text' as const, text: `MCP Server Registry — ${s.date}\n` + `Total servers: ${s.total_servers} (across ${s.total_versions} versioned entries)\n` + `Status: ${statusLine}\n${delta}\n\n` + `Top namespaces:\n${topNs}` + newToday + deprecatedToday + `\n\nSource: registry.modelcontextprotocol.io`, }, ], }; }, ); - mcp-server/src/index.ts:922-970 (registration)Tool registration using server.tool('mcp_registry_snapshot', ...) which registers the tool name with the MCP server. Also includes the handler inline (same block).
server.tool( 'mcp_registry_snapshot', 'Today\'s summary of the official Model Context Protocol server registry. Returns total servers, by-status breakdown, top namespaces, and 1-day deltas (newly added, reactivated, deprecated). Captured daily at 9:30 AM UTC from registry.modelcontextprotocol.io. Useful when an agent wants to see how the MCP ecosystem is growing or detect freshly-deprecated servers it may be using. Free, no auth.', {}, async () => { const data = (await fetchJSON('/mcp/registry/snapshot')) as { summary: { date: string; capturedAt: string; total_servers: number; total_versions: number; by_status: Record<string, number>; top_namespaces: { namespace: string; count: number }[]; new_today: { count: number; names: string[] }; reactivated_today: { count: number; names: string[] }; deprecated_today: { count: number; names: string[] }; delta_vs_yesterday: { added: number; removed: number; net: number } | null; }; }; const s = data.summary; const statusLine = Object.entries(s.by_status) .map(([k, v]) => `${k}: ${v}`) .join(', '); const topNs = s.top_namespaces.slice(0, 10).map(n => ` ${n.namespace}: ${n.count}`).join('\n'); const delta = s.delta_vs_yesterday ? `Day over day: +${s.delta_vs_yesterday.added} new, -${s.delta_vs_yesterday.removed} removed, net ${s.delta_vs_yesterday.net >= 0 ? '+' : ''}${s.delta_vs_yesterday.net}` : 'Day over day: not available (first snapshot)'; const newToday = s.new_today.count > 0 ? `\nNewly listed today (${s.new_today.count}):\n` + s.new_today.names.slice(0, 10).map(n => ` ${n}`).join('\n') : ''; const deprecatedToday = s.deprecated_today.count > 0 ? `\nDeprecated today (${s.deprecated_today.count}):\n` + s.deprecated_today.names.slice(0, 10).map(n => ` ${n}`).join('\n') : ''; return { content: [ { type: 'text' as const, text: `MCP Server Registry — ${s.date}\n` + `Total servers: ${s.total_servers} (across ${s.total_versions} versioned entries)\n` + `Status: ${statusLine}\n${delta}\n\n` + `Top namespaces:\n${topNs}` + newToday + deprecatedToday + `\n\nSource: registry.modelcontextprotocol.io`, }, ], }; }, ); - sdk/javascript/src/index.ts:436-452 (schema)TypeScript interface MCPRegistrySnapshotResponse defining the shape of the API response, including ok, summary fields (date, capturedAt, total_servers, total_versions, by_status, top_namespaces, new_today, reactivated_today, deprecated_today, delta_vs_yesterday, pages_fetched, fetch_truncated).
export interface MCPRegistrySnapshotResponse { ok: boolean; summary: { date: string; capturedAt: string; total_servers: number; total_versions: number; by_status: Record<string, number>; top_namespaces: Array<{ namespace: string; count: number }>; new_today: { count: number; names: string[] }; reactivated_today: { count: number; names: string[] }; deprecated_today: { count: number; names: string[] }; delta_vs_yesterday: { added: number; removed: number; net: number } | null; pages_fetched: number; fetch_truncated: boolean; }; } - JavaScript SDK helper method getMCPRegistrySnapshot() that calls this.request('GET', '/mcp/registry/snapshot') as a typed convenience wrapper.
async getMCPRegistrySnapshot(): Promise<MCPRegistrySnapshotResponse> { return this.request<MCPRegistrySnapshotResponse>('GET', '/mcp/registry/snapshot'); } - Python SDK helper method get_mcp_registry_snapshot() that calls self._request('GET', '/mcp/registry/snapshot') returning a dict.
def get_mcp_registry_snapshot(self) -> dict[str, Any]: """Today's summary of the official MCP server registry. Free, no auth. Returns total servers, by-status breakdown, top namespaces, and 1-day deltas (newly added, reactivated, deprecated). Captured daily at 9:30 AM UTC from registry.modelcontextprotocol.io. Returns: Dict with ``ok`` and ``summary`` keys. The ``summary`` includes ``date``, ``total_servers``, ``by_status``, ``top_namespaces``, ``new_today``, and ``delta_vs_yesterday``. """ return self._request("GET", "/mcp/registry/snapshot")