{"status":"healthy","totalApis":12,"healthyApis":12,"degradedApis":0,"unhealthyApis":0,"inactiveApis":0,"totalTests":12,"passedTests":12,"failedTests":0,"duration":2693,"apis":[{"api":"coingecko","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":492,"tests":[{"name":"get_price","status":"passed","duration":492}],"timestamp":"2026-07-21T11:00:37.112Z","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":738,"tests":[{"name":"hive_list_monitors","status":"passed","duration":738}],"timestamp":"2026-07-21T11:00:37.358Z","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":276,"tests":[{"name":"get_protocol_tvl","status":"passed","duration":276}],"timestamp":"2026-07-21T11:00:36.896Z","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":284,"tests":[{"name":"get_goplus_supported_chains","status":"passed","duration":284}],"timestamp":"2026-07-21T11:00:36.904Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"codex","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":451,"tests":[{"name":"get_networks_list","status":"passed","duration":451}],"timestamp":"2026-07-21T11:00:37.071Z","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":2680,"tests":[{"name":"get_ticker","status":"passed","duration":2680}],"timestamp":"2026-07-21T11:00:39.300Z","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":1104,"tests":[{"name":"tenderly_get_supported_networks","status":"passed","duration":1104}],"timestamp":"2026-07-21T11:00:37.724Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"moralis","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":986,"tests":[{"name":"moralis_get_wallet_history","status":"passed","duration":986}],"timestamp":"2026-07-21T11:00:37.606Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}},{"api":"helius","status":"passed","totalTests":1,"passedTests":1,"failedTests":0,"skippedTests":0,"duration":340,"tests":[{"name":"helius_get_slot","status":"passed","duration":340}],"timestamp":"2026-07-21T11:00:36.960Z","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":256,"tests":[{"name":"alchemy_get_block_number","status":"passed","duration":256}],"timestamp":"2026-07-21T11:00:36.876Z","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":302,"tests":[{"name":"hyperliquid_get_perp_dexs","status":"passed","duration":302}],"timestamp":"2026-07-21T11:00:36.922Z","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":515,"tests":[{"name":"fetch_public_api","status":"passed","duration":515}],"timestamp":"2026-07-21T11:00:37.135Z","runtimeStatus":"ok","runtimeStatusSummary":{"ok":1,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0}}],"timestamp":"2026-07-21T11:00:39.301Z","runtimeStatuses":["ok","invalid_input","missing_key","plan_required","rate_limited","degraded","failing"],"runtimeStatusSummary":{"ok":12,"invalid_input":0,"missing_key":0,"plan_required":0,"rate_limited":0,"degraded":0,"failing":0},"serverVersion":"1.3.0","buildSha":"d47b3fb1f94a64108efe56520ab819bccaa4deba","observedAt":"2026-07-21T11:00:39.301Z","release":{"version":"1.3.0","buildSha":"d47b3fb1f94a64108efe56520ab819bccaa4deba"},"dimensions":{"transport":{"status":"healthy","scope":"This HTTP process accepted and answered the status request.","evidence":{"state":"observed","source":"http_status_response","observedAt":"2026-07-21T11:01:47.762Z","message":"Transport reachability does not imply MCP protocol or provider health."}},"providers":{"status":"healthy","scope":"Authenticated upstream provider probes.","evidence":{"state":"observed","source":"provider_canary_history","observedAt":"2026-07-21T11:00:39.301Z","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-07-21T11:00:47.198Z","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-07-21T11:00:36.387Z","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-07-21T11:00:27.400Z","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-07-21T11:00:25.780Z","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-07-21T11:00:27.400Z","message":"10/10 catalog checks passed."}}},"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"],"rule":"Any unhealthy dimension makes overall status unhealthy; otherwise degraded wins, missing evidence remains unknown, and healthy requires every required dimension to be healthy."}}