{"status":"degraded","totalApis":17,"healthyApis":16,"degradedApis":0,"unhealthyApis":1,"inactiveApis":0,"totalTests":17,"passedTests":16,"failedTests":1,"duration":9658,"apis":[{"api":"coingecko","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2766,"tests":[{"name":"get_price","status":"passed","duration":2766}],"timestamp":"2026-10-17T20:20:25.274Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"hive","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2687,"tests":[{"name":"hive_list_monitors","status":"passed","duration":2687}],"timestamp":"2026-10-17T20:20:25.195Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"defillama","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2434,"tests":[{"name":"get_protocol_tvl","status":"passed","duration":2434}],"timestamp":"2026-10-17T20:20:24.942Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"goplus","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2442,"tests":[{"name":"get_goplus_supported_chains","status":"passed","duration":2442}],"timestamp":"2026-10-17T20:20:24.950Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"ccxt","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":4688,"tests":[{"name":"get_ticker","status":"passed","duration":4688}],"timestamp":"2026-10-17T20:20:27.196Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"tenderly","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2849,"tests":[{"name":"tenderly_get_supported_networks","status":"passed","duration":2849}],"timestamp":"2026-10-17T20:20:25.357Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"moralis","status":"failed","totalTests":1,"passedTests":0,"failedTests":1,"skippedTests":0,"duration":2935,"tests":[{"name":"moralis_get_wallet_history","status":"failed","duration":2935,"error":"Your Moralis Free usage is paused. Upgrade to a paid plan to resume usage. Your existing setup remains in place - no migration or reconfiguration required: https://admin.moralis.com/settings/billing#planSelector"}],"timestamp":"2026-10-17T20:20:25.444Z","runtimeStatus":"plan_required","runtimeStatusSummary":{"ok":0,"invalid_input":0,"missing_key":0,"plan_required":1,"rate_limited":0,"degraded":0,"failing":0}},{"api":"helius","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2361,"tests":[{"name":"helius_get_slot","status":"passed","duration":2361}],"timestamp":"2026-10-17T20:20:24.869Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"alchemy","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2436,"tests":[{"name":"alchemy_get_block_number","status":"passed","duration":2436}],"timestamp":"2026-10-17T20:20:24.944Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"hyperliquid","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2439,"tests":[{"name":"hyperliquid_get_perp_dexs","status":"passed","duration":2439}],"timestamp":"2026-10-17T20:20:24.947Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"rwa","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2675,"tests":[{"name":"rwa_get_ostium_markets","status":"passed","duration":2675}],"timestamp":"2026-10-17T20:20:25.184Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"archive","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":9643,"tests":[{"name":"archive_get_coverage","status":"passed","duration":9643}],"timestamp":"2026-10-17T20:20:32.151Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"polymarket","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2689,"tests":[{"name":"polymarket_get_market","status":"passed","duration":2689}],"timestamp":"2026-10-17T20:20:25.197Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"alternative","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2987,"tests":[{"name":"signals_get_fear_greed","status":"passed","duration":2987}],"timestamp":"2026-10-17T20:20:25.495Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"blockchain","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2819,"tests":[{"name":"signals_get_onchain_metrics","status":"passed","duration":2819}],"timestamp":"2026-10-17T20:20:25.327Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"blockscout","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":3287,"tests":[{"name":"get_token_holder_distribution","status":"passed","duration":3287}],"timestamp":"2026-10-17T20:20:25.795Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"fetch","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":2687,"tests":[{"name":"fetch_public_api","status":"passed","duration":2687}],"timestamp":"2026-10-17T20:20:25.195Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}}],"timestamp":"2026-10-17T20:20:32.153Z","runtimeStatuses":["ok","invalid_input","missing_key","plan_required","rate_limited","degraded","failing"],"runtimeStatusSummary":{"ok":16,"invalid_input":0,"missing_key":0,"plan_required":1,"rate_limited":0,"degraded":0,"failing":0},"serverVersion":"1.11.2","buildSha":"0f7088f057c5441ac196104563c34fee15a1ca18","observedAt":"2026-10-17T20:20:32.153Z","release":{"version":"1.11.2","buildSha":"0f7088f057c5441ac196104563c34fee15a1ca18"},"dimensions":{"transport":{"status":"healthy","scope":"This HTTP process accepted and answered the status request.","evidence":{"state":"observed","source":"http_status_response","observedAt":"2026-10-17T20:26:32.089Z","message":"Transport reachability does not imply MCP protocol or provider health."}},"providers":{"status":"degraded","scope":"Authenticated upstream provider probes.","evidence":{"state":"observed","source":"provider_canary_history","observedAt":"2026-10-17T20:20:32.153Z","message":"Status is based on the latest durable provider-canary run. Status is based on a fresh provider canary run from the current build."}},"taskCanaries":{"status":"healthy","scope":"Live execution of canonical task-toolset probes.","evidence":{"state":"observed","source":"task_canary_history","observedAt":"2026-10-17T20:20:34.229Z","message":"Status is based on a fresh task canary run from the current build."}},"workflowRouting":{"status":"healthy","scope":"Offline discovery, routing, and schema regression checks.","evidence":{"state":"observed","source":"workflow_canary_history","observedAt":"2026-10-17T20:20:22.347Z","message":"Status is based on a fresh workflow regression from the current build."}},"mcpProtocol":{"status":"healthy","scope":"In-process MCP initialization, discovery, and schema checks.","evidence":{"state":"observed","source":"mcp_protocol_canary_history","observedAt":"2026-10-17T20:20:17.701Z","message":"12/12 protocol checks passed; auth status is ok. Status is based on a fresh mcp protocol canary run from the current build."}},"oauthLifecycle":{"status":"healthy","scope":"OAuth configuration, durable token state, canary identity, and the provider/store authorization-code, access-token, refresh/replay, revocation, and cleanup lifecycle.","evidence":{"state":"observed","source":"oauth_lifecycle_canary_history","observedAt":"2026-10-17T20:20:16.484Z","message":"8/8 OAuth lifecycle checks passed. Status is based on a fresh oauth lifecycle canary run from the current build."}},"catalogIntegrity":{"status":"healthy","scope":"Root tools, portable workflow/skill resources, prompts, discovery, and schema lookup.","evidence":{"state":"observed","source":"mcp_protocol_catalog_checks","observedAt":"2026-10-17T20:20:17.701Z","message":"10/10 catalog checks passed."}},"rateLimiter":{"status":"healthy","scope":"This instance's shared rate-limit store, upstream response cache, and idempotency keys.","evidence":{"state":"observed","source":"serving_instance_redis","observedAt":"2026-10-17T20:26:32.090Z","message":"This instance holds a live connection to the rate-limit store."}}},"canaryStorage":{"providers":{"configuredBackend":"redis","activeBackend":"redis","persistent":true,"available":true,"required":true,"degraded":false,"message":"Canary history is persisted in Redis."},"mcpProtocol":{"configuredBackend":"redis","activeBackend":"redis","persistent":true,"available":true,"required":true,"degraded":false,"message":"Canary history is persisted in Redis."},"oauthLifecycle":{"configuredBackend":"redis","activeBackend":"redis","persistent":true,"available":true,"required":true,"degraded":false,"message":"Canary history is persisted in Redis."},"taskCanaries":{"configuredBackend":"redis","activeBackend":"redis","persistent":true,"available":true,"required":true,"degraded":false,"message":"Canary history is persisted in Redis."},"workflowRouting":{"configuredBackend":"redis","activeBackend":"redis","persistent":true,"available":true,"required":true,"degraded":false,"message":"Canary history is persisted in Redis."}},"statusPolicy":{"requiredDimensions":["providers","taskCanaries","workflowRouting","mcpProtocol","oauthLifecycle","catalogIntegrity","rateLimiter"],"rule":"Any unhealthy dimension makes overall status unhealthy; otherwise degraded wins, missing evidence remains unknown, and healthy requires every required dimension to be healthy."}}