{"schema_version":"verify.compare.v1","generated_at":"2026-08-18T08:50:29.721994+00:00","count":1,"missing_servers":[],"results":[{"server_id":"ai.lumify/sports-intelligence","display_name":"Lumify Sports Intelligence","profile_url":"https://verify.sentinelsignal.io/servers/ai.lumify/sports-intelligence","compare_url":"https://verify.sentinelsignal.io/compare?server=ai.lumify%2Fsports-intelligence","trust_summary_url":"https://verify.sentinelsignal.io/v1/servers/ai.lumify/sports-intelligence/trust-summary","claimed":false,"verified_publisher":false,"claim_status":"unclaimed","badge_url":"https://verify.sentinelsignal.io/badge/ai.lumify/sports-intelligence.svg","report_url":"https://verify.sentinelsignal.io/v1/servers/ai.lumify/sports-intelligence/report","policy_url":"https://verify.sentinelsignal.io/v1/servers/ai.lumify/sports-intelligence/policy","evidence_url":"https://verify.sentinelsignal.io/api/v1/servers/ai.lumify/sports-intelligence/evidence","commerce_signal":null,"payment_capable":null,"delegation_level":null,"risk_flags":[],"strengths":["report_available","policy_available","badge_available"],"limitations":["unclaimed_profile","publisher_not_verified"],"last_seen":null,"last_scored":"2026-08-18T04:12:55.240701+00:00","recommended_agent_action":"allow_with_policy_review","observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"}}],"servers":[{"namespace":"ai.lumify","name":"sports-intelligence","title":"Lumify Sports Intelligence","description":"Real-time sports schedules, live scores, odds, betting splits, and AI bet intelligence.","homepage_url":"https://lumify.ai","docs_url":null,"icon_url":null,"support_url":null,"remote_url":"https://lumify.ai/mcp","server_card_url":null,"latest_version":"1.0.0","current_status":"healthy","current_score":66.67,"transport_type":"streamable-http","has_oauth":false,"has_dcr":false,"has_prompts":true,"tool_count":18,"current_validation_schema_version":"8058defc70ca932c","last_validated_at":"2026-08-18T04:12:55.240701+00:00","registry_source":"official_registry","registry_identifier":"ai.lumify/sports-intelligence","canonical_identifier":null,"current_score_components":{"auth_operability_score":2.0,"error_contract_score":1.0,"rate_limit_semantics_score":2.0,"schema_completeness_score":3.0,"backward_compatibility_score":4.0,"slo_health_score":4.0,"security_hygiene_score":2.0,"task_success_score":4.0,"trust_confidence_score":4.0,"abuse_noise_ratio_score":4.0,"prompt_contract_score":3.0,"resource_contract_score":3.0,"discovery_metadata_score":2.0,"registry_consistency_score":2.0,"installability_score":4.0,"session_semantics_score":4.0,"tool_surface_design_score":4.0,"result_shape_stability_score":4.0,"oauth_interop_score":0.0,"recovery_semantics_score":1.0,"maintenance_signal_score":4.0,"adoption_signal_score":3.0,"freshness_confidence_score":4.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":0.0,"transport_compliance_score":2.0,"utility_coverage_score":0.0,"advanced_capability_coverage_score":1.0,"connector_publishability_score":2.0,"tool_snapshot_churn_score":4.0,"connector_replay_score":4.0,"request_association_score":0.0,"interactive_flow_safety_score":0.0,"action_safety_score":3.0,"official_registry_presence_score":4.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":3.0,"egress_ssrf_resilience_score":1.0,"execution_sandbox_safety_score":4.0,"data_exfiltration_resilience_score":3.0,"least_privilege_scope_score":3.0,"secret_handling_hygiene_score":3.0,"dependency_supply_chain_signal_score":1.0,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"capability_taxonomy":[],"machine_summary":{},"taxonomy_tags":[],"score_decomposition":[],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{},"request_association":{},"production_readiness":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use.","badge":"score-medium","critical_alerts":0,"high_or_critical_alerts":0,"degraded_by_active_alerts":false},"recommended_for":[],"history_summary":{},"validation_timeline":[],"evidence_confidence":{"score":100.0,"label":"high","reason":"Based on 20 recent validations, 17 captured checks, and validation age of 4.6 hours.","live_check_count":17,"validation_age_hours":4.63,"basis":{"evidence_bearing_validations":20,"affirmative_live_check_count":17,"validation_age_hours":4.63,"freshness_threshold_hours":24}},"incident_feed":[],"disputes":[],"remediations":[],"client_remediation_modes":[],"client_profiles":[],"client_readiness_verdicts":[],"publishability_policy_profiles":[],"compatibility_fixtures":[],"install_snippets":{},"aliases":[],"raw_evidence":{"checks":{"probe_noise_resilience":{"status":"ok","latency_ms":28.21,"details":{"url":"https://lumify.ai/robots.txt","http_status":200,"headers":{"content-type":"text/plain; charset=utf-8"},"validation_disallowed":false,"consent_error":null}},"server_card":{"status":"error","latency_ms":135.56,"details":{"url":"https://lumify.ai/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://lumify.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_protected_resource":{"status":"error","latency_ms":177.44,"details":{"url":"https://lumify.ai/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://lumify.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_authorization_server":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"openid_configuration":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"initialize":{"status":"ok","latency_ms":172.52,"details":{"url":"https://lumify.ai/mcp","payload":{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{"listChanged":false},"resources":{"subscribe":false,"listChanged":false},"prompts":{"listChanged":false}},"serverInfo":{"name":"lumify-mcp","version":"1.0.1"},"instructions":"Lumify sports intelligence. Read the lumify://docs/quickstart resource to get started (including the zero-signup instant-key auth path). Authenticate with a Lumify API key (Bearer lmfy-...) before tools/call. Use tools/list, resources/list, and prompts/list to discover capabilities."}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-06-18","x-ratelimit-limit":"20","x-ratelimit-remaining":"9","x-ratelimit-reset":"1787026434"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"ok","latency_ms":166.3,"details":{"url":"https://lumify.ai/mcp","payload":{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"list_sports","description":"List supported sports with their leagues and current season. Returns each sport's id, slug, name, team-sport flag, and its leagues (each with its current_season). Use list_seasons with current_only=false for historical seasons.","inputSchema":{"type":"object","properties":{"active_only":{"type":"boolean","default":true,"description":"When true (default), omit sports with no active coverage."}}},"outputSchema":{"type":"object","properties":{"sports":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"is_team_sport":{"type":"boolean"},"leagues":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"current_season":{"type":["object","null"]}}}}}}},"total":{"type":"integer"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"list_events","description":"List events (schedules and live scores), paginated by id (after_id). Filter by sport, league, status, date range, season, or team_id (resolve teams via list_teams / get_team). Returns event id, name, sport/league, start time, status, and venue for each; pass include_scores to also inline participants + scores (intended for small result sets — use get_event for one event's full detail, or query_events for free-text/natural-language filters instead of structured params).","inputSchema":{"type":"object","properties":{"sport":{"type":"string","description":"Sport slug, e.g. mlb, nfl, tennis, soccer."},"league":{"type":"string","description":"League slug, e.g. nfl, atp, fifa_world_cup."},"status":{"type":"string","enum":["scheduled","inprogress","final","postponed","cancelled","suspended","delayed","walkover"],"description":"Filter to events in this status."},"date":{"type":"string","description":"UTC date YYYY-MM-DD (single day)."},"from":{"type":"string","description":"UTC start date YYYY-MM-DD."},"to":{"type":"string","description":"UTC end date YYYY-MM-DD (inclusive)."},"season_id":{"type":"integer","description":"Filter by season ID (from list_seasons)."},"team_id":{"type":"integer","description":"Filter to events where this team participates. Resolve ids via list_teams."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Max events to return per page."},"after_id":{"type":"integer","description":"Cursor: return events with id > after_id (from the previous page's next_after_id)."},"include_scores":{"type":"boolean","default":false,"description":"Inline participants + scores in each event (intended for small result sets)."},"has_recommend":{"type":"boolean","description":"When true, only events with at least one recommended bet."},"sort":{"type":"string","enum":["time","status"],"default":"time","description":"Sort order. sort=status is incompatible with after_id."}}},"outputSchema":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/$defs/EventSummary"}},"total":{"type":"integer"},"next_after_id":{"type":["integer","null"],"description":"Pass as after_id to fetch the next page; null on the last page."}},"$defs":{"EventSummary":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"sport":{"type":"string"},"league":{"type":"string"},"season_id":{"type":["integer","null"]},"starts_at":{"type":"string","description":"ISO-8601 UTC start time."},"status":{"type":"string"},"period":{"type":["string","null"]},"clock":{"type":["string","null"]},"venue":{"type":["object","null"]}}}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_event","description":"Get a single event with participants and venue. Optionally inline current odds and/or bet intelligence (+1 credit each, only charged when that data is actually available). Raises a not-found error if event_id doesn't exist. Use list_events / query_events to discover ids first, or batch_get_events to fetch several ids in one call.","inputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Event id, from list_events, query_events, or search results."},"include_odds":{"type":"boolean","default":false,"description":"Inline current odds scoped by bookmaker (default: pinnacle). +1 credit for a single book when available; +2 for bookmaker=all or a comma-separated list."},"include_intelligence":{"type":"boolean","default":false,"description":"Inline bet intelligence (+1 credit when available)."},"bookmaker":{"type":"string","description":"Bookmaker for inlined odds and intelligence market prices. Defaults to pinnacle. Valid: pinnacle, fanduel, draftkings, betmgm, caesars, bet365, circa, hardrock, betonline, all."}},"required":["event_id"]},"outputSchema":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"sport":{"type":"string"},"league":{"type":"string"},"starts_at":{"type":"string"},"status":{"type":"string"},"venue":{"type":["object","null"]},"participants":{"type":"array","items":{"type":"object","properties":{"participant_id":{"type":"integer"},"role":{"type":"string"},"team":{"type":["object","null"]},"player":{"type":["object","null"]},"score":{"type":["string","null"]},"is_winner":{"type":["boolean","null"]}}}},"updated_at":{"type":["string","null"]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"batch_get_events","description":"Get multiple events by id in one call — for agents that already have a list of ids and want full detail for each without one call per event. Max 25 ids. Returns full detail for every id that exists plus a not_found list for any that don't (never billed). Use get_event for a single id, or list_events / query_events to discover ids first.","inputSchema":{"type":"object","properties":{"event_ids":{"type":"array","items":{"type":"integer"},"maxItems":25,"description":"Event ids to fetch (max 25); duplicates are billed once."},"include_odds":{"type":"boolean","default":false,"description":"Inline current odds scoped by bookmaker (default: pinnacle). +1 credit per event for a single book when available; +2 for bookmaker=all or a comma-separated list."},"include_intelligence":{"type":"boolean","default":false,"description":"Inline bet intelligence on each event (+1 credit per event when available)."},"bookmaker":{"type":"string","description":"Bookmaker for inlined odds and intelligence market prices. Defaults to pinnacle. Valid: pinnacle, fanduel, draftkings, betmgm, caesars, bet365, circa, hardrock, betonline, all."}},"required":["event_ids"]},"outputSchema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object"},"description":"Full event detail (same shape as get_event) for every found id."},"not_found":{"type":"array","items":{"type":"integer"},"description":"Requested event_ids that don't exist. Never billed."},"total":{"type":"integer"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"query_events","description":"Search events with a natural-language query instead of structured filters — e.g. 'live nfl games today' or 'college basketball this week'. Rule-based (not an LLM): recognizes sport (nfl/nba/mlb/nhl/tennis/soccer/ncaaf/ncaab + aliases like hockey, american football, college basketball), status (live/final/upcoming/…), dates (today/tomorrow, this week, next N days, YYYY-MM-DD ranges). Bare 'football' is ambiguous and left unrecognized. Response includes interpreted filters, equivalent REST call, and unrecognized_terms. Prefer list_events when you already know the structured filters you want.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Free text, e.g. 'live nfl games today'."},"limit":{"type":"integer","description":"Overrides any limit parsed from the query text. Max 100."}},"required":["query"]},"outputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The original natural-language query text."},"interpreted":{"type":"object","description":"The list_events-equivalent filters parsed from the query text (sport, status, date, from, to, limit)."},"unrecognized_terms":{"type":"array","items":{"type":"string"},"description":"Query words that didn't map to a known filter."},"equivalent_request":{"type":"string","description":"The literal GET /v1/events request this query was translated to."},"events":{"type":"array","items":{"type":"object"}},"total":{"type":"integer"},"next_after_id":{"type":["integer","null"]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_live_score","description":"Get a lightweight live score snapshot for an event: status, period, clock, per-participant score and period-by-period scores, and last-updated time. Cheaper and faster than get_event when you only need the score, not participants or venue. Raises a not-found error if event_id doesn't exist.","inputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Event id, from list_events, query_events, or search results."}},"required":["event_id"]},"outputSchema":{"type":"object","properties":{"event_id":{"type":"integer"},"status":{"type":"string"},"finished":{"type":"boolean"},"period":{"type":["string","null"]},"clock":{"type":["string","null"]},"scores":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string"},"name":{"type":"string"},"abbreviation":{"type":["string","null"]},"score":{"type":["string","null"]},"is_winner":{"type":["boolean","null"]},"period_scores":{"type":"array","items":{"type":"object"}}}}},"updated_at":{"type":["string","null"]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_odds","description":"Get current betting odds for an event: per-bookmaker lines and last-updated time. bookmaker defaults to pinnacle (1 credit). Use 'all' or a comma-separated list for multiple books (2 credits). Returns available:false with no charge if odds aren't posted for this event yet. Use get_odds_history for line movement over time.","inputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Event id, from list_events, query_events, or search results."},"bookmaker":{"type":"string","description":"Bookmaker slug. Defaults to pinnacle. Valid: pinnacle, fanduel, draftkings, betmgm, caesars, bet365, circa, hardrock, betonline, all, or a comma-separated list."}},"required":["event_id"]},"outputSchema":{"type":"object","properties":{"event_id":{"type":"integer"},"available":{"type":"boolean"},"bookmakers":{"type":"array","items":{"type":"object"}},"last_updated":{"type":["string","null"]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_odds_history","description":"Get line-movement history for an event: a list of past odds snapshots (movements), each with its own timestamp, up to limit entries. bookmaker defaults to pinnacle. Use get_odds instead if you only need the current line.","inputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Event id, from list_events, query_events, or search results."},"bookmaker":{"type":"string","description":"Bookmaker slug. Defaults to pinnacle. Valid: pinnacle, fanduel, draftkings, betmgm, caesars, bet365, circa, hardrock, betonline, all, or a comma-separated list."},"limit":{"type":"integer","default":50,"description":"Max line-movement entries to return. Default 50."}},"required":["event_id"]},"outputSchema":{"type":"object","properties":{"event_id":{"type":"integer"},"movements":{"type":"array","items":{"type":"object"},"description":"Odds snapshots over time; each entry carries its own timestamp."},"total":{"type":"integer"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_stats","description":"Get raw, deterministic team/player and match statistics for a soccer, MLB, tennis, NFL, NCAAF, NBA, NCAAB, or NHL event — no market/odds data (use get_odds for that) and no scoring, weighting, confidence, or narrative attached; use get_intelligence for Lumify's judgment layer. The payload shape is sport-specific — soccer/MLB/NFL/NCAAF/NBA/NCAAB/NHL use teams.home/away; tennis uses players.player_1/player_2 + match.scoreboard; never share field names across sports. Soccer: team strength (league-table PPG or FIFA rank), recent form, head-to-head history, rest days, home/away splits, and boxscore rates (shots/SoT for & against, possession, corners, cards, saves/save rate, plus Phase 1C offsides/tackles/interceptions/blocked_shots/assists — team assists is summed from ESPN's per-player goalAssists, since ESPN has no team-level assists stat) over explicit windows rates_l5/rates_season. Shot location is not on ESPN's team box — not exposed. MLB: season-to-date W/L record + run differential, recent form (runs scored/allowed), H2H, rest days, team batting/pitching rates (rates_l5/rates_season — AVG/OBP/SLG/OPS/ERA/WHIP/K9/BB9 plus RBI/TB/triples), starting pitcher's own season ERA/WHIP/K9/BB9 once the post-final box lineup lands (pregame probable SP stays on get_intelligence), and lineup from completed-game box scores. Tennis (main-draw singles only): Stage-1 FlashLive history (match context, rankings, set scoreboard, rest days, recent/surface form, tour lookback record, H2H) plus Stage-2 career_rates / career_surface from persisted Tennis API aggregates (serve/return, break points, match-surface W/L) — request path is DB-only. NFL Stage-1: season W/L + point differential, recent form (points scored/allowed), H2H, rest days, and team offense/defense rates (total/passing/rushing yards, attempts, turnovers, third_down_pct) from persisted ESPN team boxes — no per-player block on this endpoint (player game stats are persisted for a future player-props surface). NCAAF Stage-1: same football-native shape as NFL (season W/L + point differential, form, H2H, rest, offense/defense rates from ESPN college-football team boxes) — scoped to sport=ncaaf so rates never mix with NFL. NBA Stage-1: season W/L + point differential, recent form (points scored/allowed), H2H, rest days, and team box rates (rebounds/assists/steals/blocks/turnovers/fouls per game plus fg_pct/three_point_pct/free_throw_pct as ratio-of-sums over persisted made/attempt pairs) — no per-player block, same player-props deferral as NFL. NCAAB Stage-1: same basketball-native shape as NBA from ESPN mens-college-basketball team boxes — scoped to sport=ncaab. NHL Stage-1: season W/L + goal differential (OT/shootout losses count as losses), recent form (goals scored/allowed), H2H, rest days, and team box rates (shots_on_goal/hits/penalty_minutes/power_play_goals/giveaways/takeaways/blocked_shots per game) from the NHL Web API boxscore endpoint — no per-skater/goalie block, same player-props deferral as NFL/NBA. NFL/NCAAF/NBA/NCAAB preseason games are excluded from form/rates/record/H2H via lumify_events.season_type; NHL never ingests preseason games at all, so no filter is needed there. Form/record/rest/H2H count status final/complete only (walkovers excluded as unplayed; retirements count). Returns available:false with no charge if participants haven't resolved, or tennis draw_type is not exactly 'singles' (doubles and qualifying are out of scope, same as the tennis predictive stack).","inputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Event id, from list_events, query_events, or search results."}},"required":["event_id"]},"outputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Lumify event ID."},"available":{"type":"boolean","description":"False when participants haven't resolved, or tennis draw_type is not exactly 'singles' (doubles/qualifying out of scope); every other field is omitted and the call isn't billed."},"league_slug":{"type":["string","null"],"description":"League/tour slug, e.g. 'mls', 'mlb', 'nfl', 'atp', 'wta'."},"draw_type":{"type":["string","null"],"description":"Tennis only. Always 'singles' when available is true. Values other than 'singles' (including 'doubles' and 'qualifying') return available:false."},"profile":{"type":"string","description":"Soccer only. 'world_cup' or 'club'."},"neutral_site":{"type":["boolean","null"],"description":"Soccer only. Whether this fixture is at a neutral venue. Informational here; factored into home-advantage scoring on get_intelligence."},"windows":{"type":["object","null"],"description":"Explicit sample depths. Soccer: recent_form (5), rates_l5 (5), rates_season ('season'), head_to_head (10), sos (5). MLB/NFL/NCAAF/NBA/NCAAB/NHL: recent_form (5), rates_l5 (5), rates_season ('season'), head_to_head (10). Tennis: recent_form (10), surface_form (10), head_to_head (10), record_lookback_days (365), career_surface_years (3)."},"teams":{"type":["object","null"],"description":"Soccer/MLB/NFL/NCAAF/NBA/NCAAB/NHL only (home/away). Soccer: recent_form, team_strength, venue, rest_days, sos, lineup, rates_l5, rates_season. MLB: record, recent_form, rest_days, rates_l5/rates_season (incl. OBP/SLG/OPS/RBI/TB), starting_pitcher (post-box only), lineup. NFL/NCAAF Stage-1: record (points_for/against), recent_form (points_scored/allowed), rest_days, rates_l5/rates_season (total/passing/rushing yards, attempts, turnovers, third_down_pct) — no per-player block. NBA/NCAAB Stage-1: record (points_for/against), recent_form (points_scored/allowed), rest_days, rates_l5/rates_season (rebounds/assists/steals/blocks/turnovers/fouls, fg_pct/three_point_pct/free_throw_pct as ratio-of-sums) — no per-player block. NHL Stage-1: record (goals_for/against), recent_form (goals_scored/allowed), rest_days, rates_l5/rates_season (shots_on_goal/hits/penalty_minutes/power_play_goals/giveaways/takeaways/blocked_shots) — no per-skater/goalie block. Absent on tennis responses — use players instead."},"match":{"type":["object","null"],"description":"Tennis only. Match context: surface, competition_id/name, tier, round (ingested labels like 'Round of 16'/'Quarterfinal'/'Final', not 'R16'), court (not currently populated), status, result_type, scoreboard (sets_won + per-set games; tiebreak_score not currently populated)."},"players":{"type":["object","null"],"description":"Tennis only (player_1/player_2). Each side: player_id, name, country_code, ranking, ranking_points, rest_days, recent_form, surface_form, record (tour_lookback wins/losses), career_rates (Stage-2 serve/return percentages; null until ingest), career_surface (Stage-2 match-surface W/L over windows.career_surface_years; null when empty). History windows exclude walkovers (unplayed) and include retirements."},"head_to_head":{"type":["object","null"],"description":"Past meetings: {window, meetings, total}. Soccer: {home_goals, away_goals}. MLB: {home_runs, away_runs}. NFL/NCAAF/NBA/NCAAB: {home_points, away_points}. NHL: {home_goals, away_goals}. Tennis: {event_id, starts_at, surface, winner_role, sets_won} relative to this fixture's player_1/player_2 (walkovers excluded)."},"league_context":{"type":["object","null"],"description":"Soccer only. {avg_goals_per_team}: league-wide baseline goals/team/game, used by get_intelligence's attack/defense scoring. Null for fixed-baseline competitions."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_splits","description":"Get public betting splits (bets% and handle%) for an event: a consensus split plus a per-bookmaker breakdown (bookmakers[].bookmaker uses the same odds slugs as get_odds, e.g. draftkings — not upstream short keys like dk), with a captured_at timestamp. Available for MLB, NBA, NHL, and NFL. Not available for tennis, soccer, or NCAAF (upstream does not expose splits). Returns available:false with no charge if splits haven't been captured for this event yet or the sport is unsupported.","inputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Event id, from list_events, query_events, or search results."}},"required":["event_id"]},"outputSchema":{"type":"object","properties":{"event_id":{"type":"integer"},"available":{"type":"boolean"},"captured_at":{"type":["string","null"]},"consensus":{"type":["object","null"],"description":"Aggregate bets%/handle% across bookmakers."},"bookmakers":{"type":"array","items":{"type":"object"},"description":"Per-bookmaker splits. Each item has bookmaker (odds slug), name, moneyline, spread, total."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_intelligence","description":"Get AI bet intelligence for an event. Branch on sport/league and on the presence of probability (probability model) vs. confidence_score (points model). Probability customer surface (MLB, soccer/MLS, tennis): probability, interval, fair_price, market, edge, tier, plus Price fair/edges_by_book/best — framework plumbing (p_model, p_market, blend_w, sufficiency, phase, model_version, drivers, alignment) is omitted. edge/tier null and has_recommend false today — fair-price + line-shopping, not picks; price gap ≠ EV. Predictive MLB may also return a Search-backed match_overview + top-level rationale[] (context overlay, not a pick) generated on first request and reused after — distinct from bets[].rationale on points sports. Points model (NFL, NCAAF, unmigrated soccer): confidence scores, signals, bets[].rationale, narratives. Match-level tokens (OVER, UNDER, ML_DRAW) have null player_role/player_id/team_id/player_name. bookmaker defaults to pinnacle and is a no-op for probability-model sports. Returns available:false with no charge if intelligence hasn't been computed yet.","inputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Event id, from list_events, query_events, or search results."},"bookmaker":{"type":"string","description":"Bookmaker slug for market prices on recommended bets. Defaults to pinnacle. Valid: pinnacle, fanduel, draftkings, betmgm, caesars, bet365, circa, hardrock, betonline. No effect for probability-model sports (MLS soccer and MLB), which report the book their assessment was priced against."}},"required":["event_id"]},"outputSchema":{"type":"object","properties":{"event_id":{"type":"integer","description":"Lumify event ID this intelligence describes."},"available":{"type":"boolean","description":"False when no intelligence has been computed for this event yet — every other field is then null/empty and the request is not charged."},"odds_source":{"type":["string","null"],"description":"Bookmaker bets[].market prices were sourced from. For probability-model sports this is the book the assessment was priced against, not a bookmaker overlay; per-bet market.book is authoritative if they ever differ."},"sport":{"type":["string","null"],"description":"Sport slug for this event."},"league":{"type":["string","null"],"description":"League slug for this event, if any."},"players":{"type":"object","description":"Home/away (or p1/p2) participant identification, keyed by role: {role: {name, player_id, team_id}}."},"has_recommend":{"type":["boolean","null"],"description":"True when at least one bet meets the recommendation threshold; null when intelligence has not been computed. False while Edge is not published (current MLB/soccer/tennis Stage 1) — a recommendation requires a non-null tier derived from edge."},"match_overview":{"type":["string","null"],"description":"Natural-language matchup preview — form, context, what to watch. On predictive MLB may be a Search-backed context overlay (not a recommendation). Null when no narrative has been generated."},"rationale":{"type":["array","null"],"items":{"type":"string"},"description":"Event-level factual matchup chips (starting pitchers, injuries, form). Context overlay only — not a pick. Distinct from bets[].rationale on points-model sports. Predictive MLB may populate on first get_intelligence; later calls reuse the stored row."},"intelligence_updated_at":{"type":["string","null"],"description":"ISO-8601 UTC timestamp of the most recent change anywhere in this payload (max of per-bet computed_at). Use per-bet computed_at to reason about a specific bet."},"matchup":{"type":["object","null"],"description":"Legacy points-engine probable-starter context. Not returned on the MLB predictive customer surface — use get_stats for pitcher/lineup Data."},"bets":{"type":"array","items":{"type":"object","properties":{"bet_type":{"type":"string","description":"Canonical bet token, e.g. ML_HOME/ML_AWAY/ML_DRAW (soccer), ML_P1/ML_P2 (head-to-head sports), SPREAD_HOME/SPREAD_AWAY, OVER, UNDER."},"player_role":{"type":["string","null"],"description":"'home'/'away' or 'p1'/'p2'. Null for match-level tokens (OVER, UNDER, ML_DRAW)."},"player_id":{"type":["integer","null"],"description":"Set when this bet is about an individual player. Null for team bets and match-level tokens."},"team_id":{"type":["integer","null"],"description":"Set when this bet is about a team. Null for match-level tokens (OVER, UNDER, ML_DRAW) — a draw is not a bet on either team, so summing exposure by team_id never double-counts it."},"player_name":{"type":["string","null"],"description":"Display name of the player or team this bet is about. Null for match-level tokens. Duplicates players[player_role].name."},"market":{"type":["object","null"],"description":"Market quote: {price: American odds, line: handicap/total line or null for moneyline, book: bookmaker slug when known (always set for probability-model sports)}."},"computed_at":{"type":["string","null"],"description":"ISO-8601 UTC time this bet's numbers last materially changed — not when last checked. Rows are only rewritten when price, line, or probability moves beyond a tolerance, so an older value means 'unchanged since', not 'stale'. Differs between bets on one event because markets move independently."},"tier":{"type":["string","null"],"description":"Confidence tier: 'very_high', 'strong', 'moderate', or 'avoid'. Null whenever edge is null. Present on MLB customer surface and all other shapes."},"confidence_score":{"type":["number","null"],"description":"Points-engine score, 0-1, not a calibrated probability. Points-model sports only."},"coverage":{"type":["number","null"],"description":"Signal-coverage fraction, 0-1. Points-model sports only."},"signals":{"type":["object","null"],"description":"Per-signal point breakdown. Points-model sports only."},"validator":{"type":["object","null"],"description":"Qualitative-validator verdict: {stance, confidence, delta, validated_at}. Points-model sports only."},"narrative":{"type":["string","null"],"description":"Per-bet narrative sentence. Points-model sports only."},"rationale":{"type":"array","items":{"type":"string"},"description":"Per-bet signal-strength bullets. Points-model sports only. Distinct from top-level rationale (event-level context chips)."},"attribution":{"type":"array","items":{"type":"string"},"description":"Attribution keys backing rationale, same order. Points-model sports only."},"probability":{"type":["number","null"],"description":"Published probability for this outcome, 0-1. Outcomes of one market sum to 1. Customer surface for MLB, soccer, tennis."},"interval":{"type":["array","null"],"items":{"type":"number"},"description":"[lo, hi] band around probability — how much evidence backs the number, not a statistical confidence interval."},"p_model":{"type":["number","null"],"description":"Internal — omitted from customer payloads (MLB/soccer/tennis)."},"p_market":{"type":["number","null"],"description":"Internal — omitted from customer payloads (MLB/soccer/tennis). Use probability/fair_price."},"blend_w":{"type":["number","null"],"description":"Internal — omitted from customer payloads (MLB/soccer/tennis)."},"fair_price":{"type":["integer","null"],"description":"American-odds fair price implied by probability — the vig-free line. Compare to market.price for the book's margin on this side."},"edge":{"type":["number","null"],"description":"Expected profit per 1 unit staked at market.price. Null while no model-backed edge is published (Stage 1). Present on customer surface for recommend gating."},"sufficiency":{"type":["number","null"],"description":"Internal — omitted from customer payloads (MLB/soccer/tennis)."},"phase":{"type":["string","null"],"description":"Internal — omitted from customer payloads (MLB/soccer/tennis)."},"model_version":{"type":["string","null"],"description":"Internal — omitted from customer payloads (MLB/soccer/tennis)."},"drivers":{"type":"array","items":{"type":"object"},"description":"Internal — omitted from customer payloads (MLB/soccer/tennis)."},"alignment":{"type":["object","null"],"description":"Internal — omitted from customer payloads (MLB/soccer/tennis)."},"fair":{"type":["object","null"],"description":"Sharp-consensus fair: {probability, books, n_books, is_consensus}. MLB: Pinnacle+Circa; MLS/tennis: Pinnacle. Price-gap reference for edges_by_book/best — not EV."},"edges_by_book":{"type":["object","null"],"description":"Price gap versus fair.probability per soft book (fair.probability × decimal_odds − 1). Line-shopping only, NOT EV / NOT a recommend."},"best":{"type":["object","null"],"description":"Highest price-gap pick across edges_by_book: {book, price, edge, quote_age_seconds}. Price gap ≠ EV; Tier C informational line-shopping."}}}}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"list_teams","description":"List teams, paginated by id (after_id). Filter by sport, league, conference, division, country, active status, or name (q, partial match). Returns each team's id, slug, name, city, conference/division, and venue. Use get_team for full detail on one id once resolved here.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","description":"Sport slug, e.g. nfl, nba, soccer."},"league":{"type":"string","description":"League slug, e.g. nfl, mls."},"conference":{"type":"string","description":"Conference name, e.g. AFC, Eastern."},"division":{"type":"string","description":"Division name, e.g. AFC East."},"country":{"type":"string","description":"ISO country code, e.g. USA."},"active":{"type":"boolean","description":"Filter by active status."},"q":{"type":"string","description":"Team name search (partial match)."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Max teams to return per page."},"after_id":{"type":"integer","description":"Cursor: last team id from the previous page's next_after_id."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/$defs/Team"}},"has_more":{"type":"boolean"},"next_after_id":{"type":["integer","null"],"description":"Pass as after_id to fetch the next page; null on the last page."}},"$defs":{"Team":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"short_name":{"type":["string","null"]},"abbreviation":{"type":["string","null"]},"sport":{"type":"string"},"league":{"type":["string","null"]},"city":{"type":["string","null"]},"state":{"type":["string","null"]},"country_code":{"type":["string","null"]},"conference":{"type":["string","null"]},"division":{"type":["string","null"]},"venue":{"type":["object","null"]},"is_active":{"type":"boolean"}}}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"search_players","description":"Search players by name, sport, country, ranking, or active status, paginated by id (after_id). Returns each player's id, name, position, current team, and tennis ranking if applicable. Use get_player for full detail on one id, or get_player_events for a player's schedule/results.","inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"Name search (partial match)."},"sport":{"type":"string","description":"Sport slug, e.g. tennis, nba."},"country":{"type":"string","description":"ISO 3166-1 alpha-3 country code, e.g. USA."},"active":{"type":"boolean","description":"Filter by active status."},"ranked":{"type":"boolean","description":"If true, only players with a tennis ranking."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Max players to return per page."},"after_id":{"type":"integer","description":"Cursor: last player id from the previous page's next_after_id."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/$defs/Player"}},"has_more":{"type":"boolean"},"next_after_id":{"type":["integer","null"],"description":"Pass as after_id to fetch the next page; null on the last page."}},"$defs":{"Player":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"full_name":{"type":"string"},"sport":{"type":"string"},"country_code":{"type":["string","null"]},"birthdate":{"type":["string","null"],"description":"YYYY-MM-DD."},"position":{"type":["string","null"]},"current_team_id":{"type":["integer","null"]},"current_team_name":{"type":["string","null"]},"tennis_ranking":{"type":["integer","null"]},"is_active":{"type":"boolean"}}}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_team","description":"Get a single team profile with its home venue. Raises a not-found error if team_id doesn't exist. Resolve ids via list_teams.","inputSchema":{"type":"object","properties":{"team_id":{"type":"integer","description":"Team id, from list_teams."}},"required":["team_id"]},"outputSchema":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"abbreviation":{"type":["string","null"]},"sport":{"type":"string"},"league":{"type":["string","null"]},"city":{"type":["string","null"]},"conference":{"type":["string","null"]},"division":{"type":["string","null"]},"venue":{"type":["object","null"]},"is_active":{"type":"boolean"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_player","description":"Get a single player profile: name, sport, country, position/handedness, physical stats, current team, and tennis ranking if applicable. Raises a not-found error if player_id doesn't exist. Resolve ids via search_players.","inputSchema":{"type":"object","properties":{"player_id":{"type":"integer","description":"Player id, from search_players."}},"required":["player_id"]},"outputSchema":{"type":"object","properties":{"id":{"type":"integer"},"slug":{"type":"string"},"full_name":{"type":"string"},"sport":{"type":"string"},"country_code":{"type":["string","null"]},"birthdate":{"type":["string","null"]},"position":{"type":["string","null"]},"handedness":{"type":["string","null"]},"height_cm":{"type":["integer","null"]},"weight_kg":{"type":["number","null"]},"tennis_ranking":{"type":["integer","null"]},"current_team_id":{"type":["integer","null"]},"current_team_name":{"type":["string","null"]},"is_active":{"type":"boolean"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_player_events","description":"List a player's events (schedule/results), paginated by id (after_id). Defaults to ±30 days around today when no date filter is given. Resolve player_id via search_players first.","inputSchema":{"type":"object","properties":{"player_id":{"type":"integer","description":"Player id, from search_players."},"status":{"type":"string","enum":["scheduled","inprogress","final","postponed","cancelled","suspended","delayed","walkover"],"description":"Filter to events in this status."},"from":{"type":"string","description":"Start date YYYY-MM-DD."},"to":{"type":"string","description":"End date YYYY-MM-DD."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Max events to return per page."},"after_id":{"type":"integer","description":"Cursor: last event id from the previous page's next_after_id."}},"required":["player_id"]},"outputSchema":{"type":"object","properties":{"player_id":{"type":"integer"},"data":{"type":"array","items":{"type":"object"},"description":"Events in the same shape as list_events' EventSummary."},"has_more":{"type":"boolean"},"next_after_id":{"type":["integer","null"],"description":"Pass as after_id to fetch the next page; null on the last page."}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"list_seasons","description":"List seasons per sport/league. By default returns only currently active seasons; pass current_only=false to include historical seasons. Optionally filter by sport. Returns each season's id, year, phase, start/end dates, and whether it is_current. Use list_sports for just each sport's current season.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","description":"Filter by sport slug, e.g. nhl, nba, soccer."},"current_only":{"type":"boolean","default":true,"description":"Return only currently active seasons (default true). Pass false for historical seasons."}}},"outputSchema":{"type":"object","properties":{"seasons":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"year":{"type":["integer","null"]},"name":{"type":["string","null"]},"phase":{"type":["string","null"]},"start_date":{"type":["string","null"]},"end_date":{"type":["string","null"]},"is_current":{"type":"boolean"},"sport":{"type":"object"},"league":{"type":"object"}}}},"total":{"type":"integer"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"estimate_cost","description":"Estimate the credit cost of one or more planned tool calls before making them — no credits are spent. Costs are data-dependent (e.g. odds/intelligence/splits not yet ingested for an event are free, and batch_get_events ids that don't exist cost nothing), so this returns a [min_credits, max_credits] range per call rather than a single number. Pass the exact tool name and arguments you're considering, e.g. {\"tool\": \"get_event\", \"arguments\": {\"event_id\": 123, \"include_odds\": true}}.","inputSchema":{"type":"object","properties":{"calls":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","properties":{"tool":{"type":"string","description":"Tool name to estimate, e.g. get_event, batch_get_events, get_odds."},"arguments":{"type":"object","description":"Same arguments you'd pass to that tool."}},"required":["tool"]}}},"required":["calls"]},"outputSchema":{"type":"object","properties":{"estimates":{"type":"array","items":{"type":"object","properties":{"tool":{"type":"string"},"min_credits":{"type":"integer"},"max_credits":{"type":"integer"},"note":{"type":["string","null"]}}}},"total_min_credits":{"type":"integer"},"total_max_credits":{"type":"integer"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-06-18","x-ratelimit-limit":"20","x-ratelimit-remaining":"8","x-ratelimit-reset":"1787026434"}}},"prompts_list":{"status":"ok","latency_ms":94.49,"details":{"url":"https://lumify.ai/mcp","payload":{"jsonrpc":"2.0","id":3,"result":{"prompts":[{"name":"todays_games","title":"Today's games","description":"Summarize today's games (optionally for one sport) with live scores.","arguments":[{"name":"sport","description":"Optional sport slug, e.g. nfl, mlb, nba, soccer.","required":false}]},{"name":"event_bet_brief","title":"Event bet brief","description":"Build an explainable betting brief for one event: odds, confidence, rationale, line moves, and public splits.","arguments":[{"name":"event_id","description":"Event id (from list_events / query_events).","required":true}]},{"name":"line_watch","title":"Line watch","description":"Report line movement and where the public money is for one event.","arguments":[{"name":"event_id","description":"Event id (from list_events / query_events).","required":true}]}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-06-18","x-ratelimit-limit":"20","x-ratelimit-remaining":"7","x-ratelimit-reset":"1787026434"}}},"prompt_get":{"status":"ok","latency_ms":96.38,"details":{"url":"https://lumify.ai/mcp","payload":{"jsonrpc":"2.0","id":4,"result":{"description":"Summarize today's games (optionally for one sport) with live scores.","messages":[{"role":"user","content":{"type":"text","text":"List today's games with their live scores. Call list_events with date set to today's UTC date (YYYY-MM-DD) and include_scores=true. Group the results by status (in-progress, scheduled, final) and, for in-progress games, show the current score, period, and clock."}}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-06-18","x-ratelimit-limit":"20","x-ratelimit-remaining":"6","x-ratelimit-reset":"1787026434"},"prompt_name":"todays_games","prompt_arguments":[{"name":"sport","description":"Optional sport slug, e.g. nfl, mlb, nba, soccer.","required":false}]}},"resources_list":{"status":"ok","latency_ms":92.95,"details":{"url":"https://lumify.ai/mcp","payload":{"jsonrpc":"2.0","id":5,"result":{"resources":[{"uri":"lumify://sports","name":"sports_catalog","title":"Sports & leagues catalog","description":"Supported sports with their leagues and current season (JSON). The 'what can I query' entrypoint — resolve sport/league slugs and season ids here before calling list_events, list_teams, or search_players.","mimeType":"application/json"},{"uri":"lumify://docs/quickstart","name":"quickstart","title":"Quickstart & authentication","description":"Endpoint, zero-signup instant-key authentication, the full tool map, and the credit model — everything needed to make a first call.","mimeType":"text/markdown"}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-06-18","x-ratelimit-limit":"20","x-ratelimit-remaining":"5","x-ratelimit-reset":"1787026434"}}},"resource_read":{"status":"error","latency_ms":100.85,"details":{"url":"https://lumify.ai/mcp","payload":{"jsonrpc":"2.0","id":6,"error":{"code":-32001,"message":"Unauthorized: provide a valid Lumify API key as a Bearer token."}},"http_status":200,"headers":{"content-type":"application/json","mcp-protocol-version":"2025-06-18","x-ratelimit-limit":"20","x-ratelimit-remaining":"4","x-ratelimit-reset":"1787026434"},"resource_uri":"lumify://sports"}},"determinism_probe":{"status":"ok","latency_ms":107.66,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"e0a328adb922ba7aa8b2438db0fb42ff00a8aa27da0ede14d64ff21841224e08","errors":[]}},"instruction_tool_reference_probe":{"status":"warning","latency_ms":null,"details":{"referenced_tools":["tools"],"missing_tools":["tools"],"observed_tool_count":18}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"warning","latency_ms":109.92,"details":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":true,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":400,"bad_protocol_payload":{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"Unsupported MCP-Protocol-Version: 1999-99-99"}},"bad_protocol_headers":{"content-type":"application/json","x-ratelimit-limit":"20","x-ratelimit-remaining":"1","x-ratelimit-reset":"1787026435"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id"]}},"utility_coverage_probe":{"status":"missing","latency_ms":95.51,"details":{"completions":{"advertised":false,"sample_target":{"type":"prompt","name":"todays_games","argument_name":"sport"},"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["prompts","resources","tools"]}},"advanced_capabilities_probe":{"status":"ok","latency_ms":null,"details":{"capabilities":{"prompts":true,"resources":true,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":true,"resource_links":true},"enabled_count":4,"enabled":["prompts","resource_links","resources","structured_outputs"],"initialize_capability_keys":["prompts","resources","tools"]}},"tool_snapshot_probe":{"status":"ok","latency_ms":null,"details":{"current_tool_count":18,"previous_tool_count":18,"similarity":1.0,"added":[],"removed":[],"changed_outputs":[]}},"connector_replay_probe":{"status":"ok","latency_ms":null,"details":{"backward_compatible":true,"would_break_after_refresh":false,"added_tools":[],"removed_tools":[],"required_arg_breaks":[],"output_breaks":[],"additive_output_changes":[]}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"missing","latency_ms":null,"details":{"risk_hits":[],"safe_hits":[],"oauth_supported":false,"prompt_available":true}},"action_safety_probe":{"status":"ok","latency_ms":null,"details":{"summary":{"tool_count":18,"high_risk_tools":0,"destructive_tools":0,"exec_tools":0,"egress_tools":17,"secret_tools":0,"bulk_access_tools":0,"declared_non_read_only_tools":0,"annotation_conflict_tools":0,"risk_distribution":{"low":1,"medium":17,"high":0,"critical":0},"capability_distribution":{"read":18,"network":17},"has_mutating_capability":false,"has_non_read_capability":false},"auth_present":false,"safeguard_count":7,"confirmation_signals":[],"reason":null}},"official_registry_probe":{"status":"ok","latency_ms":null,"details":{"registry_source":"official_registry","registry_identifier":"ai.lumify/sports-intelligence","direct_match":true,"official_peer_count":1}},"provenance_divergence_probe":{"status":"not_assessed","latency_ms":null,"details":{"direct_official_match":true,"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":2,"compared_fields":["title","version","homepage","repository"],"readable_sources":["registry"],"comparable_field_count":0}},"schema_divergence_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_server_card_tools","compared_tool_count":0,"compared_dimensions":["server_name","server_version","declared_vs_observed_auth","tool_membership","parameter_names","required_parameters","parameter_types","output_schema_presence"],"server_name_mismatch":false,"card_server_name":null,"live_server_name":"lumify-mcp","server_version_mismatch":false,"card_server_version":null,"live_server_version":"1.0.1","auth_scheme_mismatch":false}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":18,"high_risk_tools":0,"blockers":["protocol_version","session_resume","step_up_auth","transport_compliance","request_association","server_card"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":true,"protocol_version":false,"session_resume":false,"step_up_auth":false,"transport_compliance":false,"connector_replay":true,"request_association":false,"action_safety":true,"server_card":false,"tool_surface":true,"auth_flow":true}}}}},"active_alerts":[{"code":"instruction_tool_reference_mismatch","severity":"low","title":"Server instructions name unavailable tools","message":"Initialize instructions reference tools not present in tools/list: tools","addressee":"publisher"}],"maintainer_analytics":{},"public_server_reputation":{},"maintainer_response_quality":{},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{},"tool_security_inventory":[],"transport_compliance":{},"utility_coverage":{},"write_action_governance":{},"provenance_divergence":{},"alias_consolidation":{},"alert_routing":{},"authenticated_validation":{},"hosted_runtime":{},"action_controls_diff":null,"benchmark_tasks":[],"latest_capability_counts":{},"point_loss_breakdown":[],"verdict_traces":{},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_75d03bfea0331aed","generated_at":"2026-08-18T08:50:29.744549+00:00","trust_evaluated_at":"2026-08-18T08:50:29.744549+00:00","evidence_revision":"e019e7a69c57b1a0ffb6c83a","source":"current_snapshot","server":"ai.lumify/sports-intelligence","last_validated_at":"2026-08-18T04:12:55.240701+00:00","validation_age_hours":4.63,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-08-18T04:12:55.240701+00:00","age_hours":4.63,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":66.67,"raw_score":66.67,"confidence_score":100.0,"confidence_weighted_score":66.7,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":66.67,"display_score":66.67,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"no blocking gaps found in current evidence","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":1},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":100.0,"label":"high","validation_age_hours":4.63,"live_check_count":17,"basis":{"evidence_bearing_validations":20,"affirmative_live_check_count":17,"validation_age_hours":4.63,"freshness_threshold_hours":24}},"active_alerts":[{"code":"instruction_tool_reference_mismatch","severity":"low","title":"Server instructions name unavailable tools"}],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":1,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-08-18T08:50:29.744549+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_75d03bfea0331aed","generated_at":"2026-08-18T08:50:29.744549+00:00","trust_evaluated_at":"2026-08-18T08:50:29.744549+00:00","evidence_revision":"e019e7a69c57b1a0ffb6c83a","source":"current_snapshot","server":"ai.lumify/sports-intelligence","last_validated_at":"2026-08-18T04:12:55.240701+00:00","validation_age_hours":4.63,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-08-18T04:12:55.240701+00:00","age_hours":4.63,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":66.67,"raw_score":66.67,"confidence_score":100.0,"confidence_weighted_score":66.7,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":66.67,"display_score":66.67,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Allow with approval","why":"no blocking gaps found in current evidence","next_action":"export policy, require approval for writes, add authenticated validation","reason_count":1},"production_readiness_class":{"code":"safe_for_evaluation","label":"Safe for evaluation","reason":"The server is suitable for evaluation, but remaining gaps should be resolved before broad production use."},"evidence_confidence":{"score":100.0,"label":"high","validation_age_hours":4.63,"live_check_count":17,"basis":{"evidence_bearing_validations":20,"affirmative_live_check_count":17,"validation_age_hours":4.63,"freshness_threshold_hours":24}},"active_alerts":[{"code":"instruction_tool_reference_mismatch","severity":"low","title":"Server instructions name unavailable tools"}],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":1,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-08-18T08:50:29.744549+00:00"}},"agent_commerce":{},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"trust_evaluated_at":"2026-08-18T08:50:29.744549+00:00","evidence_revision":"e019e7a69c57b1a0ffb6c83a","active_alert_summary":{"critical":0,"high":0,"medium":0,"low":1,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-08-18T08:50:29.744549+00:00"},"owner_opted_out":false,"observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"},"snapshot_id":"trustsnap_75d03bfea0331aed"}],"rows":[{"label":"Snapshot ID","values":["trustsnap_75d03bfea0331aed"]},{"label":"Status","values":["healthy"]},{"label":"Score","values":[66.67]},{"label":"Production readiness","values":["Safe for evaluation"]},{"label":"Production trust decision","values":["Allow with approval"]},{"label":"Recommended policy","values":["Block"]},{"label":"Observed Attention","values":["No observed attention"]},{"label":"Evidence confidence","values":[100.0]},{"label":"Freshness","values":["n/a"]},{"label":"Latency","values":["n/a"]},{"label":"Spec recency","values":[2.0]},{"label":"Session resume","values":[3.0]},{"label":"Step-up auth","values":[0.0]},{"label":"Transport compliance","values":[2.0]},{"label":"Utility coverage","values":[0.0]},{"label":"Publishability","values":[2.0]},{"label":"Connector replay","values":[4.0]},{"label":"Request association","values":[0.0]},{"label":"Action safety","values":[3.0]},{"label":"Registry presence","values":[4.0]},{"label":"Provenance divergence","values":[null]},{"label":"Client compatibility: ChatGPT","values":["unknown"]},{"label":"Client compatibility: Claude","values":["unknown"]},{"label":"Write-action publishing","values":["unknown"]},{"label":"Snapshot churn risk","values":["unknown"]},{"label":"Transport","values":["streamable-http"]},{"label":"Auth","values":["Unauthenticated / none"]},{"label":"Tools","values":[18]},{"label":"Prompts","values":[0]},{"label":"Resources","values":[0]},{"label":"OAuth","values":[false]},{"label":"DCR","values":[false]},{"label":"Taxonomy","values":[""]},{"label":"Recommended for","values":["none"]},{"label":"Top alerts","values":["Server instructions name unavailable tools"]}],"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"cache_note":"Compact compare fallback response; deep compare evidence is deferred to protect web capacity.","trust_evaluated_at":"2026-08-18T08:50:29.744549+00:00","materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-08-18T08:50:29.793289+00:00"}}