{"ok":true,"data":{"schemaVersion":"web4.scorecard.v1","site":"https://mcp.platphormnews.com","generatedAt":"2026-05-27T13:00:41.519Z","score":100,"classification":"ready with degraded dependencies labeled","counts":{"callableTools":140,"publicTools":101,"protectedTools":39,"degradedTools":11,"draftTools":11,"resources":16,"prompts":23,"categories":16,"federatedServers":2,"registeredSites":177},"checks":[{"name":"MCP endpoint and lifecycle","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/api/mcp"},{"name":"Tools/resources/prompts registry accuracy","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/api/v1/registry/counts"},{"name":"Count consistency and drift reporting","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/api/v1/registry/drift"},{"name":"Public/protected policy enforcement","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/.well-known/trust.json"},{"name":"Gateway/federation safety","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/api/v1/gateway/status"},{"name":"Standard discovery routes","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/llms-index.json"},{"name":"OpenAPI/AsyncAPI/MCP manifests","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/openapi.yaml"},{"name":"Trust/agent/AI/security policy files","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/.well-known/trust.json"},{"name":"Trace-linked handoff workflow","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/api/web4/status"},{"name":"Deterministic fingerprints and provenance readiness","points":10,"earned":10,"status":"pass","evidenceUrl":"https://mcp.platphormnews.com/api/web4/fingerprints"}],"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":177,"kind":"sites","status":"stale","message":"Storage registered-site count is dependency metadata only and is not canonical when it differs from the root graph."}],"warnings":[{"surface":"storage.registeredSites","observed":0,"expected":177,"kind":"sites","status":"stale","message":"Storage registered-site count is dependency metadata only and is not canonical when it differs from the root graph."}],"errors":[]},"meta":{"generatedAt":"2026-05-27T13:00:41.519Z","traceId":"627ae1ed-8544-4b23-a83d-5ea0dcfd5a78","degraded":false,"source":"registry"},"warnings":[],"errors":[]}