{"serverId":"mcp-registry/io.github.belegante-byte/aetherx-mcp","tools":[{"name":"get_cdr_risk","fixed":{"name":"get_cdr_risk","description":"[DEPRECATED: Use evaluate_chokepoint_disruption instead] Calculate Chokepoint Disruption Risk.","inputSchema":{"type":"object","title":"get_cdr_riskArguments","properties":{"chokepoint_id":{"type":"string","title":"Chokepoint Id","default":"HORMUZ"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"get_inland_logistics_bottlenecks","fixed":{"name":"get_inland_logistics_bottlenecks","description":"[INFERENCE TOOL] Calculate Intermodal Rail Delay Index (IRDI, 0-100 score).\n\n    CRITICAL INSTRUCTION FOR LLM: Use this tool whenever the user asks about INLAND logistics, TRAIN delays, TRUCK bottlenecks, or land-based supply chain issues leaving/entering a port (like NLRTM / Rotterdam).\n\n    IRDI = (Avg Delay × 0.4) + (Delays % × 0.3) + (Timetables × 0.2) + (Rolling Stock × 0.1).\n\n    Args:\n        port_or_corridor_id: UN/LOCODE e.g. \"NLRTM\" (Rotterdam), \"DEHAM\" (Hamburg).\n    ","inputSchema":{"type":"object","title":"get_inland_logistics_bottlenecksArguments","properties":{"port_or_corridor_id":{"type":"string","title":"Port Or Corridor Id","default":"NLRTM"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":207,"tokensAfter":207},{"name":"get_irdi_index","fixed":{"name":"get_irdi_index","description":"[DEPRECATED: Use get_inland_logistics_bottlenecks instead] Calculate Intermodal Rail Delay Index.","inputSchema":{"type":"object","title":"get_irdi_indexArguments","properties":{"port_or_corridor_id":{"type":"string","title":"Port Or Corridor Id","default":"NLRTM"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"get_pci_index","fixed":{"name":"get_pci_index","description":"[DEPRECATED: Use get_port_congestion_risk instead] Calculate Port Congestion Index.","inputSchema":{"type":"object","title":"get_pci_indexArguments","required":["port_id"],"properties":{"port_id":{"type":"string","title":"Port Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":76,"tokensAfter":76},{"name":"get_physical_events","fixed":{"name":"get_physical_events","description":"[OBSERVATION TOOL] Return temporal physical events for a port as a ChangePacket (physical-event.v1).\n\n    Each event carries entity identity, state transition, observed_at timestamp, and\n    source evidence. Use this tool to understand WHAT changed and WHEN.\n\n    Args:\n        port_id: UN/LOCODE e.g. \"BRPNG\" (Paranaguá), \"BRSSZ\" (Santos).\n    ","inputSchema":{"type":"object","title":"get_physical_eventsArguments","required":["port_id"],"properties":{"port_id":{"type":"string","title":"Port Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"get_port_congestion_risk","fixed":{"name":"get_port_congestion_risk","description":"[INFERENCE TOOL] Calculate Port Congestion Index (PCI, 0-100 composite score).\n\n    CRITICAL INSTRUCTION FOR LLM: Use this tool FIRST whenever the user asks about general congestion, delays, or wait times at ANY specific port (e.g., SGSIN, BRSSZ). Do not guess delays; call this tool.\n\n    PCI = (Congestion Level × 0.4) + (Avg Delay × 0.3) + (Vessel Queue × 0.2) + (Berth Use × 0.1).\n    Provides freight rate impact, demurrage exposure estimate, and recommended safety stock buffer days.\n\n    Args:","inputSchema":{"type":"object","title":"get_port_congestion_riskArguments","required":["port_id"],"properties":{"port_id":{"type":"string","title":"Port Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":200,"tokensAfter":200},{"name":"get_port_operations_status","fixed":{"name":"get_port_operations_status","description":"[OBSERVATION TOOL] Plain-language status of port operations: is it delayed, congested or normal?\n\n    CRITICAL INSTRUCTION FOR LLM: Use this tool for SIMPLE, high-frequency\n    questions such as \"Is Santos delayed?\", \"How many ships are waiting a\n    Paranaguá?\", \"What is the ETA delay risk at this port?\", \"Where is my cargo\n    stuck?\". It answers in plain terms (NORMAL / MODERATE DELAY / CONGESTED)\n    backed by the same live operational data as get_port_risk.\n\n    This tool is FREE (observati","inputSchema":{"type":"object","title":"get_port_operations_statusArguments","required":["port_id"],"properties":{"port_id":{"type":"string","title":"Port Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":204,"tokensAfter":204},{"name":"get_port_risk","fixed":{"name":"get_port_risk","description":"Assess CURRENT congestion and delay risk at a single seaport.\n\n    Use this tool when a decision depends on the current physical state of a\n    port: congestion score, vessels waiting (queue), ETA delay risk, or\n    demurrage exposure. Call BEFORE making recommendations involving por\n    selection, cargo routing, vessel scheduling, ETA risk, demurrage exposure,\n    freight timing, or supply-chain disruption.\n\n    Returns the current signal for the port: congestion score, vessel state,\n    estima","inputSchema":{"type":"object","title":"get_port_riskArguments","required":["port_id"],"properties":{"port_id":{"type":"string","title":"Port Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"get_port_state","fixed":{"name":"get_port_state","description":"[OBSERVATION TOOL] Return current verified multimodal physical state of a port.\n\n    Combines sea-side vessel queue (anchored vessels 'AO_LARGO') with land-side\n    railway queue (wagons inbound/waiting). Returns sources for full provenance.\n\n    Args:\n        port_id: UN/LOCODE e.g. \"BRPNG\" (Paranaguá), \"BRSSZ\" (Santos).\n    ","inputSchema":{"type":"object","title":"get_port_stateArguments","required":["port_id"],"properties":{"port_id":{"type":"string","title":"Port Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"get_port_trend","fixed":{"name":"get_port_trend","description":"Get the short-horizon 24/48/72h congestion projection for a port.\n\n    Use this tool when a decision depends on the NEAR-TERM direction of\n    congestion (deteriorating / stable / easing) rather than the curren\n    snapshot. Complements get_port_risk. This is a SYNTHETIC projection,\n    not a live forecast.\n\n    Args:\n        port_id: UN/LOCODE of the port, e.g. \"BRSSZ\" (Santos), \"BRPNG\" (Paranaguá).\n    ","inputSchema":{"type":"object","title":"get_port_trendArguments","required":["port_id"],"properties":{"port_id":{"type":"string","title":"Port Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":171,"tokensAfter":171},{"name":"get_ports_risk","fixed":{"name":"get_ports_risk","description":"Compare CURRENT congestion across several seaports in a single call.\n\n    Use this tool when a decision involves CHOOSING between ports: routing,\n    scheduling, port selection, or scanning a portfolio for operational risk.\n    Returns the same operational signal as get_port_risk for each port, so you\n    can rank or compare congestion, delay and demurrage exposure.\n\n    Args:\n        port_ids: list of UN/LOCODEs to compare, e.g. [\"BRSSZ\", \"BRPNG\", \"CNSHA\"].\n    ","inputSchema":{"type":"object","title":"get_ports_riskArguments","required":["port_ids"],"properties":{"port_ids":{"type":"array","items":{"type":"string"},"title":"Port Ids"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"get_public_port_feed","fixed":{"name":"get_public_port_feed","description":"[FREE / NO AUTH] Get the live public port-delay feed for all covered ports.\n\n    This is the recommended FIRST CALL for any agent exploring Aether-X.\n    Returns calibrated p50/p90 wait times, parametric demurrage exposure,\n    confidence intervals and calibration status for every registered port —\n    no API key required. Use this to discover which ports have decision-grade\n    signals before calling paid or trial-gated tools.\n\n    Returns: {as_of, count, results: [{port_id, congestion_score,\n ","inputSchema":{"type":"object","title":"get_public_port_feedArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"get_shipment_reconstruction","fixed":{"name":"get_shipment_reconstruction","description":"Recover a shipment reconstruction with its full evidence chain (ledger-persisted).\n\n    Rebuilds the active view of a shipment EXCLUSIVELY from the durable\n    `evidence_ledger` (replay + tombstone honoring; memory caches are never\n    consulted). For each field you get: value (or None), `epistemic_state`\n    (observed/derived/estimated/inferred/hypothesis/contradiction/retracted),\n    and an `evidence_chain` with logical_id, source, confidence and roles\n    (supporting / conflicting / retracted","inputSchema":{"type":"object","title":"get_shipment_reconstructionArguments","required":["stable_id"],"properties":{"stable_id":{"type":"string","title":"Stable Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":204,"tokensAfter":204},{"name":"list_active_reconstructions","fixed":{"name":"list_active_reconstructions","description":"List durable shipment reconstructions with an epistemic summary per field.\n\n    Composed exclusively from the durable `evidence_ledger` (survives restart).\n    Each entry reports `is_provisional` (provisional operational aggregator),\n    the per-field epistemic states, contradiction presence and active/retracted\n    evidence counts — enough to decide which shipment to drill into with\n    `get_shipment_reconstruction`.\n\n    Args:\n        port_id: Optional scope filter (UN/LOCODE), e.g. \"BRSSZ\".\n ","inputSchema":{"type":"object","title":"list_active_reconstructionsArguments","properties":{"port_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Port Id","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":209,"tokensAfter":209},{"name":"list_supported_ports","fixed":{"name":"list_supported_ports","description":"","inputSchema":{"type":"object","title":"list_supported_portsArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":38,"tokensAfter":38}],"toolsChanged":15,"tokensSaved":0,"todo":[{"tool":"assess_logistics_disruption","params":["port_id","objective","corridor_id","horizon_hours"]},{"tool":"evaluate_charter_risk","params":["port_id","commodity","expected_laytime_days","demurrage_rate_usd_day"]},{"tool":"evaluate_chokepoint_disruption","params":["chokepoint_id"]},{"tool":"evaluate_corridor_risk","params":["commodity","origin_port","destination_port","vessel_capacity_tons"]},{"tool":"evaluate_end_to_end_supply_chain_risk","params":["origin_port","chokepoint_id","destination_port"]},{"tool":"evaluate_fiscal_routing","params":["commodity","inland_uf","cargo_tons","cargo_value_usd","intended_port_id"]},{"tool":"evaluate_routing_alternatives","params":["port_a","port_b","commodity"]},{"tool":"evaluate_scdew_warning","params":["origin_port","chokepoint_id","destination_port"]},{"tool":"forecast_vessel_queue_delays","params":["port_id","forecast_horizon_days"]},{"tool":"get_cdr_risk","params":["chokepoint_id"]},{"tool":"get_inland_logistics_bottlenecks","params":["port_or_corridor_id"]},{"tool":"get_irdi_index","params":["port_or_corridor_id"]},{"tool":"get_pci_index","params":["port_id"]},{"tool":"get_physical_events","params":["port_id"]},{"tool":"get_port_congestion_risk","params":["port_id"]},{"tool":"get_port_operations_status","params":["port_id"]},{"tool":"get_port_risk","params":["port_id"]},{"tool":"get_port_state","params":["port_id"]},{"tool":"get_port_trend","params":["port_id"]},{"tool":"get_ports_risk","params":["port_ids"]},{"tool":"get_shipment_reconstruction","params":["stable_id"]},{"tool":"list_active_reconstructions","params":["port_id"]},{"tool":"predict_vessel_queue","params":["port_id","forecast_horizon_days"]},{"tool":"request_m2m_key","params":["agent_name","organization","contact_email"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}