{"ok":true,"data":{"schemaVersion":"platphorm.mcp.registry-drift.v1","generatedAt":"2026-05-27T13:01:56.175Z","canonicalCounts":{"schemaVersion":"platphorm.mcp.counts.v1","generatedAt":"2026-05-27T13:01:56.176Z","authoritativeSource":"mixed","tools":{"callable":140,"public":101,"protected":39,"generatedDraft":11,"degraded":11,"byCategory":{"Analytics":7,"Categories":4,"Content":8,"Deployments":3,"DynamoDB":1,"FAQ":4,"Federation":1,"GitHub":4,"Infrastructure":4,"MCP Federation":6,"Network":14,"Registry":55,"Search":3,"Security":2,"Sites":21,"Verticals":3}},"resources":{"total":16,"public":16,"protected":0,"degraded":0},"prompts":{"total":23,"public":23,"protected":0,"degraded":0},"sites":{"rootGraph":24,"storageRegistered":0,"mcpEnabled":2,"federatedServers":2},"integrations":{"total":11,"active":0,"degraded":11},"drift":[{"surface":"dashboard.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"Dashboard callable tools use canonical in-process registry counts."},{"surface":"/api/health.platform.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"Health reports the canonical callable tool count."},{"surface":"/api/v1/registry/counts.canonical.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"Registry counts reports the same callable tool count as tools/list."},{"surface":"/api/mcp tools/list","observed":140,"expected":140,"kind":"tools","status":"match","message":"tools/list is authoritative for callable tools."},{"surface":"/api/mcp resources/list","observed":16,"expected":16,"kind":"resources","status":"match","message":"resources/list is authoritative for public resources."},{"surface":"/api/mcp prompts/list","observed":23,"expected":23,"kind":"prompts","status":"match","message":"prompts/list is authoritative for public prompts."},{"surface":"/.well-known/mcp.json.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"The MCP well-known manifest must use canonical callable tool counts."},{"surface":"/llms.txt.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"LLMS summary must use canonical callable tool counts."},{"surface":"/openapi.yaml.x-mcp.counts.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"OpenAPI extension counts must use canonical callable tool counts."},{"surface":"storage.registeredSites","observed":0,"expected":24,"kind":"sites","status":"stale","message":"Storage registered-site count is dependency metadata only and is not canonical when it differs from the root graph."},{"surface":"rootGraph.registeredSites","observed":24,"expected":24,"kind":"sites","status":"unknown","message":"Root graph was unavailable or degraded; registered-site count came from labeled fallback."}]},"drift":[{"surface":"dashboard.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"Dashboard callable tools use canonical in-process registry counts."},{"surface":"/api/health.platform.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"Health reports the canonical callable tool count."},{"surface":"/api/v1/registry/counts.canonical.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"Registry counts reports the same callable tool count as tools/list."},{"surface":"/api/mcp tools/list","observed":140,"expected":140,"kind":"tools","status":"match","message":"tools/list is authoritative for callable tools."},{"surface":"/api/mcp resources/list","observed":16,"expected":16,"kind":"resources","status":"match","message":"resources/list is authoritative for public resources."},{"surface":"/api/mcp prompts/list","observed":23,"expected":23,"kind":"prompts","status":"match","message":"prompts/list is authoritative for public prompts."},{"surface":"/.well-known/mcp.json.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"The MCP well-known manifest must use canonical callable tool counts."},{"surface":"/llms.txt.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"LLMS summary must use canonical callable tool counts."},{"surface":"/openapi.yaml.x-mcp.counts.tools","observed":140,"expected":140,"kind":"tools","status":"match","message":"OpenAPI extension counts must use canonical callable tool counts."},{"surface":"storage.registeredSites","observed":0,"expected":24,"kind":"sites","status":"stale","message":"Storage registered-site count is dependency metadata only and is not canonical when it differs from the root graph."},{"surface":"rootGraph.registeredSites","observed":24,"expected":24,"kind":"sites","status":"unknown","message":"Root graph was unavailable or degraded; registered-site count came from labeled fallback."}],"summary":{"total":11,"mismatches":0,"stale":1,"unknown":1,"matches":9},"policy":"tools/list is authoritative for callable tools; storage counts are dependency metadata and never override canonical registry counts."},"meta":{"generatedAt":"2026-05-27T13:01:56.176Z","traceId":"881592e4-5d27-46f2-ba95-2cbc3e571d39","degraded":false,"source":"registry"},"warnings":[],"errors":[]}