{"service":"mcp","status":"degraded","server":"platphormnews-mcp","version":"0.9.1","environment":"production","uptime":1676.480966195,"databaseStatus":"active","mcpStatus":"active","gatewayStatus":"active","protectedGatewayStatus":"active","discoveryStatus":"degraded","catalogStatus":"stale","llmsStatus":"active","openapiStatus":"active","rssStatus":"active","sitemapStatus":"active","trustedDomainStatus":"active","routeComplianceScore":100,"routeComplianceSource":"declared_public_route_registry","stores":{"redis":{"status":"not_applicable","required":false,"role":"retired_legacy_product_store","observedConnection":{"status":"retired","canonical":false,"note":"Redis is no longer read, written, or probed by the production MCP runtime."}},"registry":{"configured":true,"backend":"cloudflare-d1-r2","schema":"d1+r2","authMode":"server_side_platform_key","contractSource":"mcp.platphormnews.com","cache":{"configured":false,"backend":"retired-redis"},"status":"active","latestSnapshot":{"backend":"cloudflare-r2","storedAt":"2026-08-26T16:04:37.229Z","generatedAt":"2026-08-26T06:26:38.888Z","trustedMcpCandidates":364,"sitemapHosts":357,"respondingServers":214,"toolEntries":3531,"apiOperations":4628,"machineReadableSurfaces":4332,"graphDeclaredMachineReadableSurfaces":3792},"durable":{"backend":"cloudflare-d1-r2","status":"active","latestSnapshotAt":"2026-08-26T16:04:37.229Z"},"legacyPostgresql":{"status":"not_probed","latestSnapshotAt":null},"legacyRedis":{"status":"retired","latestSnapshotAt":null}}},"components":{"runtime":{"status":"healthy"},"protocol":{"status":"active","required":true},"toolCatalog":{"status":"active","required":true},"resourceCatalog":{"status":"active","required":true},"promptCatalog":{"status":"active","required":true},"toolExecution":{"status":"active","required":true},"capabilitySnapshot":{"status":"stale","backend":"cloudflare-d1-r2","required":true,"generatedAt":"2026-08-26T06:26:38.888Z","ageSeconds":173352,"maxAgeSeconds":86400,"limitation":"The persisted federated CapabilitySnapshot is stale; recommendations may omit recently registered or changed source-owned capabilities."},"authentication":{"status":"active","required":true},"traceExport":{"status":"active","required":false},"legacyProductStore":{"status":"not_applicable","requiredForPrimaryDiscovery":false}},"reasons":[{"code":"CAPABILITY_SNAPSHOT_STALE","component":"capability-snapshot","status":"degraded","observedAt":"2026-08-28T06:35:51.328Z","impact":"The persisted federated CapabilitySnapshot is stale; recommendations may omit recently registered or changed source-owned capabilities.","retryable":true}],"platform":{"registeredSites":322,"registeredSitesSource":"https://platphormnews.com/api/network/graph","registeredSitesStatus":"active","totalArticles":0,"tools":76,"resources":5,"prompts":22,"categories":5,"phase2":{"tools":76,"resources":5,"prompts":22,"categories":5,"registeredSites":322,"generatedTools":16,"draftTools":16,"protectedTools":6,"publicTools":70,"degradedTools":0,"integrations":16,"policyPlatforms":12,"mcpClientsSupported":5,"evals":16,"sandboxTests":16,"browserOpsTests":16}},"canonicalSources":{"registry":"https://api.platphormnews.com/api/v1/capabilities (identity authority); in-process handlers are the executable MCP projection","registeredSites":"https://platphormnews.com/api/network/graph","sitemapIndex":"https://base.platphormnews.com/sitemap-index.xml","agentOps":"https://agentops.platphormnews.com/api/v1/network/discovery","sitemapService":"https://sitemap.platphormnews.com/sitemap-index.xml","trustOps":"https://trustops.platphormnews.com/api/health","storage":"Cloudflare D1 stores snapshot metadata, R2 stores durable capability snapshots, and KV is rebuildable acceleration. PostgreSQL is rollback-only and Redis is not a production discovery authority."},"reconciliation":{"status":"reconciled","explanation":"Dashboard, health, MCP metadata, llms, OpenAPI, and registry routes derive local handler counts from the same canonical MCP registry. Paginated native MCP, OpenAPI, and root-graph surface aliases remain separately source-labeled from the persisted federation snapshot.","surfaces":["dashboard","/api/health","/api/v1/health","/api/mcp tools/list","/api/mcp resources/list","/api/mcp prompts/list","/.well-known/mcp.json","/llms.txt","/llms-full.txt","/llms-index.json","/openapi.yaml","/openapi.json","/api/docs"]},"gateway":{"status":"active","statusReason":"Public read-only federation and protected trusted-target execution are active with shared-key auth, Cloudflare audit logging, bounded responses, circuit breaking, and Trace propagation.","publicStatus":"active","protectedStatus":"active","publicReadProxy":"active_for_trusted_discovery_artifacts_and_read_only_mcp_methods","protectedProxy":"active_for_trusted_targets_with_PLATPHORM_API_KEY_and_Cloudflare_audit","trustedTargets":["*.platphormnews.com","mcp.platphormnews.com","*.ph3ar.com","ascii.platphormnews.com","design.platphormnews.com","files.platphormnews.com","pdf.platphormnews.com"],"blockedTargets":["localhost","private-ip-ranges","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","link-local","metadata-services","metadata services","file://","ftp://","gopher://","URLs with embedded credentials","untrusted external domains","redirects to blocked targets"],"policies":{"auth":"Public-safe read calls can be described and validated. Mutating/protected downstream calls require PLATPHORM_API_KEY.","secretHandling":"PLATPHORM_API_KEY is forwarded only after local authentication and only to trusted PlatPhormNews MCP endpoints for protected operations; it is never persisted or returned.","durableAudit":"active_in_cloudflare.gateway_audit_log","circuitBreaker":"three_failures_open_target_for_30_seconds","responseLimitBytes":2000000,"tracePropagation":["traceparent","tracestate","X-PlatPhorm-Trace-Id","X-PlatPhorm-Span-Id","X-PlatPhorm-Request-Id"],"ja4Digest":"capture when present, hash/redact for public summaries, never expose raw values publicly"},"routes":{"status":"/api/v1/gateway/status","policies":"/api/v1/gateway/policies","routes":"/api/v1/gateway/routes","call":"/api/v1/gateway/call","proxyMcp":"/api/v1/gateway/proxy-mcp"}},"mcp":{"status":"active","protocolStatus":"active","executionStatus":"active","executionEvidence":"Every advertised handler has a non-Redis execution path or an explicit governed/degraded contract response.","protocolVersion":"2026-07-28","supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05"],"transport":"streamable-http","callableTools":76,"localCallableTools":76,"observedNetworkTools":3531,"observedNetworkApiOperations":4628,"observedMachineReadableSurfaces":4332,"networkToolCallSupport":"active_namespaced_paginated_delegation","networkToolCallsRequire":"PLATPHORM_API_KEY","networkToolPageSize":200,"resources":5,"prompts":22,"evidence":"MCP protocol probe (2026-07-28 server/discover plus legacy initialize, tools/list, resources/list, prompts/list, ping) succeeded; legacy Redis-only handlers are not advertised"},"network":{"name":"PlatPhorm News Network","rootSite":"https://www.platphormnews.com","mcpHub":"https://mcp.platphormnews.com","graph":{"ok":true,"siteCount":322,"nodeCount":372,"edgeCount":415,"mcpEnabledSiteCount":317,"fallback":false}},"observability":{"traceContextAccepted":false,"traceContextPropagated":false,"traceExportEnabled":true,"traceExportStatus":"configured","lifecycle":"start_evidence_complete_or_fail","privatePayloadExported":false,"redactionStatus":"public_safe_summary_only"},"traceContextAccepted":false,"traceContextPropagated":false,"traceEnabled":true,"traceExportEnabled":true,"redactionStatus":"public_safe_summary_only","vercelMetadataCaptured":true,"endpoints":{"mcp":"/mcp","mcpCompatibility":"/api/mcp","health":"/api/health","test":"/api/v1/test/mcp","docs":"/api/docs","discovery":"/.well-known/mcp.json"},"graphSourceUrl":"https://platphormnews.com/api/network/graph","sitemapIndexSourceUrl":"https://base.platphormnews.com/sitemap-index.xml","timestamp":"2026-08-28T06:35:51.328Z","ok":true,"data":{"service":"mcp","status":"degraded","server":"platphormnews-mcp","version":"0.9.1","environment":"production","uptime":1676.480966195,"databaseStatus":"active","mcpStatus":"active","gatewayStatus":"active","protectedGatewayStatus":"active","discoveryStatus":"degraded","catalogStatus":"stale","llmsStatus":"active","openapiStatus":"active","rssStatus":"active","sitemapStatus":"active","trustedDomainStatus":"active","routeComplianceScore":100,"routeComplianceSource":"declared_public_route_registry","stores":{"redis":{"status":"not_applicable","required":false,"role":"retired_legacy_product_store","observedConnection":{"status":"retired","canonical":false,"note":"Redis is no longer read, written, or probed by the production MCP runtime."}},"registry":{"configured":true,"backend":"cloudflare-d1-r2","schema":"d1+r2","authMode":"server_side_platform_key","contractSource":"mcp.platphormnews.com","cache":{"configured":false,"backend":"retired-redis"},"status":"active","latestSnapshot":{"backend":"cloudflare-r2","storedAt":"2026-08-26T16:04:37.229Z","generatedAt":"2026-08-26T06:26:38.888Z","trustedMcpCandidates":364,"sitemapHosts":357,"respondingServers":214,"toolEntries":3531,"apiOperations":4628,"machineReadableSurfaces":4332,"graphDeclaredMachineReadableSurfaces":3792},"durable":{"backend":"cloudflare-d1-r2","status":"active","latestSnapshotAt":"2026-08-26T16:04:37.229Z"},"legacyPostgresql":{"status":"not_probed","latestSnapshotAt":null},"legacyRedis":{"status":"retired","latestSnapshotAt":null}}},"components":{"runtime":{"status":"healthy"},"protocol":{"status":"active","required":true},"toolCatalog":{"status":"active","required":true},"resourceCatalog":{"status":"active","required":true},"promptCatalog":{"status":"active","required":true},"toolExecution":{"status":"active","required":true},"capabilitySnapshot":{"status":"stale","backend":"cloudflare-d1-r2","required":true,"generatedAt":"2026-08-26T06:26:38.888Z","ageSeconds":173352,"maxAgeSeconds":86400,"limitation":"The persisted federated CapabilitySnapshot is stale; recommendations may omit recently registered or changed source-owned capabilities."},"authentication":{"status":"active","required":true},"traceExport":{"status":"active","required":false},"legacyProductStore":{"status":"not_applicable","requiredForPrimaryDiscovery":false}},"reasons":[{"code":"CAPABILITY_SNAPSHOT_STALE","component":"capability-snapshot","status":"degraded","observedAt":"2026-08-28T06:35:51.328Z","impact":"The persisted federated CapabilitySnapshot is stale; recommendations may omit recently registered or changed source-owned capabilities.","retryable":true}],"platform":{"registeredSites":322,"registeredSitesSource":"https://platphormnews.com/api/network/graph","registeredSitesStatus":"active","totalArticles":0,"tools":76,"resources":5,"prompts":22,"categories":5,"phase2":{"tools":76,"resources":5,"prompts":22,"categories":5,"registeredSites":322,"generatedTools":16,"draftTools":16,"protectedTools":6,"publicTools":70,"degradedTools":0,"integrations":16,"policyPlatforms":12,"mcpClientsSupported":5,"evals":16,"sandboxTests":16,"browserOpsTests":16}},"canonicalSources":{"registry":"https://api.platphormnews.com/api/v1/capabilities (identity authority); in-process handlers are the executable MCP projection","registeredSites":"https://platphormnews.com/api/network/graph","sitemapIndex":"https://base.platphormnews.com/sitemap-index.xml","agentOps":"https://agentops.platphormnews.com/api/v1/network/discovery","sitemapService":"https://sitemap.platphormnews.com/sitemap-index.xml","trustOps":"https://trustops.platphormnews.com/api/health","storage":"Cloudflare D1 stores snapshot metadata, R2 stores durable capability snapshots, and KV is rebuildable acceleration. PostgreSQL is rollback-only and Redis is not a production discovery authority."},"reconciliation":{"status":"reconciled","explanation":"Dashboard, health, MCP metadata, llms, OpenAPI, and registry routes derive local handler counts from the same canonical MCP registry. Paginated native MCP, OpenAPI, and root-graph surface aliases remain separately source-labeled from the persisted federation snapshot.","surfaces":["dashboard","/api/health","/api/v1/health","/api/mcp tools/list","/api/mcp resources/list","/api/mcp prompts/list","/.well-known/mcp.json","/llms.txt","/llms-full.txt","/llms-index.json","/openapi.yaml","/openapi.json","/api/docs"]},"gateway":{"status":"active","statusReason":"Public read-only federation and protected trusted-target execution are active with shared-key auth, Cloudflare audit logging, bounded responses, circuit breaking, and Trace propagation.","publicStatus":"active","protectedStatus":"active","publicReadProxy":"active_for_trusted_discovery_artifacts_and_read_only_mcp_methods","protectedProxy":"active_for_trusted_targets_with_PLATPHORM_API_KEY_and_Cloudflare_audit","trustedTargets":["*.platphormnews.com","mcp.platphormnews.com","*.ph3ar.com","ascii.platphormnews.com","design.platphormnews.com","files.platphormnews.com","pdf.platphormnews.com"],"blockedTargets":["localhost","private-ip-ranges","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","link-local","metadata-services","metadata services","file://","ftp://","gopher://","URLs with embedded credentials","untrusted external domains","redirects to blocked targets"],"policies":{"auth":"Public-safe read calls can be described and validated. Mutating/protected downstream calls require PLATPHORM_API_KEY.","secretHandling":"PLATPHORM_API_KEY is forwarded only after local authentication and only to trusted PlatPhormNews MCP endpoints for protected operations; it is never persisted or returned.","durableAudit":"active_in_cloudflare.gateway_audit_log","circuitBreaker":"three_failures_open_target_for_30_seconds","responseLimitBytes":2000000,"tracePropagation":["traceparent","tracestate","X-PlatPhorm-Trace-Id","X-PlatPhorm-Span-Id","X-PlatPhorm-Request-Id"],"ja4Digest":"capture when present, hash/redact for public summaries, never expose raw values publicly"},"routes":{"status":"/api/v1/gateway/status","policies":"/api/v1/gateway/policies","routes":"/api/v1/gateway/routes","call":"/api/v1/gateway/call","proxyMcp":"/api/v1/gateway/proxy-mcp"}},"mcp":{"status":"active","protocolStatus":"active","executionStatus":"active","executionEvidence":"Every advertised handler has a non-Redis execution path or an explicit governed/degraded contract response.","protocolVersion":"2026-07-28","supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05"],"transport":"streamable-http","callableTools":76,"localCallableTools":76,"observedNetworkTools":3531,"observedNetworkApiOperations":4628,"observedMachineReadableSurfaces":4332,"networkToolCallSupport":"active_namespaced_paginated_delegation","networkToolCallsRequire":"PLATPHORM_API_KEY","networkToolPageSize":200,"resources":5,"prompts":22,"evidence":"MCP protocol probe (2026-07-28 server/discover plus legacy initialize, tools/list, resources/list, prompts/list, ping) succeeded; legacy Redis-only handlers are not advertised"},"network":{"name":"PlatPhorm News Network","rootSite":"https://www.platphormnews.com","mcpHub":"https://mcp.platphormnews.com","graph":{"ok":true,"siteCount":322,"nodeCount":372,"edgeCount":415,"mcpEnabledSiteCount":317,"fallback":false}},"observability":{"traceContextAccepted":false,"traceContextPropagated":false,"traceExportEnabled":true,"traceExportStatus":"configured","lifecycle":"start_evidence_complete_or_fail","privatePayloadExported":false,"redactionStatus":"public_safe_summary_only"},"traceContextAccepted":false,"traceContextPropagated":false,"traceEnabled":true,"traceExportEnabled":true,"redactionStatus":"public_safe_summary_only","vercelMetadataCaptured":true,"endpoints":{"mcp":"/mcp","mcpCompatibility":"/api/mcp","health":"/api/health","test":"/api/v1/test/mcp","docs":"/api/docs","discovery":"/.well-known/mcp.json"},"graphSourceUrl":"https://platphormnews.com/api/network/graph","sitemapIndexSourceUrl":"https://base.platphormnews.com/sitemap-index.xml","timestamp":"2026-08-28T06:35:51.328Z"}}