{"ok":true,"data":{"schemaVersion":"platphorm.mcp.registry-drift.v1","generatedAt":"2026-07-14T02:30:53.193Z","canonicalCounts":{"schemaVersion":"platphorm.mcp.counts.v1","generatedAt":"2026-07-14T02:30:53.193Z","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":142,"storageRegistered":4,"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":4,"expected":142,"kind":"sites","status":"mismatch","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":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":4,"expected":142,"kind":"sites","status":"mismatch","message":"Storage registered-site count is dependency metadata only and is not canonical when it differs from the root graph."}],"summary":{"total":10,"mismatches":1,"stale":0,"unknown":0,"matches":9},"policy":"tools/list is authoritative for callable tools; storage counts are dependency metadata and never override canonical registry counts."},"meta":{"generatedAt":"2026-07-14T02:30:53.193Z","traceId":"88ce5a66-6ec9-44b9-8914-b78e6aeec252","degraded":false,"source":"registry"},"warnings":[],"errors":[]}