{"ok":true,"data":{"schemaVersion":"platphorm.mcp.registry-drift.v1","generatedAt":"2026-08-28T06:35:54.277Z","canonicalCounts":{"schemaVersion":"platphorm.mcp.counts.v1","generatedAt":"2026-08-28T06:35:54.278Z","authoritativeSource":"mixed","tools":{"callable":76,"public":70,"protected":6,"generatedDraft":16,"degraded":0,"byCategory":{"external":1,"github":4,"handoff":4,"mcp":34,"network":33}},"resources":{"total":5,"public":5,"protected":0,"degraded":0},"prompts":{"total":22,"public":22,"protected":0,"degraded":0},"sites":{"rootGraph":322,"storageRegistered":0,"mcpEnabled":317,"federatedServers":317},"integrations":{"total":16,"active":16,"degraded":0},"drift":[{"surface":"dashboard.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"Dashboard callable tools use canonical in-process registry counts."},{"surface":"/api/health.platform.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"Health reports the canonical callable tool count."},{"surface":"/api/v1/registry/counts.canonical.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"Registry counts reports the same callable tool count as tools/list."},{"surface":"/api/mcp tools/list","observed":76,"expected":76,"kind":"tools","status":"match","message":"tools/list is authoritative for callable tools."},{"surface":"/api/mcp resources/list","observed":5,"expected":5,"kind":"resources","status":"match","message":"resources/list is authoritative for public resources."},{"surface":"/api/mcp prompts/list","observed":22,"expected":22,"kind":"prompts","status":"match","message":"prompts/list is authoritative for public prompts."},{"surface":"/.well-known/mcp.json.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"The MCP well-known manifest must use canonical callable tool counts."},{"surface":"/llms.txt.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"LLMS summary must use canonical callable tool counts."},{"surface":"/openapi.yaml.x-mcp.counts.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"OpenAPI extension counts must use canonical callable tool counts."},{"surface":"storage.registeredSites","observed":0,"expected":322,"kind":"sites","status":"stale","message":"Storage registered-site count is dependency metadata only and is not canonical when it differs from the root graph."}]},"drift":[{"surface":"dashboard.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"Dashboard callable tools use canonical in-process registry counts."},{"surface":"/api/health.platform.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"Health reports the canonical callable tool count."},{"surface":"/api/v1/registry/counts.canonical.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"Registry counts reports the same callable tool count as tools/list."},{"surface":"/api/mcp tools/list","observed":76,"expected":76,"kind":"tools","status":"match","message":"tools/list is authoritative for callable tools."},{"surface":"/api/mcp resources/list","observed":5,"expected":5,"kind":"resources","status":"match","message":"resources/list is authoritative for public resources."},{"surface":"/api/mcp prompts/list","observed":22,"expected":22,"kind":"prompts","status":"match","message":"prompts/list is authoritative for public prompts."},{"surface":"/.well-known/mcp.json.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"The MCP well-known manifest must use canonical callable tool counts."},{"surface":"/llms.txt.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"LLMS summary must use canonical callable tool counts."},{"surface":"/openapi.yaml.x-mcp.counts.tools","observed":76,"expected":76,"kind":"tools","status":"match","message":"OpenAPI extension counts must use canonical callable tool counts."},{"surface":"storage.registeredSites","observed":0,"expected":322,"kind":"sites","status":"stale","message":"Storage registered-site count is dependency metadata only and is not canonical when it differs from the root graph."}],"summary":{"total":10,"mismatches":0,"stale":1,"unknown":0,"matches":9},"policy":"The in-process registry is authoritative for local handler counts, while tools/list is authoritative for the combined paginated MCP view. Source-owned network aliases remain separately namespaced; storage counts never override or masquerade as local handlers."},"meta":{"generatedAt":"2026-08-28T06:35:54.279Z","traceId":"49231fdd658b13761c4bde31c7514a63","degraded":false,"source":"registry"},"warnings":[],"errors":[]}