{
  "name": "APIbase \u2014 The API Hub for AI Agents",
  "description": "Unified MCP gateway to 618 tools. Dual-rail: x402 + MPP.",
  "version": "2.1.0",
  "tools": [
    {
      "name": "weather.conditions.current",
      "description": "Get current weather conditions for a location",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "City name, coordinates (lat,lon), or zip code"
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "Temperature units system"
          }
        },
        "required": [
          "location"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.conditions.forecast",
      "description": "Get weather forecast for a location",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "City name, coordinates (lat,lon), or zip code"
          },
          "type": {
            "type": "string",
            "enum": [
              "hourly",
              "daily",
              "both"
            ],
            "description": "Forecast granularity: hourly, daily, or both"
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "Temperature units system"
          }
        },
        "required": [
          "location"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.alerts.get",
      "description": "Get active weather alerts for a location",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "City name, coordinates (lat,lon), or zip code"
          }
        },
        "required": [
          "location"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.conditions.history",
      "description": "Get historical weather data for a location and date",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "City name, coordinates (lat,lon), or zip code"
          },
          "date": {
            "type": "string",
            "description": "Historical date in YYYY-MM-DD format"
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "Temperature units system"
          }
        },
        "required": [
          "location",
          "date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.air.quality",
      "description": "Get air quality index for a location",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "City name, coordinates (lat,lon), or zip code"
          },
          "include_forecast": {
            "type": "boolean",
            "description": "Include air quality forecast for next 24h"
          }
        },
        "required": [
          "location"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.location.geocode",
      "description": "Geocode a location query to coordinates",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Location name or coordinates to geocode"
          },
          "type": {
            "type": "string",
            "enum": [
              "forward",
              "reverse"
            ],
            "description": "Geocoding direction: forward (name to coords) or reverse (coords to name)"
          },
          "limit": {
            "type": "integer",
            "maximum": 5,
            "description": "Max number of results (1-5)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.conditions.compare",
      "description": "Compare weather across multiple locations",
      "inputSchema": {
        "type": "object",
        "properties": {
          "locations": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "City name or coordinates"
            },
            "description": "List of 2-5 locations to compare",
            "minItems": 2,
            "maxItems": 5
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "Temperature units system"
          }
        },
        "required": [
          "locations"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.price.current",
      "description": "Get current prices for cryptocurrencies",
      "inputSchema": {
        "type": "object",
        "properties": {
          "coins": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "CoinGecko coin ID (e.g. bitcoin, ethereum)"
            },
            "description": "List of coin IDs to get prices for",
            "maxItems": 50
          },
          "vs_currencies": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Currency code (e.g. usd, eur, btc)"
            },
            "description": "Target currencies for price conversion"
          },
          "include_24h_change": {
            "type": "boolean",
            "description": "Include 24-hour price change percentage"
          },
          "include_market_cap": {
            "type": "boolean",
            "description": "Include market capitalization"
          },
          "include_volume": {
            "type": "boolean",
            "description": "Include 24-hour trading volume"
          }
        },
        "required": [
          "coins"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.market.overview",
      "description": "Get cryptocurrency market data by category",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "defi",
              "layer-1",
              "layer-2",
              "gaming",
              "ai-big-data",
              "meme-token",
              "stablecoins",
              "nft",
              "exchange-based-tokens",
              "real-world-assets"
            ],
            "description": "Filter by market category"
          },
          "sort_by": {
            "type": "string",
            "enum": [
              "market_cap_desc",
              "market_cap_asc",
              "volume_desc",
              "price_desc",
              "price_change_24h_desc"
            ],
            "description": "Sort order for results"
          },
          "limit": {
            "type": "integer",
            "maximum": 250,
            "description": "Max number of results (1-250)"
          },
          "include_sparkline": {
            "type": "boolean",
            "description": "Include 7-day sparkline price data"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.coin.detail",
      "description": "Get detailed information about a cryptocurrency",
      "inputSchema": {
        "type": "object",
        "properties": {
          "coin_id": {
            "type": "string",
            "description": "CoinGecko coin ID (e.g. bitcoin, ethereum)"
          },
          "include_description": {
            "type": "boolean",
            "description": "Include coin description text"
          },
          "include_developer": {
            "type": "boolean",
            "description": "Include developer/GitHub stats"
          },
          "include_community": {
            "type": "boolean",
            "description": "Include community/social stats"
          }
        },
        "required": [
          "coin_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.price.history",
      "description": "Get price history for a cryptocurrency",
      "inputSchema": {
        "type": "object",
        "properties": {
          "coin_id": {
            "type": "string",
            "description": "CoinGecko coin ID (e.g. bitcoin, ethereum)"
          },
          "days": {
            "type": "integer",
            "maximum": 365,
            "description": "Number of days of history (1-365)"
          },
          "interval": {
            "type": "string",
            "enum": [
              "5m",
              "hourly",
              "daily"
            ],
            "description": "Data point interval for price history (5m, hourly, or daily)"
          },
          "format": {
            "type": "string",
            "enum": [
              "timeseries",
              "ohlcv"
            ],
            "description": "Response format: timeseries (price points) or ohlcv (candlestick data)"
          }
        },
        "required": [
          "coin_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.trending.get",
      "description": "Get trending cryptocurrencies",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_nfts": {
            "type": "boolean",
            "description": "Include trending NFT collections"
          },
          "include_categories": {
            "type": "boolean",
            "description": "Include trending categories"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.global.stats",
      "description": "Get global cryptocurrency market statistics",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_defi": {
            "type": "boolean",
            "description": "Include DeFi-specific global stats"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.dex.pools",
      "description": "Get DEX liquidity pool data",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for pool name or token"
          },
          "network": {
            "type": "string",
            "enum": [
              "ethereum",
              "bsc",
              "polygon",
              "arbitrum",
              "solana",
              "base",
              "avalanche",
              "optimism"
            ],
            "description": "Blockchain network to query (e.g. ethereum, bsc, polygon, solana)"
          },
          "sort_by": {
            "type": "string",
            "enum": [
              "volume_24h",
              "liquidity",
              "price_change_24h",
              "transactions_24h"
            ],
            "description": "Sort order for pool results"
          },
          "limit": {
            "type": "integer",
            "maximum": 50,
            "description": "Max number of results (1-50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.token.lookup",
      "description": "Get token info by contract address",
      "inputSchema": {
        "type": "object",
        "properties": {
          "contract_address": {
            "type": "string",
            "description": "Token contract address (e.g. 0x...)"
          },
          "network": {
            "type": "string",
            "enum": [
              "ethereum",
              "bsc",
              "polygon",
              "arbitrum",
              "solana",
              "base",
              "avalanche",
              "optimism"
            ],
            "description": "Blockchain network to query (e.g. ethereum, bsc, polygon, solana)"
          }
        },
        "required": [
          "contract_address"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crypto.coin.search",
      "description": "Search for cryptocurrencies by name or symbol",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for coin name, symbol, or ID"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.market.search",
      "description": "Search prediction markets on Polymarket",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for prediction markets"
          },
          "category": {
            "type": "string",
            "enum": [
              "politics",
              "crypto",
              "sports",
              "finance",
              "science",
              "culture",
              "geopolitics",
              "iran",
              "economics"
            ],
            "description": "Filter by market category"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "resolved",
              "all"
            ],
            "description": "Filter by market status"
          },
          "sort_by": {
            "type": "string",
            "enum": [
              "volume",
              "newest",
              "ending_soon",
              "probability_high",
              "probability_low"
            ],
            "description": "Sort order for results"
          },
          "limit": {
            "type": "integer",
            "maximum": 100,
            "description": "Max number of results (1-100)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.market.detail",
      "description": "Get detailed info about a prediction market",
      "inputSchema": {
        "type": "object",
        "properties": {
          "market_id": {
            "type": "string",
            "description": "Polymarket condition ID or slug"
          },
          "include_orderbook": {
            "type": "boolean",
            "description": "Include current order book snapshot"
          },
          "include_history": {
            "type": "boolean",
            "description": "Include recent price history"
          }
        },
        "required": [
          "market_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.market.prices",
      "description": "Get midpoint price for a prediction market token",
      "inputSchema": {
        "type": "object",
        "properties": {
          "token_id": {
            "type": "string",
            "description": "Polymarket CLOB token ID"
          }
        },
        "required": [
          "token_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.market.history",
      "description": "Get price history for a prediction market",
      "inputSchema": {
        "type": "object",
        "properties": {
          "market_id": {
            "type": "string",
            "description": "Polymarket condition ID"
          },
          "interval": {
            "type": "string",
            "enum": [
              "1h",
              "4h",
              "1d",
              "1w"
            ],
            "description": "Price data interval for history (1h, 4h, 1d, or 1w)"
          },
          "days": {
            "type": "integer",
            "maximum": 365,
            "description": "Number of days of history (1-365)"
          }
        },
        "required": [
          "market_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.market.orderbook",
      "description": "Get order book for a prediction market",
      "inputSchema": {
        "type": "object",
        "properties": {
          "market_id": {
            "type": "string",
            "description": "Polymarket condition ID"
          },
          "depth": {
            "type": "integer",
            "maximum": 50,
            "description": "Number of price levels per side (1-50)"
          }
        },
        "required": [
          "market_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.market.trending",
      "description": "Get trending prediction markets",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sort_by": {
            "type": "string",
            "enum": [
              "volume_24h",
              "newest",
              "biggest_move",
              "ending_soon"
            ],
            "description": "Sort order for trending markets"
          },
          "category": {
            "type": "string",
            "enum": [
              "politics",
              "crypto",
              "sports",
              "finance",
              "science",
              "culture",
              "geopolitics"
            ],
            "description": "Filter by market category"
          },
          "limit": {
            "type": "integer",
            "maximum": 50,
            "description": "Max number of results (1-50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.trading.place_order",
      "description": "Place a limit order on Polymarket",
      "inputSchema": {
        "type": "object",
        "properties": {
          "token_id": {
            "type": "string",
            "description": "Polymarket CLOB token ID to trade"
          },
          "price": {
            "type": "number",
            "description": "Limit price between 0.01 and 0.99",
            "minimum": 0.01,
            "maximum": 0.99
          },
          "side": {
            "type": "string",
            "enum": [
              "buy",
              "sell"
            ],
            "description": "Order side: buy or sell"
          },
          "size": {
            "type": "number",
            "description": "Order size in USDC units",
            "minimum": 1
          },
          "order_type": {
            "type": "string",
            "enum": [
              "GTC",
              "GTD",
              "FOK"
            ],
            "description": "Order type: Good-Til-Cancelled, Good-Til-Date, Fill-Or-Kill"
          },
          "tick_size": {
            "type": "string",
            "description": "Minimum price increment (e.g. 0.01, 0.001)"
          },
          "neg_risk": {
            "type": "boolean",
            "description": "Whether this is a negative risk market"
          }
        },
        "required": [
          "token_id",
          "price",
          "side",
          "size"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.trading.cancel_order",
      "description": "Cancel an open order on Polymarket",
      "inputSchema": {
        "type": "object",
        "properties": {
          "order_id": {
            "type": "string",
            "description": "Polymarket order ID to cancel (from open_orders response)"
          }
        },
        "required": [
          "order_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.trading.open_orders",
      "description": "Get open orders on Polymarket",
      "inputSchema": {
        "type": "object",
        "properties": {
          "market_id": {
            "type": "string",
            "description": "Filter orders by market condition ID"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.trading.history",
      "description": "Get trade history on Polymarket",
      "inputSchema": {
        "type": "object",
        "properties": {
          "market_id": {
            "type": "string",
            "description": "Filter trades by market condition ID"
          },
          "limit": {
            "type": "integer",
            "maximum": 100,
            "description": "Max number of results (1-100)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "polymarket.account.balance",
      "description": "Get balance/allowance on Polymarket",
      "inputSchema": {
        "type": "object",
        "properties": {
          "asset_type": {
            "type": "string",
            "enum": [
              "COLLATERAL",
              "CONDITIONAL"
            ],
            "description": "Asset type: COLLATERAL (USDC) or CONDITIONAL (outcome tokens)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sabre.flights.search",
      "description": "Search for real-time flight offers with prices between airports (Sabre GDS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Origin airport IATA code (e.g. JFK, LAX)",
            "minLength": 3,
            "maxLength": 3
          },
          "destination": {
            "type": "string",
            "description": "Destination airport IATA code (e.g. CDG, LHR)",
            "minLength": 3,
            "maxLength": 3
          },
          "departure_date": {
            "type": "string",
            "description": "Departure date in YYYY-MM-DD format"
          },
          "return_date": {
            "type": "string",
            "description": "Return date in YYYY-MM-DD format for round trips"
          },
          "point_of_sale": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "2-letter country code for pricing (e.g. US, GB)",
            "default": "US"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max number of flight offers (1-50)"
          }
        },
        "required": [
          "origin",
          "destination",
          "departure_date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sabre.flights.destinations",
      "description": "Find cheapest flight destinations from an origin airport",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Origin airport IATA code (e.g. JFK, LAX)",
            "minLength": 3,
            "maxLength": 3
          },
          "departure_date": {
            "type": "string",
            "description": "Departure date in YYYY-MM-DD format"
          },
          "return_date": {
            "type": "string",
            "description": "Return date in YYYY-MM-DD format"
          },
          "point_of_sale": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "2-letter country code for pricing (e.g. US, GB)",
            "default": "US"
          },
          "max_fare": {
            "type": "number",
            "minimum": 0,
            "description": "Maximum fare in USD to filter results"
          }
        },
        "required": [
          "origin",
          "departure_date",
          "return_date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sabre.reference.airline",
      "description": "Look up airline details by IATA or ICAO code",
      "inputSchema": {
        "type": "object",
        "properties": {
          "airline_code": {
            "type": "string",
            "description": "Airline IATA (2-char) or ICAO (3-char) code",
            "minLength": 2,
            "maxLength": 3
          }
        },
        "required": [
          "airline_code"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sabre.reference.themes",
      "description": "Get travel theme categories (beach, skiing, romantic, etc.)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "description": "Response locale (e.g. en-US, de-DE)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "amadeus.flights.search",
      "description": "Search for real-time flight offers between airports with prices, airlines, stops, and duration (Amadeus)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Origin airport IATA code (e.g. JFK, LAX)",
            "minLength": 3,
            "maxLength": 3
          },
          "destination": {
            "type": "string",
            "description": "Destination airport IATA code (e.g. CDG, LHR)",
            "minLength": 3,
            "maxLength": 3
          },
          "departure_date": {
            "type": "string",
            "description": "Departure date in YYYY-MM-DD format"
          },
          "return_date": {
            "type": "string",
            "description": "Return date in YYYY-MM-DD format for round trips"
          },
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9,
            "description": "Number of adult passengers (1-9)",
            "default": 1
          },
          "travel_class": {
            "type": "string",
            "enum": [
              "ECONOMY",
              "PREMIUM_ECONOMY",
              "BUSINESS",
              "FIRST"
            ],
            "description": "Cabin class: ECONOMY, PREMIUM_ECONOMY, BUSINESS, or FIRST (default ECONOMY)",
            "default": "ECONOMY"
          },
          "nonstop": {
            "type": "boolean",
            "description": "Only return non-stop flights",
            "default": false
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max number of flight offers (1-50)",
            "default": 10
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Price currency ISO code (e.g. USD, EUR)",
            "default": "USD"
          }
        },
        "required": [
          "origin",
          "destination",
          "departure_date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "amadeus.flights.price",
      "description": "Confirm and get final pricing for a flight offer from Amadeus flight search",
      "inputSchema": {
        "type": "object",
        "properties": {
          "flight_offer": {
            "type": "object",
            "additionalProperties": {},
            "description": "Flight offer object from flight_search results"
          }
        },
        "required": [
          "flight_offer"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "amadeus.flights.status",
      "description": "Get real-time status of a specific flight \u2014 delays, cancellations, gate info (Amadeus)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "carrier_code": {
            "type": "string",
            "description": "Airline IATA or ICAO code (e.g. AA, UAL)",
            "minLength": 2,
            "maxLength": 3
          },
          "flight_number": {
            "type": "string",
            "description": "Flight number (e.g. 100, 1234)",
            "minLength": 1,
            "maxLength": 5
          },
          "date": {
            "type": "string",
            "description": "Flight date in YYYY-MM-DD format"
          }
        },
        "required": [
          "carrier_code",
          "flight_number",
          "date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "amadeus.airports.search",
      "description": "Search airports and cities by keyword or IATA code with autocomplete (Amadeus)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Airport or city name to search (e.g. London, JFK)",
            "minLength": 1,
            "maxLength": 100
          },
          "subType": {
            "type": "string",
            "enum": [
              "AIRPORT",
              "CITY"
            ],
            "description": "Filter by location type"
          }
        },
        "required": [
          "keyword"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "amadeus.airports.nearest",
      "description": "Find nearest airports by geographic coordinates (Amadeus)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "Latitude in decimal degrees (-90 to 90)",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "description": "Longitude in decimal degrees (-180 to 180)",
            "minimum": -180,
            "maximum": 180
          },
          "radius": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Search radius in km (1-500)",
            "default": 500
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "amadeus.airports.routes",
      "description": "Get all direct flight destinations from an airport (Amadeus)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "airport_code": {
            "type": "string",
            "description": "Airport IATA code (e.g. JFK, LAX)",
            "minLength": 3,
            "maxLength": 3
          }
        },
        "required": [
          "airport_code"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "amadeus.reference.airline",
      "description": "Look up airline details by IATA or ICAO code (Amadeus)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "airline_code": {
            "type": "string",
            "description": "Airline IATA (2-char) or ICAO (3-char) code",
            "minLength": 2,
            "maxLength": 3
          }
        },
        "required": [
          "airline_code"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aviasales.flights.search",
      "description": "Search for flights between airports",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Departure city or airport IATA code (e.g. MOW, JFK, BKK)",
            "minLength": 2,
            "maxLength": 4
          },
          "destination": {
            "type": "string",
            "minLength": 2,
            "maxLength": 4,
            "description": "Arrival IATA code (omit to search all destinations)"
          },
          "departure_date": {
            "type": "string",
            "description": "Departure date in YYYY-MM-DD format (filters results to this date and later)"
          },
          "direct_only": {
            "type": "boolean",
            "description": "Only show non-stop flights (default false)"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Currency code for prices (default usd)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Max number of results to return (default 10)"
          }
        },
        "required": [
          "origin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aviasales.flights.calendar",
      "description": "Get flight price calendar for a route",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Departure city or airport IATA code (e.g. MOW, JFK)",
            "minLength": 2,
            "maxLength": 4
          },
          "destination": {
            "type": "string",
            "description": "Arrival IATA code (e.g. BKK, LON)",
            "minLength": 2,
            "maxLength": 4
          },
          "month": {
            "type": "string",
            "description": "Month in YYYY-MM format to get calendar prices (e.g. 2026-06)"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Currency code for prices (default usd)"
          }
        },
        "required": [
          "origin",
          "destination"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aviasales.flights.cheap",
      "description": "Find cheapest flights from an origin",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Departure city or airport IATA code (e.g. MOW, BER)",
            "minLength": 2,
            "maxLength": 4
          },
          "destination": {
            "type": "string",
            "minLength": 2,
            "maxLength": 4,
            "description": "Arrival IATA code (omit to find cheapest flights to anywhere)"
          },
          "departure_month": {
            "type": "string",
            "description": "Filter by departure month in YYYY-MM format"
          },
          "direct_only": {
            "type": "boolean",
            "description": "Only return direct (non-stop) flights"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Currency code for prices (default usd)"
          }
        },
        "required": [
          "origin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aviasales.flights.popular",
      "description": "Get popular flight routes from an origin",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Departure city IATA code (e.g. MOW, NYC, LON)",
            "minLength": 2,
            "maxLength": 4
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Currency code for prices (default usd)"
          }
        },
        "required": [
          "origin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aviasales.flights.nearby",
      "description": "Find nearby flight destinations",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Departure city IATA code (e.g. MOW)",
            "minLength": 2,
            "maxLength": 4
          },
          "destination": {
            "type": "string",
            "description": "Target destination IATA code \u2014 also searches nearby airports",
            "minLength": 2,
            "maxLength": 4
          },
          "depart_date": {
            "type": "string",
            "description": "Departure date in YYYY-MM-DD format"
          },
          "return_date": {
            "type": "string",
            "description": "Return date in YYYY-MM-DD format"
          },
          "flexibility": {
            "type": "integer",
            "minimum": 0,
            "maximum": 7,
            "description": "Date flexibility in days (+/- from given dates)"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Currency code for prices (default usd)"
          }
        },
        "required": [
          "origin",
          "destination"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aviasales.reference.airport",
      "description": "Look up airport by name or code",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Airport name, city name, or IATA code to search for (e.g. Bangkok, JFK, Heathrow)",
            "minLength": 1
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hyperliquid.markets.data",
      "description": "Get market metadata and mid prices for all perpetual pairs on Hyperliquid",
      "inputSchema": {
        "type": "object",
        "properties": {
          "coin": {
            "type": "string",
            "description": "Specific coin symbol (e.g. BTC, ETH). Omit for all markets."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hyperliquid.markets.orderbook",
      "description": "Get L2 order book depth for a perpetual pair on Hyperliquid",
      "inputSchema": {
        "type": "object",
        "properties": {
          "coin": {
            "type": "string",
            "description": "Coin symbol (e.g. BTC, ETH)"
          },
          "n_sig_figs": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Number of significant figures for price levels"
          },
          "mantissa": {
            "type": "integer",
            "description": "Mantissa for price rounding"
          }
        },
        "required": [
          "coin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hyperliquid.markets.klines",
      "description": "Get candlestick (OHLCV) data for a perpetual pair on Hyperliquid",
      "inputSchema": {
        "type": "object",
        "properties": {
          "coin": {
            "type": "string",
            "description": "Coin symbol (e.g. BTC, ETH)"
          },
          "interval": {
            "type": "string",
            "enum": [
              "1m",
              "3m",
              "5m",
              "15m",
              "30m",
              "1h",
              "2h",
              "4h",
              "6h",
              "8h",
              "12h",
              "1d",
              "3d",
              "1w",
              "1M"
            ],
            "description": "Candlestick interval (1m, 5m, 15m, 1h, 4h, 1d, 1w)"
          },
          "start_time": {
            "type": "integer",
            "description": "Start time in milliseconds since epoch"
          },
          "end_time": {
            "type": "integer",
            "description": "End time in milliseconds since epoch"
          }
        },
        "required": [
          "coin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hyperliquid.account.positions",
      "description": "Get open positions for a user wallet on Hyperliquid",
      "inputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "string",
            "description": "User wallet address (0x...)"
          }
        },
        "required": [
          "user"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hyperliquid.account.summary",
      "description": "Get account summary and margin details for a user wallet on Hyperliquid",
      "inputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "string",
            "description": "User wallet address (0x...)"
          }
        },
        "required": [
          "user"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hyperliquid.vaults.details",
      "description": "Get vault details including performance and TVL on Hyperliquid",
      "inputSchema": {
        "type": "object",
        "properties": {
          "vault_address": {
            "type": "string",
            "description": "Vault contract address (0x...)"
          }
        },
        "required": [
          "vault_address"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ticketmaster.events.search",
      "description": "Search for events (concerts, sports, theatre, festivals) by keyword, city, date, or category across 26+ countries (Ticketmaster)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Search keyword (e.g. \"concert\", \"NBA\", \"Taylor Swift\")"
          },
          "city": {
            "type": "string",
            "description": "City name to filter events (e.g. \"New York\", \"London\")"
          },
          "countryCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\")"
          },
          "stateCode": {
            "type": "string",
            "description": "State code for US/CA events (e.g. \"NY\", \"CA\", \"ON\")"
          },
          "classificationName": {
            "type": "string",
            "description": "Event category filter (e.g. \"Music\", \"Sports\", \"Arts & Theatre\")"
          },
          "startDateTime": {
            "type": "string",
            "description": "Start date/time in ISO 8601 format with Z suffix (e.g. \"2026-04-01T00:00:00Z\")"
          },
          "endDateTime": {
            "type": "string",
            "description": "End date/time in ISO 8601 format with Z suffix (e.g. \"2026-12-31T23:59:59Z\")"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of results per page (1-200, default 20)"
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "Page number for pagination (0-based, default 0)"
          },
          "sort": {
            "type": "string",
            "description": "Sort order (e.g. \"date,asc\", \"relevance,desc\", \"name,asc\")"
          },
          "locale": {
            "type": "string",
            "description": "Locale for response (e.g. \"en-us\", \"fr-fr\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ticketmaster.events.details",
      "description": "Get full details for an event \u2014 dates, venues, prices, images, classifications, seat map (Ticketmaster)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Ticketmaster event ID (e.g. \"vvG1iZ4JkS1GKT\")"
          },
          "locale": {
            "type": "string",
            "description": "Locale for response (e.g. \"en-us\")"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ticketmaster.events.nearby",
      "description": "Find events near geographic coordinates with radius filter (Ticketmaster)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latlong": {
            "type": "string",
            "description": "Latitude,longitude coordinates (e.g. \"40.7128,-74.0060\" for NYC)"
          },
          "radius": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Search radius (default unit: miles, max 500)"
          },
          "unit": {
            "type": "string",
            "enum": [
              "miles",
              "km"
            ],
            "description": "Distance unit for radius (default: miles)"
          },
          "keyword": {
            "type": "string",
            "description": "Optional keyword filter (e.g. \"jazz\", \"basketball\")"
          },
          "classificationName": {
            "type": "string",
            "description": "Event category filter (e.g. \"Music\", \"Sports\")"
          },
          "startDateTime": {
            "type": "string",
            "description": "Start date/time in ISO 8601 format with Z suffix"
          },
          "endDateTime": {
            "type": "string",
            "description": "End date/time in ISO 8601 format with Z suffix"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of results per page (1-200, default 20)"
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "Page number for pagination (0-based, default 0)"
          },
          "sort": {
            "type": "string",
            "description": "Sort order (e.g. \"date,asc\", \"distance,asc\")"
          },
          "locale": {
            "type": "string",
            "description": "Locale for response (e.g. \"en-us\")"
          }
        },
        "required": [
          "latlong"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ticketmaster.events.by_artist",
      "description": "Find events by artist or performer name with optional country and date filters (Ticketmaster)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Artist/performer name to search (e.g. \"Beyonce\", \"Coldplay\")"
          },
          "attractionId": {
            "type": "string",
            "description": "Ticketmaster attraction ID for exact artist match"
          },
          "countryCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"GB\")"
          },
          "startDateTime": {
            "type": "string",
            "description": "Start date/time in ISO 8601 format with Z suffix"
          },
          "endDateTime": {
            "type": "string",
            "description": "End date/time in ISO 8601 format with Z suffix"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of results per page (1-200, default 20)"
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "Page number for pagination (0-based, default 0)"
          },
          "sort": {
            "type": "string",
            "description": "Sort order (e.g. \"date,asc\", \"relevance,desc\")"
          },
          "locale": {
            "type": "string",
            "description": "Locale for response (e.g. \"en-us\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ticketmaster.events.by_venue",
      "description": "Get upcoming events at a specific venue by venue ID (Ticketmaster)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "venueId": {
            "type": "string",
            "description": "Ticketmaster venue ID (e.g. \"KovZpZA7AAEA\" for Madison Square Garden)"
          },
          "keyword": {
            "type": "string",
            "description": "Optional keyword filter for events at this venue"
          },
          "startDateTime": {
            "type": "string",
            "description": "Start date/time in ISO 8601 format with Z suffix"
          },
          "endDateTime": {
            "type": "string",
            "description": "End date/time in ISO 8601 format with Z suffix"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of results per page (1-200, default 20)"
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "Page number for pagination (0-based, default 0)"
          },
          "sort": {
            "type": "string",
            "description": "Sort order (e.g. \"date,asc\", \"relevance,desc\")"
          },
          "locale": {
            "type": "string",
            "description": "Locale for response (e.g. \"en-us\")"
          }
        },
        "required": [
          "venueId"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ticketmaster.events.trending",
      "description": "Get trending and popular events sorted by relevance (Ticketmaster)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"GB\")"
          },
          "classificationName": {
            "type": "string",
            "description": "Event category filter (e.g. \"Music\", \"Sports\")"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of results per page (1-200, default 20)"
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "Page number for pagination (0-based, default 0)"
          },
          "locale": {
            "type": "string",
            "description": "Locale for response (e.g. \"en-us\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ticketmaster.events.categories",
      "description": "Get all event classification categories \u2014 segments, genres, sub-genres (Ticketmaster)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of results per page (1-200, default 20)"
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "Page number for pagination (0-based, default 0)"
          },
          "locale": {
            "type": "string",
            "description": "Locale for response (e.g. \"en-us\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tmdb.movies.search",
      "description": "Search for movies, TV shows, and people by name across 1M+ titles in 39 languages (TMDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query (movie, TV show, or person name)"
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en-US\", \"de-DE\", \"ja-JP\"). Default: en-US"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Page number (1-500, default 1)"
          },
          "include_adult": {
            "type": "boolean",
            "description": "Include adult content in results (default false)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tmdb.movies.details",
      "description": "Get full movie details \u2014 cast, crew, trailers, ratings, streaming providers, runtime, budget, revenue (TMDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "TMDB movie ID (e.g. 550 for Fight Club, 27205 for Inception)"
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en-US\"). Default: en-US"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tmdb.movies.discover",
      "description": "Discover movies or TV shows by genre, year, rating, language, and sort order (TMDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "movie",
              "tv"
            ],
            "description": "Content type to discover: \"movie\" or \"tv\" (default \"movie\")"
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en-US\"). Default: en-US"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Page number (1-500, default 1)"
          },
          "sort_by": {
            "type": "string",
            "description": "Sort field (e.g. \"popularity.desc\", \"vote_average.desc\", \"revenue.desc\", \"primary_release_date.desc\")"
          },
          "with_genres": {
            "type": "string",
            "description": "Comma-separated genre IDs to filter (e.g. \"28,12\" for Action+Adventure)"
          },
          "year": {
            "type": "integer",
            "description": "Filter by release year (movies only)"
          },
          "primary_release_year": {
            "type": "integer",
            "description": "Filter by primary release year (movies only)"
          },
          "first_air_date_year": {
            "type": "integer",
            "description": "Filter by first air date year (TV only)"
          },
          "vote_average_gte": {
            "type": "number",
            "minimum": 0,
            "maximum": 10,
            "description": "Minimum vote average (0-10)"
          },
          "vote_average_lte": {
            "type": "number",
            "minimum": 0,
            "maximum": 10,
            "description": "Maximum vote average (0-10)"
          },
          "with_original_language": {
            "type": "string",
            "description": "ISO 639-1 original language filter (e.g. \"en\", \"ko\", \"ja\")"
          },
          "region": {
            "type": "string",
            "description": "ISO 3166-1 region for release dates (e.g. \"US\", \"GB\")"
          },
          "include_adult": {
            "type": "boolean",
            "description": "Include adult content (default false)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tmdb.movies.trending",
      "description": "Get trending movies, TV shows, or people \u2014 daily or weekly (TMDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "movie",
              "tv",
              "person",
              "all"
            ],
            "description": "Content type: \"movie\", \"tv\", \"person\", or \"all\" (default \"movie\")"
          },
          "window": {
            "type": "string",
            "enum": [
              "day",
              "week"
            ],
            "description": "Time window: \"day\" or \"week\" (default \"week\")"
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en-US\"). Default: en-US"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Page number (1-500, default 1)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tmdb.movies.similar",
      "description": "Get movie recommendations based on a movie ID \u2014 similar genres, themes, cast (TMDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "TMDB movie ID to get recommendations for"
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en-US\"). Default: en-US"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Page number (1-500, default 1)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tmdb.movies.person",
      "description": "Search for actors, directors, or crew by name, or get full filmography by person ID (TMDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Person name to search for (e.g. \"Tom Hanks\", \"Miyazaki\"). Use either query or id"
          },
          "id": {
            "type": "integer",
            "description": "TMDB person ID for detailed filmography (e.g. 31 for Tom Hanks). Use either id or query"
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en-US\"). Default: en-US"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Page number for search results (1-500, default 1)"
          },
          "include_adult": {
            "type": "boolean",
            "description": "Include adult content (default false)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tmdb.movies.where_to_watch",
      "description": "Find streaming, rental, and purchase options for a movie or TV show by country (TMDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "TMDB movie or TV show ID"
          },
          "type": {
            "type": "string",
            "enum": [
              "movie",
              "tv"
            ],
            "description": "Content type: \"movie\" or \"tv\" (default \"movie\")"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.nutrition.food_search",
      "description": "Search 350K+ foods in the USDA FoodData Central database \u2014 nutrition facts, ingredients, branded products, and reference foods",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Food search query (e.g. \"chicken breast\", \"brown rice\", \"vitamin D milk\")"
          },
          "data_type": {
            "type": "string",
            "enum": [
              "Foundation",
              "Branded",
              "SR Legacy",
              "all"
            ],
            "description": "USDA data type filter: \"Foundation\" (reference foods), \"Branded\" (brand-name products), \"SR Legacy\" (legacy reference), \"all\" (default)"
          },
          "brand_owner": {
            "type": "string",
            "description": "Filter by brand owner name (e.g. \"General Mills\", \"Tyson\")"
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Results per page (1-200, default 50)"
          },
          "page_number": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.nutrition.food_details",
      "description": "Get detailed nutrition data for a food item \u2014 up to 150 nutrients, portions, serving sizes, ingredients (USDA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fdc_id": {
            "type": "integer",
            "description": "USDA FoodData Central food ID (e.g. 171705 for chicken breast)"
          }
        },
        "required": [
          "fdc_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.safety.drug_events",
      "description": "Search FDA FAERS database for drug adverse event reports \u2014 side effects, reactions, patient demographics (OpenFDA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "OpenFDA search query for adverse events (e.g. \"patient.drug.medicinalproduct:aspirin\", \"patient.reaction.reactionmeddrapt:headache\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results (1-100, default 10)"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of results to skip for pagination"
          }
        },
        "required": [
          "search"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.safety.food_recalls",
      "description": "Search FDA food enforcement and recall reports \u2014 contamination, mislabeling, safety alerts (OpenFDA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "OpenFDA search query for food recalls (e.g. \"reason_for_recall:salmonella\", \"recalling_firm:\"Tyson\"\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results (1-100, default 10)"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of results to skip for pagination"
          },
          "status": {
            "type": "string",
            "enum": [
              "Ongoing",
              "Completed",
              "Terminated"
            ],
            "description": "Filter by recall status"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.safety.drug_labels",
      "description": "Search drug labeling data \u2014 indications, dosage, warnings, interactions, contraindications (OpenFDA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "OpenFDA search query for drug labels (e.g. \"openfda.brand_name:ibuprofen\", \"openfda.generic_name:metformin\", \"drug_interactions:warfarin\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results (1-100, default 10)"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of results to skip for pagination"
          }
        },
        "required": [
          "search"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.supplements.search",
      "description": "Search 200K+ dietary supplement labels in the NIH DSLD database \u2014 vitamins, minerals, herbal products",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Supplement search query (e.g. \"vitamin D\", \"fish oil\", \"probiotics\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results (1-100, default 25)"
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Result offset for pagination"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.supplements.details",
      "description": "Get full supplement label data \u2014 ingredients, amounts per serving, daily values, target groups (NIH DSLD)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "dsld_id": {
            "type": "integer",
            "description": "NIH DSLD supplement label ID"
          }
        },
        "required": [
          "dsld_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.currency.rates",
      "description": "Get currency exchange rates for 200+ fiat and crypto currencies with optional historical dates (fawazahmed0 CDN)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "base": {
            "type": "string",
            "description": "Base currency code (e.g. \"usd\", \"eur\", \"btc\"). Lowercase. 200+ currencies supported.",
            "minLength": 2,
            "maxLength": 10
          },
          "date": {
            "type": "string",
            "description": "Historical date in YYYY-MM-DD format. Omit for latest rates."
          },
          "currencies": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Currency code (e.g. \"eur\", \"gbp\", \"jpy\")"
            },
            "maxItems": 50,
            "description": "Filter to specific target currencies (e.g. [\"eur\",\"gbp\"]). Omit for all."
          }
        },
        "required": [
          "base"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.currency.ecb",
      "description": "Get official European Central Bank reference exchange rates for ~33 fiat currencies (Frankfurter/ECB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "base": {
            "type": "string",
            "description": "Base currency code, uppercase (e.g. \"USD\", \"EUR\"). ~33 ECB currencies.",
            "minLength": 3,
            "maxLength": 3
          },
          "date": {
            "type": "string",
            "description": "Historical date in YYYY-MM-DD format. Omit for latest ECB rates."
          },
          "currencies": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Currency code (e.g. \"EUR\", \"GBP\", \"JPY\")"
            },
            "maxItems": 33,
            "description": "Filter to specific target currencies (e.g. [\"EUR\",\"GBP\"]). Omit for all ECB currencies."
          }
        },
        "required": [
          "base"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.macro.indicator",
      "description": "Get US economic data from 816K+ FRED series \u2014 GDP, CPI, unemployment, interest rates, money supply (Federal Reserve)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "series_id": {
            "type": "string",
            "description": "FRED series ID (e.g. \"GDP\", \"CPIAUCSL\", \"UNRATE\", \"DFF\", \"T10Y2Y\"). Browse at fred.stlouisfed.org.",
            "minLength": 1,
            "maxLength": 50
          },
          "observation_start": {
            "type": "string",
            "description": "Start date for observations in YYYY-MM-DD format."
          },
          "observation_end": {
            "type": "string",
            "description": "End date for observations in YYYY-MM-DD format."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100000,
            "description": "Maximum number of observations to return (default 100000)."
          },
          "sort_order": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort order by observation date. Default \"asc\"."
          }
        },
        "required": [
          "series_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.macro.country",
      "description": "Get global development indicators from World Bank \u2014 GDP, population, inflation, trade, poverty for 200+ countries",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "description": "ISO 3166 country code (e.g. \"US\", \"DE\", \"CHN\") or \"all\" for all countries.",
            "minLength": 2,
            "maxLength": 3
          },
          "indicator_id": {
            "type": "string",
            "description": "World Bank indicator ID (e.g. \"NY.GDP.MKTP.CD\" for GDP, \"SP.POP.TOTL\" for population, \"FP.CPI.TOTL.ZG\" for inflation).",
            "minLength": 1,
            "maxLength": 100
          },
          "date_range": {
            "type": "string",
            "description": "Year or year range (e.g. \"2023\" or \"2010:2023\"). Omit for all available years."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Results per page (default 50, max 1000)."
          }
        },
        "required": [
          "country_code",
          "indicator_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.treasury.data",
      "description": "Get US Treasury fiscal data \u2014 interest rates on federal debt, national debt, debt outstanding, gold reserves, exchange rates",
      "inputSchema": {
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "enum": [
              "avg_interest_rates",
              "debt_to_penny",
              "debt_outstanding",
              "top_federal",
              "gold_reserve",
              "exchange_rates_report"
            ],
            "description": "Treasury dataset endpoint: avg_interest_rates (interest rates on federal debt), debt_to_penny (daily national debt), debt_outstanding (debt by security type), top_federal (top federal spending), gold_reserve (US gold reserves), exchange_rates_report (Treasury exchange rates)."
          },
          "filter": {
            "type": "string",
            "description": "Filter expression (e.g. \"record_date:gte:2024-01-01,security_desc:eq:Treasury Bills\"). See Treasury API docs."
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000,
            "description": "Number of records per page (default 100, max 10000)."
          },
          "sort": {
            "type": "string",
            "description": "Sort field with direction prefix (e.g. \"-record_date\" for newest first). Default: \"-record_date\"."
          }
        },
        "required": [
          "endpoint"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.banking.iban",
      "description": "Validate an IBAN number and get associated bank data \u2014 BIC/SWIFT code, bank name, city (OpenIBAN)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "iban": {
            "type": "string",
            "description": "IBAN to validate (e.g. \"DE89370400440532013000\"). Spaces are stripped automatically.",
            "minLength": 15,
            "maxLength": 34
          }
        },
        "required": [
          "iban"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.artists.search",
      "description": "Search for music artists by name across 2M+ artists \u2014 biography, country, tags, aliases (MusicBrainz)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for artist name (e.g. \"Radiohead\", \"Miles Davis\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results to return (1-100, default 25)"
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for results"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.artists.details",
      "description": "Get detailed artist info by MusicBrainz ID \u2014 tags, ratings, external links, life span, area (MusicBrainz)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "mbid": {
            "type": "string",
            "description": "MusicBrainz artist ID (UUID format, e.g. \"a74b1b7f-71a5-4011-9441-d0b5e4122711\")"
          }
        },
        "required": [
          "mbid"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.releases.search",
      "description": "Search for albums, singles, and EPs across 50M+ recordings \u2014 title, artist, date (MusicBrainz)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for release/album title (e.g. \"OK Computer\", \"Kind of Blue\"). Supports Lucene syntax: artist:\"Radiohead\" AND release:\"OK Computer\""
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results to return (1-100, default 25)"
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for results"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.releases.details",
      "description": "Get full release details by MusicBrainz ID \u2014 artist credits, labels, media formats (MusicBrainz)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "mbid": {
            "type": "string",
            "description": "MusicBrainz release ID (UUID format). Returns artist credits and label info"
          }
        },
        "required": [
          "mbid"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.recordings.search",
      "description": "Search for songs and recordings by title or artist \u2014 duration, release history, artist credits (MusicBrainz)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for song/recording title (e.g. \"Creep\", \"So What\"). Supports Lucene syntax: artist:\"Radiohead\" AND recording:\"Creep\""
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results to return (1-100, default 25)"
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for results"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.discover.fresh",
      "description": "Discover recently released albums and singles from the past N days \u2014 trending new music (ListenBrainz)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 90,
            "description": "Number of days to look back for fresh releases (1-90, default 7)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Max releases to return (1-200, default 50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.radio.search",
      "description": "Search 40K+ internet radio stations by name, genre, country, or language \u2014 streaming URLs, bitrate, codec (RadioBrowser)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Station name to search for (e.g. \"BBC Radio\", \"Jazz FM\")"
          },
          "tag": {
            "type": "string",
            "description": "Tag/genre filter (e.g. \"rock\", \"jazz\", \"classical\", \"news\")"
          },
          "country": {
            "type": "string",
            "description": "Country name filter (e.g. \"Germany\", \"United States\")"
          },
          "countrycode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"DE\", \"GB\")"
          },
          "language": {
            "type": "string",
            "description": "Language filter (e.g. \"english\", \"german\", \"spanish\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max stations to return (1-100, default 25)"
          },
          "order": {
            "type": "string",
            "enum": [
              "name",
              "url",
              "homepage",
              "favicon",
              "tags",
              "country",
              "state",
              "language",
              "votes",
              "codec",
              "bitrate",
              "lastcheckok",
              "lastchecktime",
              "clicktimestamp",
              "clickcount",
              "clicktrend",
              "changetimestamp",
              "random"
            ],
            "description": "Sort order for results"
          },
          "hidebroken": {
            "type": "boolean",
            "description": "Hide broken/offline stations (recommended: true)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aster.exchange.info",
      "description": "Get exchange information and available trading pairs on AsterDEX",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Trading pair symbol to filter (e.g. BTCUSDT). Omit for all pairs."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aster.markets.ticker",
      "description": "Get 24-hour ticker statistics for trading pairs on AsterDEX",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Trading pair symbol (e.g. BTCUSDT). Omit for all pairs."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aster.markets.orderbook",
      "description": "Get order book depth for a trading pair on AsterDEX",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Trading pair symbol (e.g. BTCUSDT)"
          },
          "limit": {
            "type": "integer",
            "minimum": 5,
            "maximum": 1000,
            "description": "Depth limit (default 20)"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aster.markets.klines",
      "description": "Get candlestick (OHLCV) data for a trading pair on AsterDEX",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Trading pair symbol (e.g. BTCUSDT)"
          },
          "interval": {
            "type": "string",
            "enum": [
              "1m",
              "3m",
              "5m",
              "15m",
              "30m",
              "1h",
              "2h",
              "4h",
              "6h",
              "8h",
              "12h",
              "1d",
              "3d",
              "1w",
              "1M"
            ],
            "description": "Candlestick interval (default 1h)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1500,
            "description": "Number of candles (default 100)"
          },
          "start_time": {
            "type": "integer",
            "description": "Start time in milliseconds since epoch"
          },
          "end_time": {
            "type": "integer",
            "description": "End time in milliseconds since epoch"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.salary.data",
      "description": "Get US salary and employment timeseries data from BLS \u2014 wage estimates, employment counts, occupational statistics by SOC code and geography",
      "inputSchema": {
        "type": "object",
        "properties": {
          "series_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "BLS series ID (e.g. \"OEUM0000000000000151252004\")",
              "minLength": 1
            },
            "description": "BLS timeseries IDs (e.g. [\"OEUM0000000000000151252004\"] for Software Developers mean salary). Encodes occupation code + geography + data type.",
            "minItems": 1,
            "maxItems": 50
          },
          "start_year": {
            "type": "string",
            "description": "Start year (e.g. \"2020\"). Omit for latest available."
          },
          "end_year": {
            "type": "string",
            "description": "End year (e.g. \"2024\"). Omit for latest available."
          }
        },
        "required": [
          "series_ids"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.occupations.search",
      "description": "Search O*NET occupation taxonomy by keyword \u2014 1,000+ occupations with SOC codes, titles, and relevance scores",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Search keyword for occupations (e.g. \"software developer\", \"nurse\", \"data analyst\").",
            "minLength": 1,
            "maxLength": 200
          },
          "start": {
            "type": "integer",
            "minimum": 1,
            "description": "Starting index for pagination (1-based). Omit for first page."
          },
          "end": {
            "type": "integer",
            "minimum": 1,
            "description": "Ending index for pagination. Omit for default page size."
          }
        },
        "required": [
          "keyword"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.occupations.details",
      "description": "Get detailed occupation info from O*NET by SOC code \u2014 overview, skills, knowledge, abilities, technology skills, tasks",
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "O*NET SOC occupation code (e.g. \"15-1252.00\" for Software Developers). Get codes from occupation_search.",
            "minLength": 1,
            "maxLength": 20
          },
          "section": {
            "type": "string",
            "enum": [
              "skills",
              "knowledge",
              "abilities",
              "technology_skills",
              "tasks"
            ],
            "description": "Specific section to retrieve. Omit for general overview (title, description, sample titles)."
          }
        },
        "required": [
          "code"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.skills.search",
      "description": "Search ESCO (European Skills/Competences/Occupations) taxonomy \u2014 occupations and skills in 27 EU languages",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Search text for EU occupations or skills (e.g. \"software developer\", \"project management\").",
            "minLength": 1,
            "maxLength": 500
          },
          "type": {
            "type": "string",
            "enum": [
              "occupation",
              "skill"
            ],
            "description": "Resource type to search. Default: \"occupation\"."
          },
          "language": {
            "type": "string",
            "minLength": 2,
            "maxLength": 5,
            "description": "ISO 639-1 language code (e.g. \"en\", \"de\", \"fr\"). Default: \"en\". ESCO supports 27 EU languages."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Results per page (default 25, max 100)."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Offset for pagination. Omit for first page."
          }
        },
        "required": [
          "text"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.skills.details",
      "description": "Get ESCO resource details by URI \u2014 occupation descriptions, essential/optional skills, ISCO codes, skill relationships",
      "inputSchema": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "ESCO resource URI (e.g. \"http://data.europa.eu/esco/occupation/...\"). Get URIs from esco_search.",
            "minLength": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "occupation",
              "skill"
            ],
            "description": "Resource type: \"occupation\" or \"skill\". Default: \"occupation\"."
          },
          "language": {
            "type": "string",
            "minLength": 2,
            "maxLength": 5,
            "description": "ISO 639-1 language code. Default: \"en\"."
          }
        },
        "required": [
          "uri"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.listings.search",
      "description": "Search global job listings via CareerJet \u2014 title, company, salary, location, contract type across 90+ countries",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "string",
            "description": "Job search keywords (e.g. \"software engineer\", \"marketing manager remote\").",
            "minLength": 1,
            "maxLength": 500
          },
          "location": {
            "type": "string",
            "maxLength": 200,
            "description": "Location filter (e.g. \"New York\", \"London\", \"Berlin\"). Omit for worldwide."
          },
          "locale_code": {
            "type": "string",
            "minLength": 2,
            "maxLength": 10,
            "description": "Locale code for results (e.g. \"en_US\", \"en_GB\", \"de_DE\"). Default: \"en_US\"."
          },
          "contract_type": {
            "type": "string",
            "enum": [
              "permanent",
              "contract",
              "temporary",
              "internship",
              "volunteering"
            ],
            "description": "Filter by contract type."
          },
          "work_hours": {
            "type": "string",
            "enum": [
              "full_time",
              "part_time"
            ],
            "description": "Filter by work hours: full_time or part_time"
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevance",
              "date",
              "salary"
            ],
            "description": "Sort order for results. Default: \"relevance\"."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Page number (1-10). Default: 1."
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Results per page (1-100). Default: 20."
          }
        },
        "required": [
          "keywords"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "education.papers.search",
      "description": "Search 250M+ academic papers across all disciplines \u2014 citations, authors, institutions, open access status (OpenAlex)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search text for academic papers (e.g. \"machine learning\", \"CRISPR gene editing\").",
            "minLength": 1,
            "maxLength": 500
          },
          "concept": {
            "type": "string",
            "maxLength": 200,
            "description": "OpenAlex concept ID filter (e.g. \"C41008148\" for Computer Science). Get IDs from OpenAlex concepts API."
          },
          "author": {
            "type": "string",
            "maxLength": 200,
            "description": "Author name or ORCID to filter by (e.g. \"Yoshua Bengio\", \"0000-0001-2345-6789\")."
          },
          "institution": {
            "type": "string",
            "maxLength": 200,
            "description": "Institution name or ROR ID to filter by (e.g. \"MIT\", \"Stanford University\")."
          },
          "year_from": {
            "type": "integer",
            "minimum": 1800,
            "maximum": 2100,
            "description": "Filter papers published from this year (inclusive)."
          },
          "year_to": {
            "type": "integer",
            "minimum": 1800,
            "maximum": 2100,
            "description": "Filter papers published up to this year (inclusive)."
          },
          "open_access_only": {
            "type": "boolean",
            "description": "If true, only return open access papers."
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevance",
              "cited_by_count",
              "publication_date"
            ],
            "description": "Sort order for results. Default: \"relevance\"."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results to return (1-50). Default: 10."
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "education.papers.details",
      "description": "Get full details for an academic paper by OpenAlex ID or DOI \u2014 authors, citations, abstract, references, open access links (OpenAlex)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "OpenAlex work ID (e.g. \"W2741809807\") or DOI (e.g. \"10.1038/nature12373\"). Get IDs from paper_search.",
            "minLength": 1,
            "maxLength": 200
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "education.colleges.search",
      "description": "Search US colleges and universities \u2014 admissions, tuition, enrollment, earnings, completion rates (College Scorecard)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "description": "School name to search for (e.g. \"MIT\", \"Stanford\", \"Community College\")."
          },
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "US state abbreviation (e.g. \"CA\", \"NY\", \"TX\")."
          },
          "degree_type": {
            "type": "string",
            "enum": [
              "associate",
              "bachelor",
              "graduate"
            ],
            "description": "Filter by predominant degree type awarded."
          },
          "program": {
            "type": "string",
            "maxLength": 200,
            "description": "Field of study filter (e.g. \"Computer Science\", \"Nursing\", \"Business\")."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results to return (1-50). Default: 10."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "education.colleges.details",
      "description": "Get detailed data for a US college by UNITID \u2014 admissions rate, costs, student outcomes, earnings after graduation (College Scorecard)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "school_id": {
            "type": "integer",
            "description": "College Scorecard UNITID (e.g. 166027 for MIT). Get IDs from college_search.",
            "minimum": 0
          }
        },
        "required": [
          "school_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "education.pubmed.search",
      "description": "Search 36M+ biomedical and life science articles \u2014 clinical trials, reviews, meta-analyses with date and type filters (PubMed/NCBI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search text for biomedical literature (e.g. \"COVID-19 vaccine efficacy\", \"BRCA1 breast cancer\").",
            "minLength": 1,
            "maxLength": 500
          },
          "publication_type": {
            "type": "string",
            "enum": [
              "review",
              "clinical-trial",
              "meta-analysis",
              "any"
            ],
            "description": "Filter by publication type. Default: \"any\"."
          },
          "date_from": {
            "type": "string",
            "description": "Start date filter in YYYY/MM/DD format (e.g. \"2023/01/01\")."
          },
          "date_to": {
            "type": "string",
            "description": "End date filter in YYYY/MM/DD format (e.g. \"2024/12/31\")."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results to return (1-50). Default: 10."
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "education.arxiv.search",
      "description": "Search 2.4M+ preprints in physics, math, CS, biology, and more \u2014 full text, authors, categories, PDF links (arXiv)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search text for preprints (e.g. \"transformer architecture\", \"quantum computing\").",
            "minLength": 1,
            "maxLength": 500
          },
          "category": {
            "type": "string",
            "maxLength": 20,
            "description": "arXiv category filter (e.g. \"cs.AI\", \"math.CO\", \"physics.hep-th\", \"q-bio.GN\")."
          },
          "author": {
            "type": "string",
            "maxLength": 200,
            "description": "Author name to filter by (e.g. \"Vaswani\", \"Hinton\")."
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevance",
              "lastUpdatedDate",
              "submittedDate"
            ],
            "description": "Sort order for results. Default: \"relevance\"."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results to return (1-50). Default: 10."
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "education.crossref.doi",
      "description": "Resolve a DOI to full publication metadata \u2014 title, authors, journal, citations, funding, license (CrossRef)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "doi": {
            "type": "string",
            "description": "DOI to resolve (e.g. \"10.1038/nature12373\", \"10.1145/3292500.3330648\").",
            "minLength": 3,
            "maxLength": 200
          }
        },
        "required": [
          "doi"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "geo.address.geocode",
      "description": "Convert an address, place name, or landmark to geographic coordinates (lat/lon) with structured address data (Geoapify/OSM)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Address, place name, or landmark to geocode (e.g. \"1600 Pennsylvania Ave, Washington DC\", \"Eiffel Tower\").",
            "minLength": 1,
            "maxLength": 500
          },
          "lang": {
            "type": "string",
            "minLength": 2,
            "maxLength": 5,
            "description": "Result language code (e.g. \"en\", \"de\", \"ru\"). Default: English."
          },
          "country_code": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO 3166-1 alpha-2 country code to filter results (e.g. \"US\", \"DE\", \"FR\")."
          },
          "type": {
            "type": "string",
            "enum": [
              "city",
              "street",
              "amenity",
              "country"
            ],
            "description": "Filter by result type: city, street, amenity, or country."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "Maximum number of results to return (default 1, max 5)."
          }
        },
        "required": [
          "text"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "geo.address.reverse",
      "description": "Convert geographic coordinates (lat/lon) to a structured address \u2014 street, city, country, postal code (Geoapify/OSM)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude of the point to reverse geocode.",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "description": "Longitude of the point to reverse geocode.",
            "minimum": -180,
            "maximum": 180
          },
          "lang": {
            "type": "string",
            "minLength": 2,
            "maxLength": 5,
            "description": "Result language code (e.g. \"en\", \"de\", \"ru\"). Default: English."
          }
        },
        "required": [
          "lat",
          "lon"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "geo.places.search",
      "description": "Search points of interest (restaurants, pharmacies, hotels, attractions) near a location by category and radius (Geoapify/OSM)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "string",
            "description": "POI category filter (e.g. \"catering.restaurant\", \"healthcare.pharmacy\", \"tourism.attraction\", \"accommodation.hotel\"). Multiple categories separated by comma.",
            "minLength": 1,
            "maxLength": 200
          },
          "lat": {
            "type": "number",
            "description": "Center latitude for the search area.",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "description": "Center longitude for the search area.",
            "minimum": -180,
            "maximum": 180
          },
          "radius": {
            "type": "integer",
            "minimum": 100,
            "maximum": 50000,
            "description": "Search radius in meters (default 1000, max 50000)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum number of results (default 20, max 50)."
          },
          "lang": {
            "type": "string",
            "minLength": 2,
            "maxLength": 5,
            "description": "Result language code (e.g. \"en\", \"de\", \"ru\"). Default: English."
          }
        },
        "required": [
          "categories",
          "lat",
          "lon"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "geo.address.autocomplete",
      "description": "Get autocomplete suggestions as you type an address or place name \u2014 for real-time search UX (Geoapify/OSM)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Partial address or place name to autocomplete (e.g. \"1600 Penn\", \"Berlin Bran\").",
            "minLength": 1,
            "maxLength": 200
          },
          "lang": {
            "type": "string",
            "minLength": 2,
            "maxLength": 5,
            "description": "Result language code (e.g. \"en\", \"de\", \"ru\"). Default: English."
          },
          "country_code": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO 3166-1 alpha-2 country code to filter results (e.g. \"US\", \"DE\")."
          },
          "type": {
            "type": "string",
            "enum": [
              "city",
              "street",
              "amenity",
              "country"
            ],
            "description": "Filter by result type: city, street, amenity, or country."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "Maximum number of suggestions (default 5, max 5)."
          }
        },
        "required": [
          "text"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "geo.navigation.route",
      "description": "Get turn-by-turn driving, walking, cycling, or transit directions between two points with distance and time (Geoapify/OSM)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "origin_lat": {
            "type": "number",
            "description": "Start point latitude (e.g. 40.7128)",
            "minimum": -90,
            "maximum": 90
          },
          "origin_lon": {
            "type": "number",
            "description": "Start point longitude (e.g. -74.0060)",
            "minimum": -180,
            "maximum": 180
          },
          "dest_lat": {
            "type": "number",
            "description": "Destination latitude (e.g. 48.8566)",
            "minimum": -90,
            "maximum": 90
          },
          "dest_lon": {
            "type": "number",
            "description": "Destination longitude (e.g. 2.3522)",
            "minimum": -180,
            "maximum": 180
          },
          "mode": {
            "type": "string",
            "enum": [
              "drive",
              "walk",
              "bicycle",
              "transit"
            ],
            "description": "Travel mode: drive, walk, bicycle, or transit. Default: drive."
          },
          "lang": {
            "type": "string",
            "minLength": 2,
            "maxLength": 5,
            "description": "Turn-by-turn instruction language (e.g. \"en\", \"de\"). Default: English."
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "Distance units: metric (km) or imperial (miles). Default: metric."
          }
        },
        "required": [
          "origin_lat",
          "origin_lon",
          "dest_lat",
          "dest_lon"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "geo.navigation.isochrone",
      "description": "Get reachability area (isochrone) \u2014 polygon showing how far you can travel from a point in a given time or distance (Geoapify/OSM)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Center point latitude (e.g. 52.5200)",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "description": "Center point longitude (e.g. 13.4050)",
            "minimum": -180,
            "maximum": 180
          },
          "mode": {
            "type": "string",
            "enum": [
              "drive",
              "walk",
              "bicycle"
            ],
            "description": "Travel mode: drive, walk, or bicycle. Default: drive."
          },
          "time": {
            "type": "integer",
            "minimum": 60,
            "maximum": 7200,
            "description": "Reachability time in seconds (default 900 = 15 min, max 7200 = 2h). Mutually exclusive with distance."
          },
          "distance": {
            "type": "integer",
            "minimum": 100,
            "maximum": 100000,
            "description": "Reachability distance in meters (max 100km). Mutually exclusive with time."
          }
        },
        "required": [
          "lat",
          "lon"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "geo.ip.geolocation",
      "description": "Geolocate an IP address (IPv4/IPv6) to country, city, coordinates, and network info (Geoapify)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "IPv4 or IPv6 address to geolocate (e.g. \"8.8.8.8\", \"2001:4860:4860::8888\").",
            "minLength": 7,
            "maxLength": 45
          }
        },
        "required": [
          "ip"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.website.setup",
      "description": "Register a website for AI marketing. Call with domain + target_url. If DNS is not configured, returns DNS_NOT_VERIFIED with exact CNAME record instructions \u2014 relay to user: reference.{domain} \u2192 cname.aipush.app. After user creates DNS record, call again. On success: client registered, MIP analysis starts automatically, SSL provisioning begins. Poll website_status until mip_status='ready' and cf_hostname_status='active', then use generate_page. Idempotent (AIPush)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "website_domain": {
            "type": "string",
            "description": "Domain of the website to register (e.g. \"example.com\", \"myhotel.com\"). Must have a CNAME record: reference.{domain} \u2192 cname.aipush.app",
            "minLength": 3,
            "maxLength": 253
          },
          "target_url": {
            "type": "string",
            "description": "Target conversion URL \u2014 the single page all generated content will link to (e.g. \"https://example.com/book\", \"https://myhotel.com/reserve\"). Must be on the same domain.",
            "maxLength": 2048
          }
        },
        "required": [
          "website_domain",
          "target_url"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.website.status",
      "description": "Poll website readiness after setup_website. Returns billing_status, mip_status ('empty'|'pending'|'ready'), cf_hostname_status, cf_ssl_status, pages_total. Gate your workflow: wait for mip_status='ready' AND cf_hostname_status='active' before calling generate_page. Safe to poll repeatedly (AIPush)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "website_domain": {
            "type": "string",
            "description": "Domain to check status for (e.g. \"example.com\").",
            "minLength": 3,
            "maxLength": 253
          }
        },
        "required": [
          "website_domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.pages.generate",
      "description": "Requires mip_status='ready' and cf_hostname_status='active' (check website_status first). Generates one AI-optimized HTML page structured for AI assistant answer compilation (ChatGPT, Perplexity, Gemini). Page includes decision question, short answer with CTA, comparison, pricing, FAQ. Published at reference.{domain}/{slug}. Optional keyword parameter targets specific search intent (AIPush)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "website_domain": {
            "type": "string",
            "description": "Domain of the website to generate a page for. Must be set up first via aipush.setup_website.",
            "minLength": 3,
            "maxLength": 253
          },
          "keyword": {
            "type": "string",
            "minLength": 2,
            "maxLength": 200,
            "description": "Target keyword or topic for the page (e.g. \"best hotels in Bangkok\", \"affordable dentist near me\"). If omitted, the system picks from the semantic coverage grid."
          }
        },
        "required": [
          "website_domain"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.pages.list",
      "description": "List all published AI marketing pages for a website with URLs, titles, and publish dates (AIPush)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "website_domain": {
            "type": "string",
            "description": "Domain to list pages for (e.g. \"example.com\").",
            "minLength": 3,
            "maxLength": 253
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of pages to return (default 20, max 100)."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of pages to skip for pagination (default 0)."
          }
        },
        "required": [
          "website_domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.pages.content",
      "description": "Get full HTML content and metadata of a specific generated page by slug (AIPush)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "website_domain": {
            "type": "string",
            "description": "Domain the page belongs to (e.g. \"example.com\").",
            "minLength": 3,
            "maxLength": 253
          },
          "slug": {
            "type": "string",
            "description": "Page slug identifier (e.g. \"best-hotels-bangkok-2026\"). Returned by aipush.list_pages or aipush.generate_page.",
            "minLength": 1,
            "maxLength": 200
          }
        },
        "required": [
          "website_domain",
          "slug"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.analysis.profile",
      "description": "Get MIP business analysis results \u2014 business name, category, location, competitors, value propositions, and market surface data (AIPush)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "website_domain": {
            "type": "string",
            "description": "Domain to get the MIP business analysis for. Must have completed setup (mip_status = \"ready\").",
            "minLength": 3,
            "maxLength": 253
          }
        },
        "required": [
          "website_domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.analysis.visibility",
      "description": "Test whether AI assistants (ChatGPT, Perplexity, Gemini) know about and recommend a brand \u2014 returns per-model visibility scores (AIPush)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "website_domain": {
            "type": "string",
            "description": "Domain to check AI visibility for (e.g. \"example.com\"). Tests whether AI assistants know about and recommend this brand.",
            "minLength": 3,
            "maxLength": 253
          }
        },
        "required": [
          "website_domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.market.report",
      "description": "Start a full AI market intelligence report for any website. Provide a URL (e.g. \"https://stripe.com\") \u2014 the system crawls the site, extracts value propositions and services, identifies competitors, scores them, finds keyword gaps and market opportunities. Returns report_id \u2014 poll with aipush.market_report_status. Takes ~2 minutes. Cost: $29.99 (AIPush MIP)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target_url": {
            "type": "string",
            "description": "Website URL to analyze (e.g. \"https://stripe.com\"). The system crawls the site, extracts value propositions, finds competitors, and builds a full market intelligence report with competitive scoring, keyword gaps, and market opportunities. Takes ~2 minutes."
          }
        },
        "required": [
          "target_url"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "aipush.market.report_status",
      "description": "Poll the status of a market intelligence report. Returns \"running\" with current step (crawling/ai_analysis), or \"completed\" with full profile_json containing competitors (scored), keywords, market surface, and evidence. Free to poll (AIPush MIP)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "report_id": {
            "type": "string",
            "description": "Report ID in UUID format (e.g. \"ed90f49c-15d8-46ee-9799-c6a8d468f6ba\") \u2014 returned by aipush.market_report. Poll until status = \"completed\" to get full profile_json with competitors, keywords, and market analysis."
          }
        },
        "required": [
          "report_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "diffbot.products.extract",
      "description": "Extract structured product data from any e-commerce URL \u2014 title, price, brand, specs, images, reviews. Works on any retailer without custom integration (Diffbot)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Product page URL to extract data from (any e-commerce site)"
          },
          "discussion": {
            "type": "boolean",
            "description": "Include product reviews and comments (default false)"
          },
          "timeout": {
            "type": "integer",
            "minimum": 5000,
            "maximum": 30000,
            "description": "Request timeout in milliseconds (5000-30000, default 15000)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "diffbot.pages.analyze",
      "description": "Auto-detect page type (product, article, image, video) and extract structured data from any URL using AI (Diffbot)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Web page URL to auto-detect type and extract structured data"
          },
          "mode": {
            "type": "string",
            "enum": [
              "product",
              "article",
              "image",
              "discussion",
              "video"
            ],
            "description": "Force extraction mode instead of auto-detection"
          },
          "fallback": {
            "type": "string",
            "enum": [
              "article",
              "product"
            ],
            "description": "Fallback extraction type if auto-detection fails"
          },
          "timeout": {
            "type": "integer",
            "minimum": 5000,
            "maximum": 30000,
            "description": "Request timeout in milliseconds (5000-30000, default 15000)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "diffbot.articles.extract",
      "description": "Extract article text, author, date, tags, sentiment, and images from any blog or news URL with multi-page support (Diffbot)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Article or blog post URL to extract text, author, and metadata"
          },
          "paging": {
            "type": "boolean",
            "description": "Follow multi-page articles and concatenate text (default true)"
          },
          "maxTags": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum number of topic tags to return (1-50, default 10)"
          },
          "timeout": {
            "type": "integer",
            "minimum": 5000,
            "maximum": 30000,
            "description": "Request timeout in milliseconds (5000-30000, default 15000)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "diffbot.knowledge.search",
      "description": "Search Diffbot Knowledge Graph for products, organizations, people, and places \u2014 billions of structured entities from the web (Diffbot)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Diffbot Knowledge Graph query (DQL) \u2014 e.g. \"type:Product title:iPhone\""
          },
          "type": {
            "type": "string",
            "enum": [
              "Product",
              "Article",
              "Organization",
              "Person",
              "Place",
              "Event"
            ],
            "description": "Filter results by entity type in Knowledge Graph"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results to return (1-50, default 25)"
          },
          "from": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for results (default 0)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "whois.domain.lookup",
      "description": "Get WHOIS registration data for any domain \u2014 registrar, creation/expiry dates, nameservers, registrant contact, status across 374M+ domains and 7,596 TLDs (WhoisXML)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name, IPv4, IPv6, or email address for WHOIS lookup (e.g. \"google.com\", \"8.8.8.8\")"
          },
          "prefer_fresh": {
            "type": "boolean",
            "description": "Get latest WHOIS record even if incomplete (default false)"
          },
          "include_ips": {
            "type": "boolean",
            "description": "Include resolved IP addresses for the domain (default false)"
          },
          "check_availability": {
            "type": "boolean",
            "description": "Also check domain availability status (default false)"
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "whois.dns.lookup",
      "description": "Get DNS records for a domain \u2014 A, AAAA, MX, NS, SOA, TXT, CNAME, SRV, CAA records with TTL and raw data (WhoisXML)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to look up DNS records for (e.g. \"google.com\")"
          },
          "record_type": {
            "type": "string",
            "enum": [
              "A",
              "AAAA",
              "MX",
              "NS",
              "SOA",
              "TXT",
              "CNAME",
              "SRV",
              "CAA",
              "_all"
            ],
            "description": "DNS record type to query: A, AAAA, MX, NS, SOA, TXT, CNAME, SRV, CAA, or _all (default _all)"
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "whois.domain.availability",
      "description": "Check if a domain name is available for registration \u2014 fast DNS check or thorough DNS+WHOIS verification (WhoisXML)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to check availability for (e.g. \"example.com\", \"mybrand.io\")"
          },
          "mode": {
            "type": "string",
            "enum": [
              "DNS_ONLY",
              "DNS_AND_WHOIS"
            ],
            "description": "Check mode: DNS_ONLY is fast, DNS_AND_WHOIS is more accurate (default DNS_AND_WHOIS)"
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "whois.domain.reverse",
      "description": "Find all domains registered by a person, company, or email \u2014 reverse WHOIS lookup for OSINT and brand monitoring (WhoisXML)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Search keyword to find domains \u2014 registrant name, email, company, or address (e.g. \"John Smith\", \"acme.com\")"
          }
        },
        "required": [
          "keyword"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "spoonacular.recipes.search",
      "description": "Search 365K+ recipes with dietary filters (vegan, keto, gluten-free), cuisine, meal type, and max prep time \u2014 includes nutrition data per result (Spoonacular)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for recipes (e.g. \"pasta\", \"chicken soup\")"
          },
          "cuisine": {
            "type": "string",
            "description": "Cuisine filter \u2014 comma-separated (e.g. \"italian\", \"mexican,chinese\")"
          },
          "diet": {
            "type": "string",
            "description": "Diet filter: gluten free, ketogenic, vegetarian, lacto-vegetarian, ovo-vegetarian, vegan, pescetarian, paleo, primal, whole30"
          },
          "intolerances": {
            "type": "string",
            "description": "Intolerances filter \u2014 comma-separated (e.g. \"dairy,gluten,peanut,shellfish\")"
          },
          "type": {
            "type": "string",
            "description": "Meal type: main course, side dish, dessert, appetizer, salad, bread, breakfast, soup, beverage, sauce, marinade, fingerfood, snack, drink"
          },
          "max_ready_time": {
            "type": "integer",
            "description": "Maximum preparation time in minutes"
          },
          "number": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results to return (default 10, max 100)"
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Offset for pagination (default 0)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "spoonacular.recipes.details",
      "description": "Get full recipe details by ID \u2014 ingredients, step-by-step instructions, nutrition facts, dietary labels, prep time, servings, and price per serving (Spoonacular)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Spoonacular recipe ID (from recipe_search or by_ingredients results)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "spoonacular.recipes.by_ingredients",
      "description": "Find recipes using ingredients you have on hand \u2014 shows used/missing ingredients count, ranked by ingredient match (Spoonacular)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ingredients": {
            "type": "string",
            "description": "Comma-separated list of ingredients you have (e.g. \"chicken,rice,tomato\")"
          },
          "number": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results to return (default 10, max 100)"
          },
          "ranking": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2,
            "description": "Ranking mode: 1 = maximize used ingredients, 2 = minimize missing ingredients (default 1)"
          },
          "ignore_pantry": {
            "type": "boolean",
            "description": "Ignore common pantry items like water, flour, salt (default false)"
          }
        },
        "required": [
          "ingredients"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "spoonacular.ingredients.search",
      "description": "Search 86K+ food ingredients with nutrition data \u2014 sortable by calories, protein, fat, or carbs (Spoonacular)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Ingredient search query (e.g. \"banana\", \"olive oil\", \"chicken breast\")"
          },
          "number": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results to return (default 10, max 100)"
          },
          "sort": {
            "type": "string",
            "enum": [
              "calories",
              "protein",
              "fat",
              "carbs"
            ],
            "description": "Sort results by nutrient value"
          },
          "sort_direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort direction (default asc)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "spoonacular.recipes.analyze",
      "description": "Analyze a recipe by title and ingredient list \u2014 returns full nutrition breakdown, dietary labels, and caloric distribution (Spoonacular)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Recipe title (e.g. \"Spaghetti Carbonara\")"
          },
          "ingredients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of ingredient strings (e.g. [\"200g spaghetti\", \"100g guanciale\", \"2 eggs\"])"
          },
          "instructions": {
            "type": "string",
            "description": "Cooking instructions as plain text"
          },
          "servings": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of servings (default 1)"
          }
        },
        "required": [
          "title",
          "ingredients"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "nasa.astronomy.apod",
      "description": "Get NASA Astronomy Picture of the Day \u2014 daily curated space image or video with expert explanation, dating back to 1995 (NASA APOD)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Date in YYYY-MM-DD format (default: today). Returns the Astronomy Picture of the Day for that date"
          },
          "thumbs": {
            "type": "boolean",
            "description": "Return thumbnail URL for video APOD entries (default false)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "nasa.asteroids.feed",
      "description": "Get near-Earth asteroid close approaches for a date range \u2014 size estimates, hazard classification, velocity, miss distance (NASA NeoWs)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "start_date": {
            "type": "string",
            "description": "Start date in YYYY-MM-DD format for asteroid feed (max 7-day span)"
          },
          "end_date": {
            "type": "string",
            "description": "End date in YYYY-MM-DD format (default: start_date + 7 days)"
          }
        },
        "required": [
          "start_date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "nasa.space_weather.flares",
      "description": "Get solar flare events from the Space Weather Database \u2014 class, peak time, source region, linked CMEs and geomagnetic storms (NASA DONKI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "start_date": {
            "type": "string",
            "description": "Start date in YYYY-MM-DD format (default: 30 days ago)"
          },
          "end_date": {
            "type": "string",
            "description": "End date in YYYY-MM-DD format (default: today)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "nasa.earth.epic",
      "description": "Get full-disc Earth images from the DSCOVR satellite EPIC camera \u2014 daily natural color photos from Lagrange point L1, 1.5M km away (NASA EPIC)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Date in YYYY-MM-DD format (default: most recent available). Returns DSCOVR EPIC Earth images for that date"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "nasa.media.search",
      "description": "Search NASA Image and Video Library \u2014 140K+ images, videos, and audio from missions, telescopes, and events with metadata and download links (NASA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query for NASA images and videos (e.g. \"mars rover\", \"apollo 11\", \"nebula\")"
          },
          "media_type": {
            "type": "string",
            "enum": [
              "image",
              "video",
              "audio"
            ],
            "description": "Filter by media type (default: all types)"
          },
          "year_start": {
            "type": "integer",
            "description": "Filter results to year >= year_start"
          },
          "year_end": {
            "type": "integer",
            "description": "Filter results to year <= year_end"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination (default 1)"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jpl.asteroids.approaches",
      "description": "Get upcoming and past asteroid close approaches to Earth \u2014 distance, velocity, size, sorted by date or distance (NASA JPL)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date_min": {
            "type": "string",
            "description": "Minimum close-approach date in YYYY-MM-DD format (default: now)"
          },
          "date_max": {
            "type": "string",
            "description": "Maximum close-approach date in YYYY-MM-DD format (default: +60 days)"
          },
          "dist_max": {
            "type": "string",
            "description": "Maximum approach distance in AU (e.g. \"0.05\" = ~7.5M km). Default: 0.05"
          },
          "h_max": {
            "type": "number",
            "description": "Maximum absolute magnitude H (smaller H = larger object). Filter for brighter/bigger asteroids"
          },
          "sort": {
            "type": "string",
            "enum": [
              "date",
              "dist",
              "dist-min",
              "h",
              "v-inf",
              "v-rel"
            ],
            "description": "Sort field (default: date)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of results (default 20, max 100)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jpl.events.fireballs",
      "description": "Get reported fireball (bolide) events \u2014 atmospheric entry energy, velocity, altitude, geographic coordinates (NASA JPL CNEOS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date_min": {
            "type": "string",
            "description": "Minimum event date in YYYY-MM-DD format"
          },
          "date_max": {
            "type": "string",
            "description": "Maximum event date in YYYY-MM-DD format"
          },
          "energy_min": {
            "type": "number",
            "description": "Minimum radiated energy in Joules (e.g. 1e10)"
          },
          "sort": {
            "type": "string",
            "enum": [
              "date",
              "energy",
              "impact-e",
              "vel",
              "alt"
            ],
            "description": "Sort field (default: date descending)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of results (default 20, max 100)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jpl.bodies.lookup",
      "description": "Look up asteroid or comet data by name/designation \u2014 orbital elements, physical parameters, discovery info, hazard classification (NASA JPL SBDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sstr": {
            "type": "string",
            "description": "Search string \u2014 asteroid/comet name or designation (e.g. \"Apophis\", \"2024 YR4\", \"Halley\")"
          },
          "des": {
            "type": "string",
            "description": "SPK-ID or designation for exact lookup (e.g. \"99942\" for Apophis)"
          },
          "phys_par": {
            "type": "boolean",
            "description": "Include physical parameters like diameter, albedo, rotation period (default true)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jpl.asteroids.sentry",
      "description": "Get asteroid impact risk assessments from the Sentry monitoring system \u2014 impact probability, Palermo/Torino scale, size estimates (NASA JPL)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "des": {
            "type": "string",
            "description": "Asteroid designation to check specific object (e.g. \"99942\" for Apophis). Omit for full list"
          },
          "h_max": {
            "type": "number",
            "description": "Maximum absolute magnitude H \u2014 filter for larger objects"
          },
          "ps_min": {
            "type": "number",
            "description": "Minimum Palermo Scale value (e.g. -3). Higher = more concerning"
          },
          "ip_min": {
            "type": "number",
            "description": "Minimum impact probability (e.g. 1e-7)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rawg.games.search",
      "description": "Search 800K+ video games \u2014 filter by genre, platform, release date, Metacritic score, with ratings, screenshots, and store links (RAWG)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Search query for games (e.g. \"The Witcher\", \"Red Dead Redemption\")"
          },
          "genres": {
            "type": "string",
            "description": "Filter by genre IDs \u2014 comma-separated (e.g. \"4\" for action, \"5\" for RPG, \"4,5\" for both)"
          },
          "platforms": {
            "type": "string",
            "description": "Filter by platform IDs \u2014 comma-separated (e.g. \"4\" for PC, \"187\" for PS5, \"186\" for Xbox Series)"
          },
          "dates": {
            "type": "string",
            "description": "Filter by release date range YYYY-MM-DD,YYYY-MM-DD (e.g. \"2024-01-01,2024-12-31\")"
          },
          "ordering": {
            "type": "string",
            "description": "Sort field: name, released, added, created, updated, rating, metacritic. Prefix with \"-\" for descending (e.g. \"-rating\")"
          },
          "metacritic": {
            "type": "string",
            "description": "Filter by Metacritic score range \"min,max\" (e.g. \"80,100\" for highly rated)"
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 40,
            "description": "Number of results per page (default 20, max 40)"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination (default 1)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rawg.games.details",
      "description": "Get full game details by ID or slug \u2014 description, platforms, genres, developers, publishers, ratings, Metacritic score, system requirements (RAWG)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "RAWG game ID (numeric) or slug (e.g. \"grand-theft-auto-v\", 3498)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rawg.games.screenshots",
      "description": "Get screenshot images for a game \u2014 full resolution URLs with dimensions (RAWG)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "RAWG game ID or slug"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)"
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 40,
            "description": "Results per page (default 20, max 40)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rawg.games.stores",
      "description": "Get purchase/download links for a game across stores \u2014 Steam, PlayStation Store, Xbox, Epic, GOG, Nintendo (RAWG)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "RAWG game ID or slug"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rawg.games.series",
      "description": "Get all games in the same series/franchise \u2014 sequels, prequels, and spin-offs with ratings and release dates (RAWG)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "RAWG game ID or slug"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)"
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 40,
            "description": "Results per page (default 20, max 40)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "igdb.games.search",
      "description": "Search 280K+ games in IGDB (Twitch) \u2014 rich metadata with genres, platforms, ratings, cover art, and release dates",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for games (e.g. \"Cyberpunk 2077\", \"The Legend of Zelda\", \"Elden Ring\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum number of results to return (default 10, max 50)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "igdb.games.details",
      "description": "Get full game details by IGDB ID \u2014 storyline, genres, platforms, developers, publishers, themes, game modes, similar games, and websites",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "IGDB game ID (numeric, e.g. 1877 for Cyberpunk 2077)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "igdb.companies.info",
      "description": "Look up game companies by ID or search by name \u2014 description, country, developed/published game IDs, logos, and websites",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "IGDB company ID (numeric, e.g. 70 for Nintendo). Use either id or query."
          },
          "query": {
            "type": "string",
            "description": "Search query for company name (e.g. \"Valve\", \"CD Projekt\"). Use either id or query."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum number of results when searching by query (default 10, max 50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "igdb.platforms.info",
      "description": "Look up gaming platforms by ID or search by name \u2014 abbreviation, generation, platform family, versions, and summary",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "IGDB platform ID (numeric, e.g. 48 for PlayStation 4, 6 for PC). Use either id or query."
          },
          "query": {
            "type": "string",
            "description": "Search query for platform name (e.g. \"PlayStation\", \"Nintendo Switch\"). Use either id or query."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum number of results when searching by query (default 10, max 50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "igdb.games.media",
      "description": "Get cover art, screenshots, and video trailers for a game \u2014 image URLs with dimensions and YouTube video IDs",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "IGDB game ID (numeric, e.g. 1877 for Cyberpunk 2077)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "qrserver.qr.generate",
      "description": "Generate a QR code image URL from text or URL \u2014 customizable size, color, background, format (PNG/SVG), error correction level. Returns direct image URL (goqr.me)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "string",
            "description": "Text or URL to encode into a QR code (required)"
          },
          "size": {
            "type": "string",
            "description": "Image size in WxH pixels, e.g. \"200x200\", \"400x400\" (default: \"200x200\")"
          },
          "format": {
            "type": "string",
            "enum": [
              "png",
              "svg"
            ],
            "description": "Image format: \"png\" or \"svg\" (default: \"png\")"
          },
          "color": {
            "type": "string",
            "description": "Foreground color as 6-digit hex without #, e.g. \"000000\" for black (default: \"000000\")"
          },
          "bgcolor": {
            "type": "string",
            "description": "Background color as 6-digit hex without #, e.g. \"ffffff\" for white (default: \"ffffff\")"
          },
          "margin": {
            "type": "integer",
            "minimum": 0,
            "maximum": 50,
            "description": "Quiet zone margin in modules around the QR code (default: 1)"
          },
          "ecc": {
            "type": "string",
            "enum": [
              "L",
              "M",
              "Q",
              "H"
            ],
            "description": "Error correction level: L (7%), M (15%), Q (25%), H (30%) \u2014 higher allows more damage tolerance (default: \"L\")"
          }
        },
        "required": [
          "data"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "qrserver.qr.read",
      "description": "Decode a QR code from an image URL \u2014 extracts the encoded text or URL from any QR code image (goqr.me)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fileurl": {
            "type": "string",
            "description": "URL of an image containing a QR code to decode (required)"
          }
        },
        "required": [
          "fileurl"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "upc.products.lookup",
      "description": "Look up a product by UPC, EAN, GTIN, or ISBN barcode \u2014 returns title, brand, images, dimensions, weight, category, price range, and marketplace offers (UPCitemdb)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "upc": {
            "type": "string",
            "description": "UPC, EAN, GTIN, or ISBN barcode number to look up (e.g. \"012345678905\", \"9780140449136\")"
          }
        },
        "required": [
          "upc"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "upc.products.search",
      "description": "Search products by name, brand, or description \u2014 returns matching items with UPC codes, images, categories, and price ranges (UPCitemdb)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Full-text search query for product name, brand, or description (e.g. \"iPhone 16\", \"Sony headphones\")"
          },
          "match_mode": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1,
            "description": "Match mode: 0 = broad match (default), 1 = exact match"
          },
          "type": {
            "type": "string",
            "enum": [
              "product",
              "brand",
              "category"
            ],
            "description": "Search type: \"product\" (default), \"brand\", or \"category\""
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for results (default: 0)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ip.intelligence.lookup",
      "description": "Look up any IP address \u2014 geolocation (country, city, coordinates), 9 security flags (VPN, Tor, proxy, datacenter, abuser, crawler, bogon, mobile, satellite), ASN, company info, abuse contacts (ipapi.is)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "IPv4 or IPv6 address to look up (e.g. \"8.8.8.8\", \"2001:4860:4860::8888\")"
          }
        },
        "required": [
          "ip"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ip.intelligence.bulk",
      "description": "Look up multiple IP addresses in one call (max 100) \u2014 country, city, VPN/Tor/proxy flags, ASN, and organization for each IP (ipapi.is)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ips": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Array of IPv4/IPv6 addresses to look up in bulk (max 100 per request)",
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "ips"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "earthquake.events.search",
      "description": "Search global earthquakes by time, location, magnitude, and depth \u2014 returns magnitude, coordinates, tsunami flags, PAGER alerts, and felt reports. 100+ years of data, updated every minute (USGS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "starttime": {
            "type": "string",
            "description": "Start date in ISO 8601 format, e.g. \"2026-01-01\" or \"2026-01-01T00:00:00\""
          },
          "endtime": {
            "type": "string",
            "description": "End date in ISO 8601 format (default: now)"
          },
          "minmagnitude": {
            "type": "number",
            "description": "Minimum magnitude on Richter scale (e.g. 4.5 for significant earthquakes)"
          },
          "maxmagnitude": {
            "type": "number",
            "description": "Maximum magnitude on Richter scale"
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Center latitude for radius search (-90 to 90)"
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Center longitude for radius search (-180 to 180)"
          },
          "maxradiuskm": {
            "type": "number",
            "minimum": 0,
            "maximum": 20001.6,
            "description": "Search radius in kilometers from lat/lon center point (max ~20,000 km)"
          },
          "mindepth": {
            "type": "number",
            "description": "Minimum depth in kilometers (negative = above sea level)"
          },
          "maxdepth": {
            "type": "number",
            "description": "Maximum depth in kilometers (max 1000)"
          },
          "orderby": {
            "type": "string",
            "enum": [
              "time",
              "time-asc",
              "magnitude",
              "magnitude-asc"
            ],
            "description": "Sort order: \"time\" (newest first, default), \"time-asc\", \"magnitude\" (largest first), \"magnitude-asc\""
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Maximum number of results (default 20, max 200)"
          },
          "alertlevel": {
            "type": "string",
            "enum": [
              "green",
              "yellow",
              "orange",
              "red"
            ],
            "description": "PAGER alert level filter: green (no damage), yellow, orange, red (significant damage/casualties)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "earthquake.events.feed",
      "description": "Get real-time earthquake feed by magnitude threshold (significant/4.5+/2.5+/1.0+/all) and time window (hour/day/week/month) \u2014 updated every minute (USGS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "magnitude": {
            "type": "string",
            "enum": [
              "significant",
              "4.5",
              "2.5",
              "1.0",
              "all"
            ],
            "description": "Magnitude threshold: \"significant\", \"4.5\", \"2.5\", \"1.0\", or \"all\" (default: \"4.5\")"
          },
          "timeframe": {
            "type": "string",
            "enum": [
              "hour",
              "day",
              "week",
              "month"
            ],
            "description": "Time window: \"hour\", \"day\" (default), \"week\", or \"month\""
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "earthquake.events.count",
      "description": "Count earthquakes matching search criteria without returning full data \u2014 useful for statistics and monitoring thresholds (USGS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "starttime": {
            "type": "string",
            "description": "Start date in ISO 8601 format, e.g. \"2026-01-01\""
          },
          "endtime": {
            "type": "string",
            "description": "End date in ISO 8601 format (default: now)"
          },
          "minmagnitude": {
            "type": "number",
            "description": "Minimum magnitude on Richter scale"
          },
          "maxmagnitude": {
            "type": "number",
            "description": "Maximum magnitude on Richter scale"
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Center latitude for radius search"
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Center longitude for radius search"
          },
          "maxradiuskm": {
            "type": "number",
            "minimum": 0,
            "maximum": 20001.6,
            "description": "Search radius in kilometers from lat/lon center"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "anime.titles.search",
      "description": "Search 28K+ anime titles by name, genre, type, status, and rating \u2014 scores, episodes, studios, seasons (MyAnimeList via Jikan)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for anime title (e.g. \"Naruto\", \"Attack on Titan\")"
          },
          "type": {
            "type": "string",
            "enum": [
              "tv",
              "movie",
              "ova",
              "special",
              "ona",
              "music",
              "cm",
              "pv",
              "tv_special"
            ],
            "description": "Anime type filter: tv, movie, ova, special, ona, music"
          },
          "status": {
            "type": "string",
            "enum": [
              "airing",
              "complete",
              "upcoming"
            ],
            "description": "Airing status: \"airing\", \"complete\", or \"upcoming\""
          },
          "rating": {
            "type": "string",
            "enum": [
              "g",
              "pg",
              "pg13",
              "r17",
              "r",
              "rx"
            ],
            "description": "Age rating: g (all ages), pg, pg13, r17 (violence), r (mild nudity), rx (hentai)"
          },
          "genre": {
            "type": "integer",
            "description": "Genre ID filter (e.g. 1=Action, 2=Adventure, 4=Comedy, 8=Drama, 10=Fantasy, 22=Romance)"
          },
          "order_by": {
            "type": "string",
            "enum": [
              "title",
              "start_date",
              "end_date",
              "episodes",
              "score",
              "rank",
              "popularity",
              "favorites",
              "members"
            ],
            "description": "Sort field (default: relevance)"
          },
          "sort": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort direction: \"asc\" or \"desc\" (default: desc)"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination (default: 1)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Results per page (default: 10, max: 25)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "anime.titles.details",
      "description": "Get full anime details by MAL ID \u2014 synopsis, score, rank, episodes, studios, genres, themes, demographics, rating (MyAnimeList via Jikan)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "MyAnimeList ID of the anime (e.g. 1 for Cowboy Bebop, 20 for Naruto)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "anime.manga.details",
      "description": "Get full manga details by MAL ID \u2014 synopsis, chapters, volumes, authors, score, rank, genres (MyAnimeList via Jikan)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "MyAnimeList ID of the manga (e.g. 13 for One Piece, 2 for Berserk)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "anime.titles.characters",
      "description": "Get character cast and Japanese voice actors for an anime \u2014 names, roles (main/supporting), images (MyAnimeList via Jikan)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "MyAnimeList ID of the anime to get character cast for"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "anime.titles.top",
      "description": "Get top-ranked anime by score \u2014 filter by type (TV/movie/OVA), status (airing/upcoming), or popularity (MyAnimeList via Jikan)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "tv",
              "movie",
              "ova",
              "special",
              "ona",
              "music",
              "cm",
              "pv",
              "tv_special"
            ],
            "description": "Filter top list by anime type (default: all types)"
          },
          "filter": {
            "type": "string",
            "enum": [
              "airing",
              "upcoming",
              "bypopularity",
              "favorite"
            ],
            "description": "Filter: \"airing\" (currently), \"upcoming\", \"bypopularity\", or \"favorite\""
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default: 1)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Results per page (default: 10, max: 25)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.editions.isbn",
      "description": "Look up a book by ISBN-10 or ISBN-13 \u2014 title, author, publisher, pages, cover image, subjects. 40M+ books (Open Library / Internet Archive)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "isbn": {
            "type": "string",
            "description": "ISBN-10 or ISBN-13 to look up (e.g. \"9780451524935\" for 1984, \"0140449132\" for The Republic)"
          }
        },
        "required": [
          "isbn"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.catalog.search",
      "description": "Search 40M+ books by title, author, subject, or ISBN \u2014 ratings, cover images, edition counts, publish year (Open Library / Internet Archive)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "General search query across title, author, and full text (e.g. \"dune frank herbert\")"
          },
          "title": {
            "type": "string",
            "description": "Search by book title only (e.g. \"The Great Gatsby\")"
          },
          "author": {
            "type": "string",
            "description": "Search by author name (e.g. \"Tolkien\")"
          },
          "subject": {
            "type": "string",
            "description": "Search by subject/genre (e.g. \"science fiction\", \"history\")"
          },
          "isbn": {
            "type": "string",
            "description": "Search by ISBN number"
          },
          "sort": {
            "type": "string",
            "enum": [
              "new",
              "old",
              "rating",
              "readinglog",
              "want_to_read",
              "currently_reading",
              "already_read"
            ],
            "description": "Sort order: \"new\" (newest first), \"old\" (oldest), \"rating\" (highest rated)"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination (default: 1)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Results per page (default: 10, max: 100)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.works.details",
      "description": "Get consolidated work metadata across all editions by Open Library Work ID \u2014 description, subjects, authors, cover, first publish date (Open Library)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "olid": {
            "type": "string",
            "description": "Open Library Work ID, e.g. \"OL45804W\" for Lord of the Rings. Get from search results key field"
          }
        },
        "required": [
          "olid"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.authors.details",
      "description": "Get author profile by Open Library Author ID \u2014 biography, birth/death dates, photo, Wikipedia link (Open Library / Internet Archive)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "olid": {
            "type": "string",
            "description": "Open Library Author ID, e.g. \"OL23919A\" for J.R.R. Tolkien. Get from search or work author keys"
          }
        },
        "required": [
          "olid"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "email.validation.check",
      "description": "Validate an email address \u2014 checks deliverability, detects disposable/spam trap/abuse/catch-all addresses, MX records, SMTP provider, domain age. 99.6% accuracy (ZeroBounce)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address to validate (e.g. \"user@example.com\")"
          },
          "ip_address": {
            "type": "string",
            "description": "IP address of the email owner for additional geo/fraud scoring (optional)"
          }
        },
        "required": [
          "email"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "web.url.shorten",
      "description": "Create a short URL from any long URL. Optional custom slug. Returns short link at apibase.short.gy. 1,000 free links/month (Short.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Original URL to shorten (e.g. \"https://example.com/very/long/path\")"
          },
          "title": {
            "type": "string",
            "description": "Optional title/label for the short link"
          },
          "slug": {
            "type": "string",
            "description": "Custom short path (e.g. \"my-link\" \u2192 apibase.short.gy/my-link). Auto-generated if omitted."
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "web.url.stats",
      "description": "Get click statistics and metadata for a short URL by its path (Short.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Short link path (e.g. \"imV5of\" from apibase.short.gy/imV5of)"
          }
        },
        "required": [
          "path"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "currency.exchange.latest",
      "description": "Latest exchange rates for 160+ currencies against any base currency. Updated daily on free tier. Returns all rates in one call (ExchangeRate-API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "base": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Base currency code (e.g. \"USD\", \"EUR\", \"GBP\"). Default: USD. Returns rates for 160+ currencies."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "currency.exchange.convert",
      "description": "Convert amount between any two currencies \u2014 160+ currencies supported. Returns conversion rate and result (ExchangeRate-API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Source currency code (e.g. \"USD\")",
            "minLength": 3,
            "maxLength": 3
          },
          "to": {
            "type": "string",
            "description": "Target currency code (e.g. \"EUR\")",
            "minLength": 3,
            "maxLength": 3
          },
          "amount": {
            "type": "number",
            "description": "Amount to convert (default 1)"
          }
        },
        "required": [
          "from",
          "to"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "calendar.holidays.premium",
      "description": "Public holidays for 230+ countries \u2014 national, local, religious, observance types. Filter by month, day, type. 100+ years coverage. More countries than Nager.Date (Calendarific)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\", \"JP\", \"IN\", \"BR\")",
            "minLength": 2,
            "maxLength": 2
          },
          "year": {
            "type": "integer",
            "minimum": 2000,
            "maximum": 2049,
            "description": "Year (default 2026)"
          },
          "month": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12,
            "description": "Filter by month (1-12)"
          },
          "day": {
            "type": "integer",
            "minimum": 1,
            "maximum": 31,
            "description": "Filter by day (1-31)"
          },
          "type": {
            "type": "string",
            "enum": [
              "national",
              "local",
              "religious",
              "observance"
            ],
            "description": "Filter by holiday type"
          }
        },
        "required": [
          "country"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.alerts.active",
      "description": "Active severe weather alerts for the US \u2014 tornado warnings, flood watches, heat advisories, winter storms. Filter by state, severity, event type. US Government open data, unlimited, no auth (NWS/NOAA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "area": {
            "type": "string",
            "description": "US state code (e.g. \"CA\", \"TX\", \"NY\") or marine zone"
          },
          "severity": {
            "type": "string",
            "enum": [
              "Extreme",
              "Severe",
              "Moderate",
              "Minor",
              "Unknown"
            ],
            "description": "Alert severity filter"
          },
          "event": {
            "type": "string",
            "description": "Event type filter (e.g. \"Tornado Warning\", \"Flood Watch\", \"Heat Advisory\")"
          },
          "urgency": {
            "type": "string",
            "enum": [
              "Immediate",
              "Expected",
              "Future",
              "Past",
              "Unknown"
            ],
            "description": "Urgency filter"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max alerts to return (default 10, max 50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.alerts.by_state",
      "description": "Active weather alerts for a specific US state \u2014 all warnings, watches, and advisories. Returns event, severity, urgency, description, area, timing (NWS/NOAA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "US state code (e.g. \"CA\", \"FL\", \"TX\")",
            "minLength": 2,
            "maxLength": 2
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max alerts (default 10, max 50)"
          }
        },
        "required": [
          "state"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "calendar.holidays.by_country",
      "description": "Public holidays for any country and year \u2014 100+ countries, national and regional holidays. Returns date, name (local + English), type. No auth, free, open source (Nager.Date)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\", \"JP\", \"BR\")",
            "minLength": 2,
            "maxLength": 2
          },
          "year": {
            "type": "integer",
            "minimum": 2000,
            "maximum": 2099,
            "description": "Year (default 2026). Supports 2000-2099."
          }
        },
        "required": [
          "country_code"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "calendar.holidays.next",
      "description": "Next upcoming public holidays for a country \u2014 useful for scheduling, availability checks, business day calculations. No auth (Nager.Date)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"FR\")",
            "minLength": 2,
            "maxLength": 2
          }
        },
        "required": [
          "country_code"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.vin.decode",
      "description": "Decode a 17-character VIN \u2014 make, model, year, body class, engine, fuel type, transmission, plant country. US Government open data, unlimited, no auth (NHTSA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "vin": {
            "type": "string",
            "description": "17-character Vehicle Identification Number (e.g. \"1HGCM82633A004352\")",
            "minLength": 17,
            "maxLength": 17
          }
        },
        "required": [
          "vin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.vin.models",
      "description": "List vehicle models for a make and/or year (e.g. Honda 2024). US Government data (NHTSA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "make": {
            "type": "string",
            "description": "Vehicle make (e.g. \"Honda\", \"Toyota\", \"Ford\")"
          },
          "year": {
            "type": "integer",
            "description": "Model year (e.g. 2024)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "world.country.search",
      "description": "Search country by name \u2014 population, area, capital, languages, currencies, timezones, flag, region, borders. 250+ countries. No auth, free (REST Countries)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Country name to search (e.g. \"United States\", \"Germany\", \"Japan\")",
            "minLength": 2
          }
        },
        "required": [
          "name"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "world.country.code",
      "description": "Get country details by ISO code (US, GB, DE, JP). Returns name, population, area, capital, currencies, languages, flag (REST Countries)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "ISO 3166-1 country code \u2014 alpha-2 (\"US\") or alpha-3 (\"USA\")",
            "minLength": 2,
            "maxLength": 3
          }
        },
        "required": [
          "code"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "food.product.barcode",
      "description": "Lookup food product by barcode (EAN/UPC) \u2014 name, brand, nutrition (calories, fat, carbs, protein per 100g), Nutri-Score, NOVA group, ingredients. 3M+ products (Open Food Facts)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "barcode": {
            "type": "string",
            "description": "Product barcode (EAN-13, UPC-A, etc.) e.g. \"3017620422003\" for Nutella",
            "minLength": 8,
            "maxLength": 13
          }
        },
        "required": [
          "barcode"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "food.product.search",
      "description": "Search food products by name \u2014 returns matching products with brand, barcode, Nutri-Score, image. 3M+ products worldwide (Open Food Facts)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Product name to search (e.g. \"nutella\", \"coca cola\", \"organic milk\")",
            "minLength": 2
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Results count (default 10, max 50)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "test.random.user",
      "description": "Generate realistic random user profiles \u2014 name, email, phone, address, age, gender, photo. Filter by nationality and gender. For testing and demo data (RandomUser.me)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of random users to generate (default 1, max 20)"
          },
          "nationality": {
            "type": "string",
            "description": "Nationality filter \u2014 comma-separated ISO codes (e.g. \"us\", \"gb,fr,de\")"
          },
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female"
            ],
            "description": "Gender filter"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "web.ssl.check",
      "description": "Check SSL/TLS certificate for any domain \u2014 validity, issuer, expiry date, days remaining, protocol, key size, HSTS status. No auth, free (ssl-checker.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to check SSL certificate for (e.g. \"google.com\", \"apibase.pro\"). Do not include https://.",
            "minLength": 3
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "events.global.search",
      "description": "Search global news articles across 65 languages from 300K+ sources worldwide. Filter by time, language, tone. Returns title, URL, domain, country. 100% free, no auth (GDELT Project)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query \u2014 keywords, phrases, or boolean (e.g. \"climate change\", \"AI regulation\"). Min 3 chars.",
            "minLength": 3
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 75,
            "description": "Number of articles (default 10, max 75)"
          },
          "timespan": {
            "type": "string",
            "description": "Time window: \"15min\", \"1h\", \"4h\", \"1d\", \"7d\", \"30d\", \"3m\" (default: all recent)"
          },
          "sort": {
            "type": "string",
            "enum": [
              "DateDesc",
              "DateAsc",
              "ToneDesc",
              "ToneAsc",
              "HybridRel"
            ],
            "description": "Sort order: DateDesc (newest), ToneDesc (most positive), HybridRel (relevance)"
          },
          "language": {
            "type": "string",
            "description": "Source language filter (e.g. \"english\", \"spanish\", \"chinese\")"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "events.global.timeline",
      "description": "Track mention volume of any topic over time \u2014 see when a keyword spikes in global news coverage. Up to 3 months of data (GDELT Project)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Query to track mention volume over time (e.g. \"Bitcoin\", \"artificial intelligence\")",
            "minLength": 3
          },
          "timespan": {
            "type": "string",
            "description": "Time window: \"1d\", \"7d\", \"30d\", \"3m\" (default: 3 months)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "earth.fires.detect",
      "description": "Active fire hotspots detected by NASA satellites (VIIRS, MODIS) \u2014 latitude, longitude, brightness, confidence, fire radiative power. Filter by bounding box and days. Near real-time updates (NASA FIRMS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "west": {
            "type": "number",
            "description": "Western longitude of bounding box (e.g. -125 for California)",
            "minimum": -180,
            "maximum": 180
          },
          "south": {
            "type": "number",
            "description": "Southern latitude of bounding box (e.g. 32)",
            "minimum": -90,
            "maximum": 90
          },
          "east": {
            "type": "number",
            "description": "Eastern longitude of bounding box (e.g. -114)",
            "minimum": -180,
            "maximum": 180
          },
          "north": {
            "type": "number",
            "description": "Northern latitude of bounding box (e.g. 42)",
            "minimum": -90,
            "maximum": 90
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "Number of days of data (1-5, default 1)"
          },
          "source": {
            "type": "string",
            "enum": [
              "VIIRS_SNPP_NRT",
              "VIIRS_NOAA20_NRT",
              "VIIRS_NOAA21_NRT",
              "MODIS_NRT"
            ],
            "description": "Satellite sensor: VIIRS_SNPP_NRT (default, highest resolution), MODIS_NRT (legacy)"
          }
        },
        "required": [
          "west",
          "south",
          "east",
          "north"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "time.worldclock.current",
      "description": "Get current date, time, and day of week for any IANA timezone. DST-aware. No auth, free, unlimited (TimeAPI.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "timezone": {
            "type": "string",
            "description": "IANA timezone name (e.g. \"America/New_York\", \"Europe/London\", \"Asia/Tokyo\", \"UTC\")"
          }
        },
        "required": [
          "timezone"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "time.worldclock.convert",
      "description": "Convert date/time from one timezone to another. DST-aware. 597 IANA timezones (TimeAPI.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from_timezone": {
            "type": "string",
            "description": "Source IANA timezone (e.g. \"America/New_York\")"
          },
          "datetime": {
            "type": "string",
            "description": "Date and time to convert in \"YYYY-MM-DD HH:mm:ss\" format (e.g. \"2026-03-20 12:00:00\")"
          },
          "to_timezone": {
            "type": "string",
            "description": "Target IANA timezone (e.g. \"Asia/Tokyo\")"
          }
        },
        "required": [
          "from_timezone",
          "datetime",
          "to_timezone"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "time.worldclock.zones",
      "description": "List all 597 IANA timezone names. Use for timezone validation and discovery (TimeAPI.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Optional prefix filter for timezone names (e.g. \"America\", \"Europe\", \"Asia\"). Returns all 597 zones if omitted."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "web.screenshot.capture",
      "description": "Take a screenshot of any URL \u2014 returns image URL. Chrome-based rendering, supports full-page capture, custom viewport, ad blocking, cookie banner removal. Waits for JS-heavy SPAs to load (ApiFlash)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL of the website to screenshot (e.g. \"https://example.com\")"
          },
          "format": {
            "type": "string",
            "enum": [
              "png",
              "jpeg",
              "webp"
            ],
            "description": "Image format: \"png\" (default), \"jpeg\", or \"webp\""
          },
          "width": {
            "type": "integer",
            "minimum": 100,
            "maximum": 3840,
            "description": "Viewport width in pixels (default 1920, max 3840)"
          },
          "height": {
            "type": "integer",
            "minimum": 100,
            "maximum": 3840,
            "description": "Viewport height in pixels (default 1080)"
          },
          "full_page": {
            "type": "boolean",
            "description": "Capture full page scroll height (default false)"
          },
          "delay": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10,
            "description": "Wait N seconds before capture (0-10, for JS-heavy pages)"
          },
          "no_ads": {
            "type": "boolean",
            "description": "Block ads before capture (default false)"
          },
          "no_cookie_banners": {
            "type": "boolean",
            "description": "Remove cookie consent banners (default false)"
          },
          "wait_until": {
            "type": "string",
            "enum": [
              "page_loaded",
              "network_idle"
            ],
            "description": "\"page_loaded\" (default) or \"network_idle\" (wait for all XHR/fetch)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sports.football.fixtures",
      "description": "Football/soccer fixtures, live scores, and results \u2014 filter by date, league (Premier League, La Liga, Champions League...), team. 2000+ leagues, 171 countries. 362+ fixtures per day (API-Sports)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Date in YYYY-MM-DD format (e.g. \"2026-03-20\"). Returns all fixtures for that day."
          },
          "league": {
            "type": "integer",
            "description": "League ID (e.g. 39 = Premier League, 140 = La Liga, 78 = Bundesliga)"
          },
          "season": {
            "type": "integer",
            "description": "Season year (e.g. 2025)"
          },
          "team": {
            "type": "integer",
            "description": "Team ID to filter fixtures"
          },
          "live": {
            "type": "boolean",
            "description": "Set to true to get only live/in-play fixtures"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sports.football.standings",
      "description": "League table/standings \u2014 rank, points, wins, draws, losses, goals for/against. All major leagues: Premier League (39), La Liga (140), Bundesliga (78), Serie A (135), Ligue 1 (61) (API-Sports)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "league": {
            "type": "integer",
            "description": "League ID (e.g. 39 = Premier League, 140 = La Liga, 135 = Serie A)"
          },
          "season": {
            "type": "integer",
            "description": "Season year (default: current season, e.g. 2025)"
          }
        },
        "required": [
          "league"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sports.football.leagues",
      "description": "Search football leagues and cups by country or name. Returns league ID, name, type (league/cup), country, logo. Use IDs for fixtures and standings queries (API-Sports)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Country name to filter leagues (e.g. \"England\", \"Spain\", \"Germany\")"
          },
          "search": {
            "type": "string",
            "description": "Search league by name (e.g. \"Premier\", \"Champions\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sports.basketball.games",
      "description": "Basketball games and scores \u2014 NBA, EuroLeague, and 100+ leagues worldwide. Filter by date, league, season, team. Live and historical data (API-Sports)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Date in YYYY-MM-DD format. Returns all basketball games for that day."
          },
          "league": {
            "type": "integer",
            "description": "League ID (e.g. 12 = NBA)"
          },
          "season": {
            "type": "string",
            "description": "Season (e.g. \"2025-2026\")"
          },
          "team": {
            "type": "integer",
            "description": "Team ID to filter games"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "translate.text.translate",
      "description": "Translate text between 90+ languages \u2014 auto-detects source language, supports batch translation (array of strings), HTML format preservation. Google Translate v2 compatible. $5/1M chars (Langbly)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to translate \u2014 single string or array of strings for batch translation"
          },
          "target": {
            "type": "string",
            "description": "Target language code (e.g. \"es\", \"fr\", \"de\", \"ja\", \"zh\", \"ru\", \"ar\")",
            "minLength": 2,
            "maxLength": 5
          },
          "source": {
            "type": "string",
            "minLength": 2,
            "maxLength": 5,
            "description": "Source language code (auto-detected if omitted)"
          },
          "format": {
            "type": "string",
            "enum": [
              "text",
              "html"
            ],
            "description": "Input format: \"text\" (default) or \"html\" (preserves HTML tags)"
          }
        },
        "required": [
          "text",
          "target"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "translate.text.detect",
      "description": "Detect the language of text \u2014 returns language code and confidence score. Supports batch detection (Langbly)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to detect language of \u2014 single string or array"
          }
        },
        "required": [
          "text"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "translate.text.languages",
      "description": "List all 90+ supported translation languages with localized names. Specify display_language to get names in that language (Langbly)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "display_language": {
            "type": "string",
            "description": "Language code to display names in (e.g. \"en\" returns \"Spanish\", \"es\" returns \"Espa\u00f1ol\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.twilio.lookup",
      "description": "Validate and look up phone number info \u2014 format validation, country, national format. Optional: carrier name, line type (mobile/landline/VoIP), caller name CNAM (Twilio)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "phone_number": {
            "type": "string",
            "description": "Phone number in E.164 format (e.g. \"+14157012311\", \"+442071234567\")",
            "minLength": 1
          },
          "include_carrier": {
            "type": "boolean",
            "description": "Include carrier/line type info (costs extra credit). Returns carrier name, line type (mobile/landline/voip)."
          },
          "include_caller_name": {
            "type": "boolean",
            "description": "Include caller name CNAM lookup (costs extra credit). US numbers only."
          }
        },
        "required": [
          "phone_number"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.twilio.sms",
      "description": "Send SMS message to any phone number worldwide. Requires a Twilio phone number as sender. Returns message SID and delivery status. $0.0083/SMS US outbound (Twilio)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string",
            "description": "Recipient phone number in E.164 format (e.g. \"+14155551234\")",
            "minLength": 1
          },
          "from": {
            "type": "string",
            "description": "Sender phone number \u2014 must be a Twilio number you own (e.g. \"+15551234567\")",
            "minLength": 1
          },
          "body": {
            "type": "string",
            "description": "SMS message text (max 1600 chars, splits into multiple segments if >160)",
            "minLength": 1,
            "maxLength": 1600
          }
        },
        "required": [
          "to",
          "from",
          "body"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ai.image.generate",
      "description": "Generate images from text prompts using Stable Diffusion \u2014 supports style presets (anime, cinematic, pixel-art, photographic...), aspect ratios, negative prompts. Returns base64 PNG data URI. Powered by Stability AI",
      "inputSchema": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "Text prompt describing the image to generate (e.g. \"a futuristic city at sunset, cyberpunk style, detailed\")",
            "minLength": 1,
            "maxLength": 10000
          },
          "negative_prompt": {
            "type": "string",
            "description": "What to exclude from the image (e.g. \"blurry, low quality, text, watermark\")"
          },
          "aspect_ratio": {
            "type": "string",
            "enum": [
              "1:1",
              "16:9",
              "21:9",
              "2:3",
              "3:2",
              "4:5",
              "5:4",
              "9:16",
              "9:21"
            ],
            "description": "Image aspect ratio (default \"1:1\")"
          },
          "style_preset": {
            "type": "string",
            "enum": [
              "3d-model",
              "analog-film",
              "anime",
              "cinematic",
              "comic-book",
              "digital-art",
              "enhance",
              "fantasy-art",
              "isometric",
              "line-art",
              "low-poly",
              "neon-punk",
              "origami",
              "photographic",
              "pixel-art",
              "tile-texture"
            ],
            "description": "Style preset to guide generation"
          }
        },
        "required": [
          "prompt"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "email.transactional.send",
      "description": "Send transactional email \u2014 plain text or HTML body, multiple recipients, reply-to. Requires verified sender domain. 3,000 free emails/month (Resend)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string",
            "description": "Recipient email address(es) \u2014 single email or array of emails"
          },
          "subject": {
            "type": "string",
            "description": "Email subject line",
            "minLength": 1
          },
          "text": {
            "type": "string",
            "description": "Plain text email body"
          },
          "html": {
            "type": "string",
            "description": "HTML email body (alternative to text)"
          },
          "from": {
            "type": "string",
            "description": "Sender email (default: noreply@apibase.pro). Must be a verified domain."
          },
          "reply_to": {
            "type": "string",
            "description": "Reply-to email address"
          }
        },
        "required": [
          "to",
          "subject"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "email.transactional.status",
      "description": "Check delivery status of a sent email by ID \u2014 last event, timestamps (Resend)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "email_id": {
            "type": "string",
            "description": "Email ID returned from send_email (e.g. \"d1c6e0a8-...\")"
          }
        },
        "required": [
          "email_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "social.mastodon.trending",
      "description": "Trending posts on Mastodon (Fediverse) \u2014 popular content across the decentralized social network. Returns post text, author, reblogs, favourites, replies. No auth needed, $0 upstream (Mastodon.social)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 40,
            "description": "Number of trending posts to return (default 10, max 40)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "social.mastodon.tags",
      "description": "Trending hashtags on Mastodon \u2014 top topics with usage counts. Track social media trends on the decentralized network. No auth needed (Mastodon.social)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of trending hashtags to return (default 10, max 20)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "legal.regulations.search",
      "description": "Search US federal regulatory documents \u2014 rules, proposed rules, notices, presidential documents. Filter by agency (EPA, SEC, FDA...), document type, date. 7,500+ results for \"artificial intelligence\" (Regulations.gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search keywords in federal regulatory documents (e.g. \"artificial intelligence\", \"climate change\")"
          },
          "document_type": {
            "type": "string",
            "enum": [
              "Rule",
              "Proposed Rule",
              "Notice",
              "Presidential Document"
            ],
            "description": "Filter by document type"
          },
          "agency": {
            "type": "string",
            "description": "Filter by agency ID (e.g. \"EPA\", \"SEC\", \"FDA\")"
          },
          "posted_after": {
            "type": "string",
            "description": "Only documents posted after this date (YYYY-MM-DD)"
          },
          "limit": {
            "type": "integer",
            "minimum": 5,
            "maximum": 25,
            "description": "Number of results (default 10, min 5, max 25)"
          },
          "sort": {
            "type": "string",
            "enum": [
              "postedDate",
              "-postedDate",
              "title",
              "documentId"
            ],
            "description": "Sort order (default: -postedDate, newest first)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "legal.regulations.document",
      "description": "Get full details of a US federal regulatory document by ID \u2014 title, abstract, agency, comment count, docket, dates. Public domain (Regulations.gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "document_id": {
            "type": "string",
            "description": "Document ID from search results (e.g. \"FDA-2024-N-0001-0001\")"
          }
        },
        "required": [
          "document_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "legal.fedregister.search",
      "description": "Search the US Federal Register \u2014 final rules, proposed rules, notices, executive orders. Filter by agency, type, date. 90+ years of official federal government records (Federal Register)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search keywords in Federal Register (e.g. \"executive order\", \"cryptocurrency regulation\")"
          },
          "document_type": {
            "type": "string",
            "enum": [
              "RULE",
              "PRORULE",
              "NOTICE",
              "PRESDOCU"
            ],
            "description": "Type: RULE (final rule), PRORULE (proposed rule), NOTICE, PRESDOCU (presidential document/executive order)"
          },
          "agency": {
            "type": "string",
            "description": "Agency slug (e.g. \"environmental-protection-agency\", \"securities-and-exchange-commission\")"
          },
          "published_after": {
            "type": "string",
            "description": "Only documents published after this date (MM/DD/YYYY)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results (default 10, max 20)"
          },
          "sort": {
            "type": "string",
            "enum": [
              "newest",
              "oldest",
              "relevance"
            ],
            "description": "Sort order (default: newest)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "legal.fedregister.document",
      "description": "Get full Federal Register document by number \u2014 title, abstract, agencies, effective date, PDF link, comment deadline (Federal Register)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "document_number": {
            "type": "string",
            "description": "Federal Register document number (e.g. \"2026-12345\")"
          }
        },
        "required": [
          "document_number"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "legal.fedregister.recent",
      "description": "Latest documents published in the Federal Register \u2014 filter by type (rules, proposed rules, notices, presidential). No search query needed (Federal Register)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "document_type": {
            "type": "string",
            "enum": [
              "RULE",
              "PRORULE",
              "NOTICE",
              "PRESDOCU"
            ],
            "description": "Filter by type (default: all types)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results (default 10, max 20)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "legal.caselaw.search",
      "description": "Search US federal and state court opinions \u2014 filter by court (scotus, ca9, dcd...), date range, relevance. Largest free US case law archive. 7,000+ AI-related opinions (CourtListener / Free Law Project)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for US court opinions (e.g. \"artificial intelligence liability\", \"Fourth Amendment digital privacy\")"
          },
          "type": {
            "type": "string",
            "enum": [
              "o",
              "r"
            ],
            "description": "Search type: \"o\" (opinions, default) or \"r\" (RECAP dockets)"
          },
          "court": {
            "type": "string",
            "description": "Court filter (e.g. \"scotus\" for Supreme Court, \"ca9\" for 9th Circuit, \"dcd\" for DC District)"
          },
          "filed_after": {
            "type": "string",
            "description": "Only cases filed after this date (YYYY-MM-DD)"
          },
          "filed_before": {
            "type": "string",
            "description": "Only cases filed before this date (YYYY-MM-DD)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results (default 10, max 20)"
          },
          "order_by": {
            "type": "string",
            "enum": [
              "score desc",
              "dateFiled desc",
              "dateFiled asc"
            ],
            "description": "Sort: relevance (default), newest, oldest"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "legal.caselaw.opinion",
      "description": "Get full text of a US court opinion by ID \u2014 author, type, date, download URL. Up to 5,000 characters of opinion text (CourtListener)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "opinion_id": {
            "type": "string",
            "description": "Opinion ID from search results"
          }
        },
        "required": [
          "opinion_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "legal.caselaw.dockets",
      "description": "Search PACER/RECAP federal court dockets \u2014 case filings, motions, orders. Filter by court. From the RECAP Archive (CourtListener / Free Law Project)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for RECAP dockets"
          },
          "court": {
            "type": "string",
            "description": "Court filter"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results (default 10)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ai.ocr.extract",
      "description": "Extract text from any image or PDF URL using OCR \u2014 supports 20+ languages including English, Russian, Chinese, Japanese, Korean, Arabic. Returns recognized text. Handles PNG, JPG, GIF, BMP, PDF, TIFF (OCR.space)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL of the image or PDF to extract text from (PNG, JPG, GIF, BMP, PDF, TIFF supported)"
          },
          "language": {
            "type": "string",
            "enum": [
              "eng",
              "ara",
              "chs",
              "cht",
              "dan",
              "dut",
              "fin",
              "fre",
              "ger",
              "gre",
              "hun",
              "ita",
              "jpn",
              "kor",
              "nor",
              "pol",
              "por",
              "rus",
              "spa",
              "swe",
              "tur"
            ],
            "description": "OCR language: \"eng\" (English, default), \"rus\" (Russian), \"ger\" (German), \"fre\" (French), \"spa\" (Spanish), \"jpn\" (Japanese), \"kor\" (Korean), \"chs\" (Chinese Simplified)"
          },
          "filetype": {
            "type": "string",
            "enum": [
              "PNG",
              "JPG",
              "GIF",
              "BMP",
              "PDF",
              "TIFF"
            ],
            "description": "File type hint \u2014 set if URL has no extension or content-type is wrong"
          },
          "detect_orientation": {
            "type": "boolean",
            "description": "Auto-detect and correct image orientation (default false)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "stocks.market.quote",
      "description": "Real-time stock price quote \u2014 current price, change, percent change, day high/low, open, previous close. Supports US stocks, ETFs, and major global exchanges (Finnhub)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Stock ticker symbol (e.g. \"AAPL\", \"GOOGL\", \"TSLA\", \"MSFT\")",
            "minLength": 1,
            "maxLength": 10
          }
        },
        "required": [
          "symbol"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "stocks.company.profile",
      "description": "Company profile by ticker \u2014 name, exchange, industry, country, market cap, shares outstanding, IPO date, logo, website (Finnhub)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Stock ticker symbol (e.g. \"AAPL\")",
            "minLength": 1,
            "maxLength": 10
          }
        },
        "required": [
          "symbol"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "stocks.company.news",
      "description": "Latest news articles about a specific company \u2014 headline, source, summary, date, image. Filter by date range (Finnhub)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Stock ticker symbol (e.g. \"AAPL\")",
            "minLength": 1,
            "maxLength": 10
          },
          "from": {
            "type": "string",
            "description": "Start date in YYYY-MM-DD format (default: 7 days ago)"
          },
          "to": {
            "type": "string",
            "description": "End date in YYYY-MM-DD format (default: today)"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "stocks.market.candles",
      "description": "Historical OHLCV candlestick data \u2014 open, high, low, close, volume with configurable resolution (1min to monthly). Use for charting and technical analysis (Finnhub)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Stock ticker symbol (e.g. \"AAPL\")",
            "minLength": 1,
            "maxLength": 10
          },
          "resolution": {
            "type": "string",
            "enum": [
              "1",
              "5",
              "15",
              "30",
              "60",
              "D",
              "W",
              "M"
            ],
            "description": "Candle resolution: \"1\",\"5\",\"15\",\"30\",\"60\" (minutes), \"D\" (day), \"W\" (week), \"M\" (month). Default: \"D\""
          },
          "from": {
            "type": "integer",
            "description": "Start timestamp (Unix seconds). Default: 30 days ago"
          },
          "to": {
            "type": "integer",
            "description": "End timestamp (Unix seconds). Default: now"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "stocks.market.news",
      "description": "General market news \u2014 categories: general, forex, crypto, merger. Top headlines with source, summary, and images (Finnhub)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "general",
              "forex",
              "crypto",
              "merger"
            ],
            "description": "News category: \"general\" (default), \"forex\", \"crypto\", \"merger\""
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "news.global.latest",
      "description": "Latest news from 180,000+ sources across 200+ countries in 70+ languages. Filter by keyword, country, category, language, domain, and recency. Returns title, link, description, source, sentiment, keywords (NewsData.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search keywords in article title and content (e.g. \"AI agents\", \"climate change\")"
          },
          "country": {
            "type": "string",
            "description": "Country code filter, comma-separated (e.g. \"us\", \"gb,de,fr\"). 200+ countries supported."
          },
          "category": {
            "type": "string",
            "description": "Category filter, comma-separated: business, entertainment, environment, food, health, politics, science, sports, technology, top, tourism, world"
          },
          "language": {
            "type": "string",
            "description": "Language code filter (e.g. \"en\", \"de\", \"fr\", \"es\"). 70+ languages supported."
          },
          "domain": {
            "type": "string",
            "description": "Filter by source domain (e.g. \"bbc.co.uk\", \"nytimes.com\")"
          },
          "timeframe": {
            "type": "string",
            "description": "Recency filter in hours (e.g. \"24\" for last 24 hours, \"1\" for last hour)"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of articles to return (default 10, max 50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "news.crypto.latest",
      "description": "Cryptocurrency and blockchain news feed \u2014 filter by coin (Bitcoin, Ethereum, Solana...), keyword, language. Dedicated crypto news index from specialized sources (NewsData.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search keywords in crypto news (e.g. \"Bitcoin ETF\", \"DeFi\")"
          },
          "language": {
            "type": "string",
            "description": "Language code (e.g. \"en\")"
          },
          "coin": {
            "type": "string",
            "description": "Specific coin filter (e.g. \"Bitcoin\", \"Ethereum\", \"Solana\")"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of articles (default 10, max 50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "news.global.sources",
      "description": "Browse available news sources \u2014 filter by country, language, and category. Returns source name, URL, categories, and languages covered. 180,000+ sources indexed (NewsData.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Country code to filter sources (e.g. \"us\", \"gb\")"
          },
          "language": {
            "type": "string",
            "description": "Language code to filter sources (e.g. \"en\")"
          },
          "category": {
            "type": "string",
            "description": "Category to filter sources (e.g. \"technology\", \"business\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.semantic.web",
      "description": "Neural/semantic web search \u2014 finds conceptually related pages, not just keyword matches. Supports category filters (company, research paper, news, people, tweet), domain filtering, date range. Returns relevance scores and highlighted excerpts (Exa)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Natural language search query \u2014 Exa finds semantically related pages, not just keyword matches",
            "minLength": 1
          },
          "num_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Number of results (default 10, max 25)"
          },
          "type": {
            "type": "string",
            "enum": [
              "auto",
              "neural",
              "keyword"
            ],
            "description": "Search type: \"auto\" (balanced), \"neural\" (semantic similarity), \"keyword\" (traditional). Default: auto"
          },
          "category": {
            "type": "string",
            "enum": [
              "company",
              "research paper",
              "news",
              "people",
              "tweet"
            ],
            "description": "Category filter for specialized indexes (optional)"
          },
          "include_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Only include results from these domains (e.g. [\"arxiv.org\"])"
          },
          "exclude_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Exclude results from these domains"
          },
          "start_published_date": {
            "type": "string",
            "description": "Filter: only results published after this date (ISO format, e.g. \"2025-01-01\")"
          },
          "end_published_date": {
            "type": "string",
            "description": "Filter: only results published before this date"
          },
          "include_text": {
            "type": "boolean",
            "description": "Include full extracted page text in results (default false \u2014 saves tokens)"
          },
          "include_highlights": {
            "type": "boolean",
            "description": "Include key sentence highlights (default true)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.semantic.contents",
      "description": "Extract clean text content from up to 10 URLs \u2014 returns title, author, published date, full text. Use for feeding web pages into agent context (Exa)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "urls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "URLs to extract content from (1-10). Returns clean text, title, author, date.",
            "minItems": 1,
            "maxItems": 10
          }
        },
        "required": [
          "urls"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.semantic.similar",
      "description": "Find web pages semantically similar to a given URL \u2014 discover related content, competitors, alternatives without knowing what to search for. Unique capability for research agents (Exa)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Reference URL \u2014 Exa finds pages semantically similar to this one"
          },
          "num_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Number of similar pages (default 10, max 25)"
          },
          "exclude_source_domain": {
            "type": "boolean",
            "description": "Exclude results from same domain as input URL (default true)"
          },
          "start_published_date": {
            "type": "string",
            "description": "Only include similar pages published after this date (ISO format)"
          },
          "include_text": {
            "type": "boolean",
            "description": "Include full extracted page text (default false)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.ai.web",
      "description": "AI-optimized web search \u2014 returns synthesized answer + curated results with extracted page content and relevance scores. Built for LLM/agent RAG pipelines. Supports domain filtering and recency (Tavily)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query \u2014 Tavily returns AI-synthesized answer + curated results with extracted content",
            "minLength": 1
          },
          "search_depth": {
            "type": "string",
            "enum": [
              "basic",
              "advanced"
            ],
            "description": "Search depth: \"basic\" (faster, 1 credit) or \"advanced\" (deeper, 2 credits). Default: basic"
          },
          "include_answer": {
            "type": "boolean",
            "description": "Include AI-synthesized answer based on search results (default true)"
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results to return (default 5, max 20)"
          },
          "include_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Only include results from these domains (e.g. [\"wikipedia.org\", \"arxiv.org\"])"
          },
          "exclude_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Exclude results from these domains (e.g. [\"reddit.com\"])"
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "description": "Recency filter \u2014 only include results from the last N days"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.ai.extract",
      "description": "Extract clean readable content from up to 20 URLs \u2014 returns text, title, author, published date. Eliminates scraping. Perfect for feeding web pages into agent context windows (Tavily)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "urls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "URLs to extract clean content from (1-20 URLs). Returns readable text, title, author, date.",
            "minItems": 1,
            "maxItems": 20
          }
        },
        "required": [
          "urls"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.google.web",
      "description": "Real-time Google web search results \u2014 organic listings, knowledge graph, answer box, people also ask, related searches. Supports country and language targeting. Powered by Serper.dev",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query (e.g. \"best restaurants in Berlin\", \"how does MCP protocol work\")",
            "minLength": 1
          },
          "gl": {
            "type": "string",
            "maxLength": 2,
            "description": "Country code for localized results (e.g. \"us\", \"gb\", \"de\", \"fr\")"
          },
          "hl": {
            "type": "string",
            "maxLength": 5,
            "description": "Language code for results (e.g. \"en\", \"de\", \"fr\", \"es\")"
          },
          "num": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results to return (default 10, max 100)"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination (default 1)"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.google.news",
      "description": "Real-time Google News articles \u2014 title, source, date, snippet, image. Filter by time (past hour/day/week/month). Global coverage in 70+ languages (Serper.dev)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "News search query (e.g. \"AI agents\", \"Base network\")",
            "minLength": 1
          },
          "gl": {
            "type": "string",
            "maxLength": 2,
            "description": "Country code for localized news (e.g. \"us\", \"gb\")"
          },
          "hl": {
            "type": "string",
            "maxLength": 5,
            "description": "Language code (e.g. \"en\", \"de\")"
          },
          "num": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of articles (default 10, max 100)"
          },
          "tbs": {
            "type": "string",
            "description": "Time filter: \"qdr:h\" (past hour), \"qdr:d\" (past day), \"qdr:w\" (past week), \"qdr:m\" (past month)"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.google.images",
      "description": "Google Image search results \u2014 image URL, thumbnail, dimensions, source domain. Search any visual content worldwide (Serper.dev)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Image search query (e.g. \"golden gate bridge sunset\")",
            "minLength": 1
          },
          "gl": {
            "type": "string",
            "maxLength": 2,
            "description": "Country code (e.g. \"us\")"
          },
          "num": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of images (default 10, max 100)"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search.google.shopping",
      "description": "Google Shopping product listings \u2014 title, price, source, rating, delivery info, product images. Compare prices across retailers (Serper.dev)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Product search query (e.g. \"macbook pro 16 inch\", \"wireless headphones\")",
            "minLength": 1
          },
          "gl": {
            "type": "string",
            "maxLength": 2,
            "description": "Country code for localized prices (e.g. \"us\", \"gb\")"
          },
          "num": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of products (default 10, max 100)"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "realestate.listings.for_sale",
      "description": "Search active for-sale property listings across the US \u2014 filter by city, state, ZIP, price range, bedrooms, bathrooms, sqft, property type. Returns address, price, specs, photos. Millions of MLS listings (RapidAPI / Realtor.com data)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "City name, e.g. \"Austin\" (use with state_code)"
          },
          "state_code": {
            "type": "string",
            "maxLength": 2,
            "description": "Two-letter US state code, e.g. \"TX\""
          },
          "postal_code": {
            "type": "string",
            "description": "ZIP code, e.g. \"78701\" (alternative to city+state)"
          },
          "price_min": {
            "type": "integer",
            "description": "Minimum listing price in USD"
          },
          "price_max": {
            "type": "integer",
            "description": "Maximum listing price in USD"
          },
          "beds_min": {
            "type": "integer",
            "minimum": 1,
            "description": "Minimum number of bedrooms"
          },
          "baths_min": {
            "type": "integer",
            "minimum": 1,
            "description": "Minimum number of bathrooms"
          },
          "sqft_min": {
            "type": "integer",
            "description": "Minimum square footage"
          },
          "property_type": {
            "type": "string",
            "enum": [
              "single_family",
              "multi_family",
              "condo",
              "townhomes",
              "mobile",
              "land",
              "farm"
            ],
            "description": "Property type filter"
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevant",
              "newest",
              "price_low",
              "price_high",
              "open_house_date",
              "sqft_high",
              "price_reduced_date"
            ],
            "description": "Sort order (default: relevant)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 42,
            "description": "Number of results (default 10, max 42)"
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset (default 0)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "realestate.property.details",
      "description": "Detailed property information by property ID \u2014 beds, baths, sqft, year built, lot size, tax assessment, HOA, days on market, photos, last sale price/date. Use for_sale search first to get property_id (RapidAPI / Realtor.com data)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "property_id": {
            "type": "string",
            "description": "Property ID from a for_sale search result (e.g. \"2734304997\")"
          }
        },
        "required": [
          "property_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "realestate.location.suggest",
      "description": "Autocomplete location search for US real estate \u2014 returns matching cities, ZIP codes, and addresses with coordinates. Use to find valid city/state codes for property searches (RapidAPI / Realtor.com data)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Location search query \u2014 city name, address, or ZIP code (e.g. \"Austin TX\", \"90210\")",
            "minLength": 2
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "realestate.walkscore.score",
      "description": "Walk Score (0-100), Transit Score (0-100), and Bike Score (0-100) for any US/Canada address. Measures walkability to amenities, public transit quality, and cycling infrastructure. Industry-standard walkability metric used by 30,000+ websites (Walk Score / Redfin)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "Full street address, e.g. \"1119 8th Avenue Seattle WA 98101\""
          },
          "latitude": {
            "type": "number",
            "description": "Latitude of the address (-90 to 90). Use geo.geocode to get coordinates.",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "description": "Longitude of the address (-180 to 180). Use geo.geocode to get coordinates.",
            "minimum": -180,
            "maximum": 180
          }
        },
        "required": [
          "address",
          "latitude",
          "longitude"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "environment.airquality.city",
      "description": "Real-time air quality index (AQI US + CN), pollutant concentrations (PM2.5, PM10, O3, NO2, SO2, CO), dominant pollutant, temperature, humidity, wind speed for any city worldwide. 30,000+ monitoring stations across 10,000+ cities (IQAir AirVisual)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "City name (e.g. \"Los Angeles\", \"London\", \"Tokyo\")",
            "minLength": 1
          },
          "state": {
            "type": "string",
            "description": "State or province (e.g. \"California\", \"England\", \"Tokyo\")",
            "minLength": 1
          },
          "country": {
            "type": "string",
            "description": "Country name (e.g. \"USA\", \"UK\", \"Japan\")",
            "minLength": 1
          }
        },
        "required": [
          "city",
          "state",
          "country"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "environment.airquality.nearest",
      "description": "Real-time air quality index (AQI) and weather data for the nearest monitoring station to given GPS coordinates. Returns nearest city, AQI (US + CN), dominant pollutant, PM2.5/PM10/O3 concentrations, temperature, humidity (IQAir AirVisual)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude (-90 to 90, e.g. 34.0522)",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "description": "Longitude (-180 to 180, e.g. -118.2437)",
            "minimum": -180,
            "maximum": 180
          }
        },
        "required": [
          "lat",
          "lon"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "nutrition.fatsecret.search",
      "description": "Search 2.3M+ food items by name \u2014 branded products, restaurant meals, generic foods from 190+ countries. Returns food ID, name, type, brand, and per-serving summary (calories, fat, carbs, protein). Use food_id for detailed nutritional lookup (FatSecret)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Food name to search (e.g. \"chicken breast\", \"banana\", \"greek yogurt\")",
            "minLength": 1
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "Page number for pagination (default 0)"
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Results per page (default 20, max 50)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "nutrition.fatsecret.details",
      "description": "Complete nutritional profile for a food item by FatSecret ID \u2014 all serving sizes with calories, total/saturated/trans fat, cholesterol, sodium, potassium, carbs, fiber, sugar, protein, vitamins A/C/D, calcium, iron. 2.3M+ foods (FatSecret)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "food_id": {
            "type": "string",
            "description": "FatSecret food ID from search results (e.g. \"33691\" for chicken breast)",
            "minLength": 1
          }
        },
        "required": [
          "food_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.autodev.vin_decode",
      "description": "Decode any VIN worldwide (100+ countries) \u2014 make, model, year, trim, engine, transmission, drive type, body style, origin country, manufacturer. Covers EU, Asia, and other markets beyond US-only NHTSA. Static data cached 24h (Auto.dev)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "vin": {
            "type": "string",
            "description": "17-character Vehicle Identification Number (e.g. \"WP0AF2A99KS165242\" for Porsche, \"WBAFR7C51BC603689\" for BMW)",
            "minLength": 17,
            "maxLength": 17
          }
        },
        "required": [
          "vin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.pexels.search_photos",
      "description": "Search curated free stock photos by keyword \u2014 filter by orientation (landscape/portrait/square), color, size. Returns multiple resolutions (original to tiny), photographer name, Pexels URL. Free for commercial use (Pexels)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search term (e.g. \"sunset beach\", \"office meeting\", \"technology\")",
            "minLength": 1
          },
          "orientation": {
            "type": "string",
            "enum": [
              "landscape",
              "portrait",
              "square"
            ],
            "description": "Photo orientation filter"
          },
          "color": {
            "type": "string",
            "description": "Color filter (e.g. \"red\", \"blue\", \"green\", \"yellow\", \"orange\", \"white\", \"black\")"
          },
          "size": {
            "type": "string",
            "enum": [
              "large",
              "medium",
              "small"
            ],
            "description": "Minimum photo size"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 80,
            "description": "Results per page (default 10, max 80)"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.pexels.search_videos",
      "description": "Search free stock videos by keyword \u2014 returns HD/SD video files with dimensions, duration, download URLs. Free for commercial use (Pexels)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search term for videos (e.g. \"nature timelapse\", \"city traffic\", \"cooking\")",
            "minLength": 1
          },
          "orientation": {
            "type": "string",
            "enum": [
              "landscape",
              "portrait",
              "square"
            ],
            "description": "Video orientation"
          },
          "size": {
            "type": "string",
            "enum": [
              "large",
              "medium",
              "small"
            ],
            "description": "Minimum video size"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 80,
            "description": "Results per page (default 10, max 80)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.pexels.curated",
      "description": "Hand-picked high-quality curated photos from Pexels \u2014 updated daily. Returns photographer, multiple sizes, Pexels URL. Perfect for featured images and hero sections (Pexels)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 80,
            "description": "Number of curated photos (default 10, max 80)"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.browser.create_session",
      "description": "Create a managed headless browser session on Browserbase infrastructure. Returns session ID and WebSocket connect URL for Puppeteer/Playwright. Choose region (US/EU/Asia) and optional residential proxy. Sessions auto-expire after 5 minutes of inactivity (Browserbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proxy": {
            "type": "boolean",
            "description": "Use residential proxy for the session (default false)"
          },
          "region": {
            "type": "string",
            "enum": [
              "us-west-2",
              "us-east-1",
              "eu-central-1",
              "ap-southeast-1"
            ],
            "description": "Browser region (default us-west-2)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.browser.session_status",
      "description": "Check the status of a Browserbase session \u2014 running, completed, error, timed out. Returns CPU usage, memory, proxy bytes, start/end times (Browserbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "description": "Browserbase session ID (from create_session result)",
            "minLength": 1
          }
        },
        "required": [
          "session_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.browser.session_content",
      "description": "Get files downloaded during a browser session \u2014 screenshots, PDFs, extracted data (Browserbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "description": "Session ID to get downloads/content from",
            "minLength": 1
          }
        },
        "required": [
          "session_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.browser.list_sessions",
      "description": "List active or recent browser sessions \u2014 filter by status (running, completed, error). Returns session IDs, regions, start times (Browserbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "RUNNING",
              "ERROR",
              "TIMED_OUT",
              "COMPLETED"
            ],
            "description": "Filter by session status (default RUNNING)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "messaging.telegram.send_message",
      "description": "Send a text message to a Telegram user or group chat. Supports Markdown (*bold*, _italic_, `code`, [link](url)) and HTML formatting. Max 4096 chars. Perfect for alerts, notifications, reports (Telegram Bot API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "chat_id": {
            "type": "string",
            "description": "Telegram chat ID (number) or @channel_username (string). Get from get_updates or manually"
          },
          "text": {
            "type": "string",
            "description": "Message text (max 4096 chars). Supports Markdown: *bold*, _italic_, `code`, [link](url)",
            "minLength": 1,
            "maxLength": 4096
          },
          "parse_mode": {
            "type": "string",
            "enum": [
              "Markdown",
              "HTML"
            ],
            "description": "Text formatting: \"Markdown\" or \"HTML\" (default plain text)"
          },
          "disable_notification": {
            "type": "boolean",
            "description": "Send silently without notification sound (default false)"
          }
        },
        "required": [
          "chat_id",
          "text"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "messaging.telegram.send_photo",
      "description": "Send a photo to a Telegram chat with optional caption. Provide image URL \u2014 supports JPG, PNG, GIF up to 10MB (Telegram Bot API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "chat_id": {
            "type": "string",
            "description": "Target chat ID or @channel_username"
          },
          "photo": {
            "type": "string",
            "description": "Photo URL (https://...) or Telegram file_id from previous upload"
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "Photo caption (max 1024 chars)"
          }
        },
        "required": [
          "chat_id",
          "photo"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "messaging.telegram.send_document",
      "description": "Send a file/document to a Telegram chat \u2014 PDF, CSV, ZIP, any format up to 50MB. Perfect for sending reports, data exports, generated files (Telegram Bot API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "chat_id": {
            "type": "string",
            "description": "Target chat ID or @channel_username"
          },
          "document": {
            "type": "string",
            "description": "Document URL (https://...) \u2014 PDF, CSV, ZIP, etc."
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "Document caption"
          }
        },
        "required": [
          "chat_id",
          "document"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "messaging.telegram.get_updates",
      "description": "Get recent incoming messages and events for the bot \u2014 new messages, user info, chat type. Use offset to get only new updates since last check (Telegram Bot API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of updates to retrieve (default 10, max 100)"
          },
          "offset": {
            "type": "integer",
            "description": "Update ID offset \u2014 pass last update_id + 1 to get only new updates"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "messaging.telegram.get_chat",
      "description": "Get info about a Telegram chat \u2014 title, type (private/group/supergroup/channel), description, member count, invite link, username (Telegram Bot API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "chat_id": {
            "type": "string",
            "description": "Chat ID or @username to get info about"
          }
        },
        "required": [
          "chat_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.clinical.search",
      "description": "Search 577,000+ clinical trials worldwide \u2014 filter by condition (cancer, diabetes), intervention (drug name), sponsor, status (recruiting/completed), phase. Returns NCT ID, title, status, conditions, interventions, sponsor, enrollment. US National Library of Medicine (ClinicalTrials.gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search term (e.g. \"diabetes\", \"pembrolizumab\", \"Pfizer COVID vaccine\")"
          },
          "condition": {
            "type": "string",
            "description": "Filter by medical condition (e.g. \"Breast Cancer\", \"Alzheimer\", \"Type 2 Diabetes\")"
          },
          "intervention": {
            "type": "string",
            "description": "Filter by drug/device/procedure name (e.g. \"aspirin\", \"pacemaker\", \"chemotherapy\")"
          },
          "status": {
            "type": "string",
            "enum": [
              "RECRUITING",
              "COMPLETED",
              "ACTIVE_NOT_RECRUITING",
              "NOT_YET_RECRUITING",
              "TERMINATED",
              "WITHDRAWN",
              "SUSPENDED"
            ],
            "description": "Filter by trial status"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Results per page (default 10, max 100)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.clinical.study",
      "description": "Full details for a clinical trial by NCT ID \u2014 protocol, conditions, interventions with dosing, eligibility criteria (age, sex), primary/secondary outcomes, sponsor, enrollment, phase, study design, dates, results if available (ClinicalTrials.gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "nct_id": {
            "type": "string",
            "description": "NCT identifier (e.g. \"NCT03491410\", \"NCT04368728\"). Get from search results",
            "minLength": 1
          }
        },
        "required": [
          "nct_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "health.clinical.stats",
      "description": "Total number of registered clinical studies in the ClinicalTrials.gov database (577,000+ as of March 2026) (ClinicalTrials.gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Optional \u2014 currently returns total database statistics"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "domain.namesilo.check",
      "description": "Check if domain names are available for registration. Returns availability status, registration price, and renewal price per domain. Supports all TLDs (.com, .io, .dev, .app, .ai, etc.) (NameSilo)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domains": {
            "type": "string",
            "description": "Comma-separated domain names to check availability (e.g. \"example.com,mysite.io,startup.dev\")",
            "minLength": 3
          }
        },
        "required": [
          "domains"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "domain.namesilo.register",
      "description": "Purchase and register a domain name (1-10 years). Includes free WHOIS privacy protection. Domain is registered instantly. Prices: .com ~$21, .org ~$12, .dev ~$18, .io ~$42 (NameSilo)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to register (e.g. \"mybusiness.com\")",
            "minLength": 3
          },
          "years": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Registration period in years (default 1, max 10)"
          },
          "private": {
            "type": "boolean",
            "description": "Enable free WHOIS privacy (default true)"
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "domain.namesilo.list",
      "description": "List all domains registered in the account with expiry dates and status (NameSilo)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Optional keyword to filter domain list"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "domain.namesilo.info",
      "description": "Get detailed info for a domain \u2014 nameservers, creation/expiry dates, lock status, auto-renew setting, WHOIS contact (NameSilo)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to get details for (e.g. \"example.com\")",
            "minLength": 3
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "domain.namesilo.prices",
      "description": "Get current registration, renewal, and transfer prices for popular TLDs (.com, .net, .org, .io, .dev, .app, .ai, .co, .xyz, .tech, etc.) (NameSilo)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tld": {
            "type": "string",
            "description": "Optional TLD to filter (e.g. \"com\", \"io\"). Omit for all popular TLDs"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.cloudflare.zones_list",
      "description": "List all domains (zones) managed in Cloudflare \u2014 zone ID, domain name, status (active/pending), plan, nameservers. Filter by domain name or status. Zone ID needed for all other Cloudflare tools (Cloudflare)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Filter by domain name (e.g. \"example.com\")"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "pending",
              "initializing",
              "moved",
              "deleted"
            ],
            "description": "Filter by zone status"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Results per page (default 20, max 50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.cloudflare.dns_list",
      "description": "List all DNS records for a Cloudflare zone \u2014 A, AAAA, CNAME, MX, TXT, NS records with name, content, TTL, proxy status. Filter by type or name (Cloudflare)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "zone_id": {
            "type": "string",
            "description": "Cloudflare Zone ID (from zones_list results)",
            "minLength": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "A",
              "AAAA",
              "CNAME",
              "MX",
              "TXT",
              "NS",
              "SRV",
              "CAA"
            ],
            "description": "Filter by record type"
          },
          "name": {
            "type": "string",
            "description": "Filter by record name (e.g. \"www.example.com\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Results per page (default 50, max 100)"
          }
        },
        "required": [
          "zone_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.cloudflare.dns_create",
      "description": "Create a new DNS record (A, AAAA, CNAME, MX, TXT) for a Cloudflare zone. Set content (IP/hostname), TTL, and CDN proxy status. Returns new record ID (Cloudflare)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "zone_id": {
            "type": "string",
            "description": "Cloudflare Zone ID",
            "minLength": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "A",
              "AAAA",
              "CNAME",
              "MX",
              "TXT",
              "NS",
              "SRV",
              "CAA"
            ],
            "description": "DNS record type"
          },
          "name": {
            "type": "string",
            "description": "Record name \u2014 subdomain or \"@\" for root (e.g. \"www\", \"api\", \"@\")",
            "minLength": 1
          },
          "content": {
            "type": "string",
            "description": "Record value \u2014 IP address for A/AAAA, hostname for CNAME, text for TXT",
            "minLength": 1
          },
          "ttl": {
            "type": "integer",
            "description": "TTL in seconds (1 = automatic, 60-86400 for manual)"
          },
          "proxied": {
            "type": "boolean",
            "description": "Enable Cloudflare CDN proxy (default false). True = orange cloud, hides origin IP"
          },
          "priority": {
            "type": "integer",
            "description": "Priority for MX records (e.g. 10, 20)"
          }
        },
        "required": [
          "zone_id",
          "type",
          "name",
          "content"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.cloudflare.dns_delete",
      "description": "Delete a DNS record from a Cloudflare zone by record ID. Removes the record immediately (Cloudflare)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "zone_id": {
            "type": "string",
            "description": "Cloudflare Zone ID",
            "minLength": 1
          },
          "record_id": {
            "type": "string",
            "description": "DNS record ID to delete (from dns_list results)",
            "minLength": 1
          }
        },
        "required": [
          "zone_id",
          "record_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.cloudflare.zone_analytics",
      "description": "Traffic analytics for a Cloudflare zone \u2014 total requests, cached vs uncached, bandwidth, threats blocked, page views. Supports custom time ranges (last 24h, 7 days, etc.) (Cloudflare)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "zone_id": {
            "type": "string",
            "description": "Cloudflare Zone ID",
            "minLength": 1
          },
          "since": {
            "type": "integer",
            "description": "Minutes ago to start from (e.g. -1440 for last 24h, -10080 for last 7 days)"
          }
        },
        "required": [
          "zone_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "infra.cloudflare.purge_cache",
      "description": "Purge Cloudflare CDN cache \u2014 all cached files or specific URLs (max 30). Forces CDN to fetch fresh content from origin server (Cloudflare)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "zone_id": {
            "type": "string",
            "description": "Cloudflare Zone ID",
            "minLength": 1
          },
          "purge_everything": {
            "type": "boolean",
            "description": "Purge all cached files (default false)"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specific URLs to purge (max 30)"
          }
        },
        "required": [
          "zone_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tax.vatcomply.validate",
      "description": "Validate a European VAT number via VIES \u2014 returns validity status, company name, and registered address. Supports all 27 EU member states + UK. Format: country prefix + number (e.g. DE123456789) (VATcomply, open source)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "vat_number": {
            "type": "string",
            "description": "EU VAT number with country prefix (e.g. \"DE123456789\", \"FR12345678901\", \"GB123456789\")",
            "minLength": 4
          }
        },
        "required": [
          "vat_number"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tax.vatcomply.rates",
      "description": "Get current VAT rates for EU countries \u2014 standard rate, reduced rates, super-reduced rate, parking rate. Query one country or all 27 EU members. Sourced from EU TEDB (VATcomply)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO 3166-1 alpha-2 country code for specific country VAT rates (e.g. \"DE\", \"FR\", \"IT\"). Omit for all EU countries"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tax.vatcomply.currencies",
      "description": "Current ECB reference exchange rates for 30+ currencies (USD, GBP, JPY, CHF, etc.) plus currency metadata \u2014 symbol, decimal places, issuing countries (VATcomply / ECB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Optional currency code filter (e.g. \"USD\", \"GBP\"). Omit for all currencies"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "audio.transcribe.submit",
      "description": "Submit an audio file URL for speech-to-text transcription. Returns a transcript_id to check status and retrieve results. Supports MP3, WAV, M4A, FLAC, OGG, WebM. 99 languages auto-detected. Optional speaker diarization (AssemblyAI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "audio_url": {
            "type": "string",
            "description": "Publicly accessible URL of the audio file to transcribe (MP3, WAV, M4A, FLAC, OGG, WebM)"
          },
          "model": {
            "type": "string",
            "enum": [
              "universal-2",
              "universal-3-pro"
            ],
            "description": "Speech model: \"universal-2\" (default, fast, 99 languages) or \"universal-3-pro\" (highest accuracy, promptable)"
          },
          "language_code": {
            "type": "string",
            "description": "Language code (e.g. \"en\", \"es\", \"de\", \"fr\", \"ja\"). Auto-detected if omitted"
          },
          "speaker_labels": {
            "type": "boolean",
            "description": "Enable speaker diarization \u2014 detect who said what (default false)"
          }
        },
        "required": [
          "audio_url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "audio.transcribe.status",
      "description": "Check the status of a transcription job by transcript_id \u2014 queued, processing, completed, or error. Returns audio duration when completed (AssemblyAI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "transcript_id": {
            "type": "string",
            "description": "Transcript ID returned from transcribe.submit (e.g. \"aa8f42b3-e81e-453a-b010-a074ae76403b\")"
          }
        },
        "required": [
          "transcript_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "audio.transcribe.result",
      "description": "Retrieve the completed transcription text, word count, confidence score, detected language, and speaker labels (if diarization was enabled). Use transcript_id from submit (AssemblyAI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "transcript_id": {
            "type": "string",
            "description": "Transcript ID to get the completed transcription text for"
          }
        },
        "required": [
          "transcript_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "business.lei.search",
      "description": "Search 2.5M+ legal entities worldwide by name \u2014 companies, funds, government bodies across 200+ countries. Returns LEI code, name, country, city, status, entity category. Filter by country. CC0 open data (GLEIF)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Legal entity name to search (e.g. \"Apple\", \"Goldman Sachs\", \"Toyota Motor\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results (default 10, max 100)"
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Filter by ISO 3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"JP\", \"DE\")"
          }
        },
        "required": [
          "name"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "business.lei.lookup",
      "description": "Full details for a legal entity by 20-character LEI code \u2014 legal name, registered address, headquarters, legal form, registration date, renewal date, status. Use LEI from search results (GLEIF)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lei": {
            "type": "string",
            "description": "20-character Legal Entity Identifier code (e.g. \"HWUPKR0MPOU8FGXBT394\" for Apple Inc)",
            "minLength": 20,
            "maxLength": 20
          }
        },
        "required": [
          "lei"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "business.lei.relationships",
      "description": "Find the direct parent company of a legal entity by LEI code \u2014 returns parent LEI, relationship type, and status. Useful for corporate ownership chain analysis (GLEIF)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lei": {
            "type": "string",
            "description": "LEI code to find parent company relationship for",
            "minLength": 20,
            "maxLength": 20
          }
        },
        "required": [
          "lei"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "business.ukcompany.search",
      "description": "Search the UK Companies House registry by name \u2014 returns company number, name, type (plc/ltd), status (active/dissolved), incorporation date, registered address. Covers all companies registered under the Companies Act (Companies House UK Gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Company name to search (e.g. \"Barclays\", \"Tesco\", \"ARM Holdings\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results (default 10, max 100)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "business.ukcompany.details",
      "description": "Full details for a UK company by Companies House number \u2014 company name, type, status, SIC codes, registered address, accounts due date, confirmation statement due, charges, insolvency history (Companies House UK Gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "company_number": {
            "type": "string",
            "description": "UK Companies House number (e.g. \"00048839\" for Barclays, \"00445790\" for Tesco). Get from search results",
            "minLength": 1
          }
        },
        "required": [
          "company_number"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.edgar.company_search",
      "description": "Search US public companies and SEC filings by name, ticker, or keyword. Returns company name, CIK number, form type, filing date. Covers all companies registered with the US Securities and Exchange Commission (SEC EDGAR)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Company name, ticker, or keyword to search (e.g. \"Apple Inc\", \"TSLA\", \"artificial intelligence\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max results to return (default 10, max 50)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.edgar.filings",
      "description": "List recent SEC filings for a company by CIK number \u2014 10-K (annual), 10-Q (quarterly), 8-K (events), proxy statements. Returns form type, filing date, document URL, description. Up to 1000 filings per company (SEC EDGAR)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cik": {
            "type": "string",
            "description": "SEC CIK number (e.g. \"320193\" for Apple, \"789019\" for Microsoft). Find via company_search",
            "minLength": 1
          }
        },
        "required": [
          "cik"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.edgar.company_facts",
      "description": "XBRL financial facts for a US public company \u2014 revenue, net income, assets, liabilities, equity, EPS, cash, operating income. Returns last 5 reporting periods per metric with form type and date. Structured data from 10-K/10-Q filings (SEC EDGAR)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cik": {
            "type": "string",
            "description": "SEC CIK number (e.g. \"320193\" for Apple). Returns XBRL financial facts: revenue, net income, assets, liabilities",
            "minLength": 1
          }
        },
        "required": [
          "cik"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "social.bluesky.search",
      "description": "Search posts across the Bluesky decentralized social network by keyword. Returns post text, author handle, display name, like/repost/reply counts, timestamps. Sort by relevance or latest. Filter by language (AT Protocol / Bluesky)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query for Bluesky posts (e.g. \"MCP server\", \"AI agents\", \"Claude\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results (default 25, max 100)"
          },
          "sort": {
            "type": "string",
            "enum": [
              "top",
              "latest"
            ],
            "description": "Sort order: \"top\" (relevance) or \"latest\" (chronological)"
          },
          "lang": {
            "type": "string",
            "description": "Filter by language code (e.g. \"en\", \"ja\", \"pt\")"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "social.bluesky.profile",
      "description": "Get a Bluesky user profile \u2014 display name, bio, avatar URL, follower/following/post counts, account creation date. Lookup by handle (e.g. \"jay.bsky.team\") (AT Protocol / Bluesky)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "description": "Bluesky handle (e.g. \"jay.bsky.team\", \"pfrazee.com\", \"apibase.bsky.social\")",
            "minLength": 3
          }
        },
        "required": [
          "handle"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "social.bluesky.feed",
      "description": "Get recent posts from a Bluesky user by handle \u2014 post text, timestamps, like/repost counts. Up to 100 posts per request (AT Protocol / Bluesky)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "description": "Bluesky handle to get posts from (e.g. \"jay.bsky.team\")",
            "minLength": 3
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of posts to return (default 20, max 100)"
          }
        },
        "required": [
          "handle"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "culture.artic.search",
      "description": "Search 120,000+ artworks at the Art Institute of Chicago \u2014 paintings, sculptures, photographs, prints, textiles. Returns title, artist, date, medium, dimensions, IIIF image URL, public domain status. Covers all periods and regions (ARTIC)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query for artworks (e.g. \"monet water lilies\", \"picasso\", \"impressionism\", \"Japanese woodblock\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results (default 10, max 100)"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination (default 1)"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "culture.artic.artwork",
      "description": "Full details for a single artwork \u2014 title, artist, date, medium, dimensions, credit line, place of origin, department, provenance, exhibition history, high-res IIIF image URL. Use artwork ID from search results (ARTIC)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ARTIC artwork ID from search results (e.g. 16568 for Monet Water Lilies)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "culture.artic.artist",
      "description": "Search artists and makers in the Art Institute of Chicago collection \u2014 name, birth/death dates, biography. Find artist IDs for cross-referencing with artwork search (ARTIC)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Artist name to search (e.g. \"Claude Monet\", \"Picasso\", \"Georgia O'Keeffe\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results (default 10, max 100)"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "culture.europeana.search",
      "description": "Search 50M+ cultural heritage objects across 4,000 institutions in 36 European countries \u2014 paintings, photographs, books, maps, 3D objects, music, film. Multilingual (24 languages). Filter by country, media type. Returns title, creator, thumbnail, provider, year (Europeana)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search term (e.g. \"Rembrandt\", \"Mona Lisa\", \"medieval manuscript\", \"Art Nouveau poster\")",
            "minLength": 1
          },
          "rows": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results to return (default 12, max 100)"
          },
          "start": {
            "type": "integer",
            "minimum": 1,
            "description": "Start position for pagination (default 1)"
          },
          "media": {
            "type": "boolean",
            "description": "Only return items with media (images/video/audio) \u2014 default false"
          },
          "country": {
            "type": "string",
            "description": "Filter by country (e.g. \"Netherlands\", \"France\", \"Italy\", \"Germany\")"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "culture.europeana.record",
      "description": "Full metadata for a single cultural heritage object \u2014 title, creator, description, date, language, source, rights, high-res image URL, provider institution, landing page. Use ID from search results (Europeana)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Europeana record ID from search results (e.g. \"/09102/_GNM_693983\" or \"09102/_GNM_693983\")",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "document.convert.to_pdf",
      "description": "Convert Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML, Markdown, RTF, ODT, or images (JPG/PNG/SVG) to PDF. Provide source file as URL. Custom page size and orientation. 200+ format pairs supported (ConvertAPI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "source_url": {
            "type": "string",
            "description": "Publicly accessible URL of the source file to convert (e.g. \"https://example.com/report.docx\")"
          },
          "from_format": {
            "type": "string",
            "enum": [
              "docx",
              "xlsx",
              "pptx",
              "html",
              "md",
              "jpg",
              "png",
              "svg",
              "rtf",
              "odt",
              "txt"
            ],
            "description": "Source file format"
          },
          "page_size": {
            "type": "string",
            "enum": [
              "a4",
              "letter",
              "legal",
              "a3",
              "a5"
            ],
            "description": "PDF page size (default \"a4\")"
          },
          "orientation": {
            "type": "string",
            "enum": [
              "portrait",
              "landscape"
            ],
            "description": "Page orientation (default \"portrait\")"
          }
        },
        "required": [
          "source_url",
          "from_format"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "document.convert.from_pdf",
      "description": "Convert PDF to Word (DOCX), Excel (XLSX), PowerPoint (PPTX), plain text (TXT), or images (JPG/PNG per page). Optional page range selection. Provide PDF as URL (ConvertAPI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "source_url": {
            "type": "string",
            "description": "Publicly accessible URL of the PDF to convert (e.g. \"https://example.com/doc.pdf\")"
          },
          "to_format": {
            "type": "string",
            "enum": [
              "docx",
              "xlsx",
              "pptx",
              "txt",
              "jpg",
              "png"
            ],
            "description": "Target format to convert PDF into"
          },
          "pages": {
            "type": "string",
            "description": "Page range to convert (e.g. \"1-5\", \"1,3,5\", default \"all\")"
          }
        },
        "required": [
          "source_url",
          "to_format"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "document.convert.web_to_pdf",
      "description": "Render any web page URL to PDF with full JavaScript execution \u2014 custom viewport width, lazy content loading, wait delay. Returns PDF download URL (ConvertAPI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Web page URL to render as PDF (e.g. \"https://example.com\")"
          },
          "viewport_width": {
            "type": "integer",
            "minimum": 320,
            "maximum": 3840,
            "description": "Browser viewport width in pixels (default 1280)"
          },
          "delay": {
            "type": "integer",
            "minimum": 0,
            "maximum": 30,
            "description": "Seconds to wait after page load before capturing (default 0)"
          },
          "load_lazy_content": {
            "type": "boolean",
            "description": "Scroll page to trigger lazy-loaded images (default false)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "document.pdf.from_html",
      "description": "Convert HTML content to a PDF document using headless Chrome \u2014 full CSS + JavaScript rendering, custom page size, margins, headers/footers, background colors. Returns a temporary download URL for the generated PDF (API2PDF)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "html": {
            "type": "string",
            "description": "HTML content to convert to PDF (full document or fragment, e.g. \"<h1>Report</h1><p>Content here</p>\")",
            "minLength": 1
          },
          "fileName": {
            "type": "string",
            "description": "Output filename (e.g. \"report.pdf\")"
          },
          "options": {
            "type": "object",
            "properties": {
              "landscape": {
                "type": "boolean",
                "description": "Landscape orientation (default false)"
              },
              "printBackground": {
                "type": "boolean",
                "description": "Render background colors and images (default true)"
              },
              "displayHeaderFooter": {
                "type": "boolean",
                "description": "Show header/footer (default false)"
              },
              "headerTemplate": {
                "type": "string",
                "description": "HTML template for page header"
              },
              "footerTemplate": {
                "type": "string",
                "description": "HTML template for page footer"
              },
              "paperWidth": {
                "type": "number",
                "description": "Page width in inches (default 8.27 for A4)"
              },
              "paperHeight": {
                "type": "number",
                "description": "Page height in inches (default 11.69 for A4)"
              },
              "marginTop": {
                "type": "number",
                "description": "Top margin in inches (default 0.4)"
              },
              "marginBottom": {
                "type": "number",
                "description": "Bottom margin in inches (default 0.4)"
              }
            },
            "description": "PDF rendering options (page size, margins, header/footer)"
          }
        },
        "required": [
          "html"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "document.pdf.from_url",
      "description": "Capture any web page URL as a PDF using headless Chrome with full JS rendering \u2014 perfect for archiving pages, generating reports from dashboards, or creating printable snapshots. Returns temporary PDF download URL (API2PDF)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL to capture as PDF (e.g. \"https://example.com/report\")"
          },
          "fileName": {
            "type": "string",
            "description": "Output filename (e.g. \"snapshot.pdf\")"
          },
          "options": {
            "type": "object",
            "properties": {
              "landscape": {
                "type": "boolean",
                "description": "Landscape orientation (default false)"
              },
              "printBackground": {
                "type": "boolean",
                "description": "Render background colors (default true)"
              },
              "paperWidth": {
                "type": "number",
                "description": "Page width in inches"
              },
              "paperHeight": {
                "type": "number",
                "description": "Page height in inches"
              }
            },
            "description": "PDF rendering options"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "document.pdf.merge",
      "description": "Merge 2-20 PDF documents (provided as URLs) into a single combined PDF. Preserves page order. Returns temporary download URL for the merged result (API2PDF)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "urls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Ordered list of PDF URLs to merge (2-20 URLs)",
            "minItems": 2,
            "maxItems": 20
          },
          "fileName": {
            "type": "string",
            "description": "Output filename for merged PDF (e.g. \"combined.pdf\")"
          }
        },
        "required": [
          "urls"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.podcast.search",
      "description": "Search 4M+ podcasts by keyword \u2014 returns title, author, description, artwork, episode count, language, categories, RSS feed URL. Open directory covering all languages and countries (PodcastIndex)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search term or phrase (e.g. \"artificial intelligence\", \"Lex Fridman\", \"true crime\")",
            "minLength": 2
          },
          "max": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results to return (default 20, max 100)"
          },
          "lang": {
            "type": "string",
            "description": "Filter by language code (e.g. \"en\", \"de\", \"es\", \"ja\")"
          },
          "cat": {
            "type": "string",
            "description": "Filter by category name (e.g. \"Technology\", \"News\", \"Comedy\", \"Business\")"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.podcast.trending",
      "description": "Currently trending podcasts globally \u2014 ranked by recent episode engagement. Filter by language and category. Returns title, author, artwork, trending score, episode count (PodcastIndex)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "max": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of trending podcasts (default 20, max 100)"
          },
          "lang": {
            "type": "string",
            "description": "Filter by language code (e.g. \"en\")"
          },
          "cat": {
            "type": "string",
            "description": "Filter by category (e.g. \"Technology\", \"News\")"
          },
          "since": {
            "type": "integer",
            "description": "Unix timestamp \u2014 only include podcasts with new episodes since this time"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.podcast.episodes",
      "description": "List recent episodes for a podcast by feed ID \u2014 title, description, publish date, audio URL, duration, season/episode numbers. Use feed ID from search or trending results (PodcastIndex)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "PodcastIndex feed ID (from search or trending results)"
          },
          "max": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of episodes to return (default 20, max 100)"
          },
          "since": {
            "type": "integer",
            "description": "Unix timestamp \u2014 only return episodes published after this time"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.podcast.details",
      "description": "Full metadata for a single podcast \u2014 title, author, description, RSS URL, artwork, language, categories, episode count, last update time, funding links (PodcastIndex)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "PodcastIndex feed ID to retrieve full metadata for"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "address.geocodio.geocode",
      "description": "Forward geocode a US or Canada address to coordinates \u2014 returns lat/lng, parsed address components (street, city, state, ZIP, county), accuracy type (rooftop/range/street), and data source. USPS-standardized results with Census data (Geocodio)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "US or Canada address to geocode (e.g. \"1600 Pennsylvania Ave NW, Washington DC\", \"350 5th Ave, New York, NY 10118\")",
            "minLength": 3
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Max results to return (default 5, max 20)"
          }
        },
        "required": [
          "address"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "address.geocodio.reverse",
      "description": "Reverse geocode latitude/longitude to a US or Canada address \u2014 returns formatted address, parsed components (street, city, state, ZIP, county), accuracy type, and source. Supports multiple results ranked by proximity (Geocodio)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude (24-72 range for US/Canada, e.g. 38.8976)",
            "minimum": 24,
            "maximum": 72
          },
          "lon": {
            "type": "number",
            "description": "Longitude (negative for Western Hemisphere, e.g. -77.0365)",
            "minimum": -180,
            "maximum": -50
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Max results to return (default 5, max 20)"
          }
        },
        "required": [
          "lat",
          "lon"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "business.hunter.company",
      "description": "Find professional email addresses and company data for any domain \u2014 organization name, industry, employee count, tech stack, social profiles, email pattern, and verified contact emails with confidence scores, positions, departments, seniority levels. 50M+ domains indexed (Hunter.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Company domain name (e.g. \"stripe.com\", \"google.com\", \"microsoft.com\")",
            "minLength": 3
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max number of emails to return (default 10, max 100)"
          },
          "department": {
            "type": "string",
            "enum": [
              "executive",
              "finance",
              "hr",
              "it",
              "marketing",
              "operations",
              "sales",
              "legal",
              "management",
              "communication"
            ],
            "description": "Filter by department (e.g. \"engineering\", \"sales\", \"marketing\")"
          },
          "type": {
            "type": "string",
            "enum": [
              "personal",
              "generic"
            ],
            "description": "Filter by email type: \"personal\" (name@domain) or \"generic\" (info@domain)"
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "fdic.institutions.search",
      "description": "Search 4,300+ FDIC-insured US financial institutions by name, city, state, or charter type. Returns bank name, FDIC certificate number, total assets, deposits, and location. Official US Government data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Partial or full institution name to search (e.g. \"Chase\", \"Wells Fargo\")"
          },
          "city": {
            "type": "string",
            "description": "City name filter (e.g. \"New York\", \"San Francisco\")"
          },
          "state": {
            "type": "string",
            "description": "US state name filter (e.g. \"California\", \"New York\")"
          },
          "charter_class": {
            "type": "string",
            "enum": [
              "N",
              "SM",
              "NM",
              "SB",
              "OI"
            ],
            "description": "Charter type: N=national, SM=state member, NM=state nonmember, SB=savings bank, OI=OCC-supervised"
          },
          "active": {
            "type": "boolean",
            "description": "Filter by active status. Default true (only active institutions)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results to return, max 50 (default 10)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "fdic.institutions.details",
      "description": "Get full regulatory profile for an FDIC-insured bank by certificate number. Returns address, charter class, regulator, assets, deposits, branches, established date, insurance date, and coordinates.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cert": {
            "type": "integer",
            "description": "FDIC certificate number uniquely identifying the institution (obtain via fdic.search)"
          }
        },
        "required": [
          "cert"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "fdic.institutions.financials",
      "description": "Retrieve quarterly Call Report financial data for an FDIC-insured institution. Returns total assets, deposits, equity, net income, ROA, ROE, net interest margin, and efficiency ratio.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cert": {
            "type": "integer",
            "description": "FDIC certificate number for the institution"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of quarterly periods to return, max 20 (default 4)"
          }
        },
        "required": [
          "cert"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "fdic.institutions.failures",
      "description": "Query the FDIC failed bank list. Returns 4,100+ historical bank failures with failure date, assets at closure, acquiring institution, and estimated loss to the Deposit Insurance Fund. Covers all failures since 1934.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "Two-letter US state code filter (e.g. \"CA\", \"NY\", \"TX\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results to return, max 50 (default 10)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "disease.covid.global",
      "description": "Get aggregated global COVID-19 statistics: total cases (704M+), deaths, recoveries, active cases, critical cases, cases/deaths per million, tests administered, and affected countries count. Data from Worldometers and OWID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "yesterday": {
            "type": "boolean",
            "description": "Return yesterday's data instead of today's (default false)"
          },
          "twoDaysAgo": {
            "type": "boolean",
            "description": "Return data from two days ago for comparison (default false)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "disease.covid.country",
      "description": "Get COVID-19 statistics for a specific country by name or ISO code. Returns cases, deaths, recoveries, active, critical, per-million rates, tests, population, and flag. Covers 215+ countries and territories.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Country name, ISO2 code, or ISO3 code (e.g. \"United States\", \"US\", \"USA\", \"Germany\", \"DE\")"
          },
          "yesterday": {
            "type": "boolean",
            "description": "Return yesterday's data instead of today's (default false)"
          },
          "strict": {
            "type": "boolean",
            "description": "Use strict name matching instead of fuzzy search (default false)"
          }
        },
        "required": [
          "country"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "disease.covid.history",
      "description": "Get historical time-series COVID-19 data for a country or globally. Returns daily case, death, and recovery counts. Useful for trend analysis and longitudinal research. Data from Johns Hopkins CSSE.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Country name, ISO2/ISO3 code, or \"all\" for global aggregate (default \"all\")"
          },
          "lastdays": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1500,
            "description": "Number of most recent days to return (default 30, max ~1500 for full history)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "disease.influenza.cdc",
      "description": "Get US influenza surveillance data from CDC FluView. Returns weekly ILI (influenza-like illness) activity levels by age group, positive test rates by influenza type (A/B), and national summary. Updated weekly.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string",
            "enum": [
              "ilinet",
              "usil"
            ],
            "description": "Data source: \"ilinet\" for ILI network data or \"usil\" for US ILI summary (default \"ilinet\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "who.health.indicators",
      "description": "List 1,000+ WHO Global Health Observatory indicators: life expectancy, mortality rates, disease burden, immunization, nutrition, mental health, environmental health. Returns indicator codes for use with who.data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Keyword to filter indicators by name (e.g. \"mortality\", \"immunization\", \"life expectancy\", \"HIV\", \"malaria\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of indicators to return, max 100 (default 20)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "who.health.data",
      "description": "Retrieve WHO health data for a specific indicator, optionally filtered by country and year range. Returns values for up to 194 countries spanning multiple decades. Official UN member state reporting data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "indicator": {
            "type": "string",
            "description": "WHO indicator code (e.g. \"WHOSIS_000001\" for life expectancy, \"MDG_0000000001\" for under-5 mortality). Get codes from who.indicators"
          },
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-3 country code (e.g. \"USA\", \"DEU\", \"BRA\", \"JPN\"). Omit for all countries"
          },
          "year_from": {
            "type": "integer",
            "description": "Earliest year to include (e.g. 2000)"
          },
          "year_to": {
            "type": "integer",
            "description": "Latest year to include (e.g. 2023)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of data points to return, max 100 (default 20)"
          }
        },
        "required": [
          "indicator"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "who.health.countries",
      "description": "List all 194 WHO member countries and territories with codes and names. Use returned country codes with who.data to filter health indicators by country.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Partial country name to filter (e.g. \"United\", \"Germany\", \"Brazil\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of countries to return, max 200 (default 50)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gdacs.disasters.alerts",
      "description": "Get current and recent global disaster alerts from the UN GDACS system. Returns earthquakes, tropical cyclones, floods, volcanoes, droughts, and tsunamis with color-coded severity (Green/Orange/Red), affected country, coordinates, and population impact estimates.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "event_type": {
            "type": "string",
            "enum": [
              "EQ",
              "TC",
              "FL",
              "VO",
              "DR",
              "TS"
            ],
            "description": "Filter by disaster type: EQ=earthquake, TC=tropical cyclone, FL=flood, VO=volcano, DR=drought, TS=tsunami"
          },
          "alert_level": {
            "type": "string",
            "enum": [
              "Green",
              "Orange",
              "Red"
            ],
            "description": "Minimum alert level filter: Green (low), Orange (medium), Red (high impact)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of events to return, max 50 (default 10)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gdacs.disasters.details",
      "description": "Get detailed information for a specific GDACS disaster event by ID. Returns event name, alert level with justification, affected population at each severity level, coordinates, geometry for mapping, source agency, and situation report links.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "event_id": {
            "type": "integer",
            "description": "GDACS event ID (obtain via gdacs.alerts)"
          },
          "event_type": {
            "type": "string",
            "enum": [
              "EQ",
              "TC",
              "FL",
              "VO",
              "DR",
              "TS"
            ],
            "description": "Event type code: EQ=earthquake, TC=tropical cyclone, FL=flood, VO=volcano, DR=drought, TS=tsunami"
          }
        },
        "required": [
          "event_id",
          "event_type"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gdacs.disasters.history",
      "description": "Query the GDACS historical disaster archive from 2000 onwards. Filter by date range, event type, country, and alert level. Returns past earthquakes, cyclones, floods, and volcanoes for disaster frequency analysis and regional risk assessment.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date_from": {
            "type": "string",
            "description": "Start date in YYYY-MM-DD format (e.g. \"2024-01-01\")"
          },
          "date_to": {
            "type": "string",
            "description": "End date in YYYY-MM-DD format (e.g. \"2024-12-31\")"
          },
          "event_type": {
            "type": "string",
            "enum": [
              "EQ",
              "TC",
              "FL",
              "VO",
              "DR",
              "TS"
            ],
            "description": "Filter by disaster type"
          },
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-3 country code (e.g. \"JPN\", \"PHL\", \"USA\", \"IDN\")"
          },
          "alert_level": {
            "type": "string",
            "enum": [
              "Green",
              "Orange",
              "Red"
            ],
            "description": "Minimum alert level filter"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of events to return, max 50 (default 10)"
          }
        },
        "required": [
          "date_from",
          "date_to"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rateapi.lending.mortgage",
      "description": "Get AI-powered mortgage rate decision from 4,300+ US lenders. Returns recommended actions, current APR rates, estimated monthly payments, and confidence scores. Supports 30yr/15yr fixed and ARM products. Filter by state, amount, and credit tier.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Two-letter US state code (e.g. \"CA\", \"NY\", \"TX\")"
          },
          "amount": {
            "type": "number",
            "minimum": 10000,
            "description": "Loan amount in USD (e.g. 400000 for a $400K mortgage)"
          },
          "term_months": {
            "type": "integer",
            "description": "Loan term in months: 180 (15yr), 360 (30yr), or custom"
          },
          "rate_type": {
            "type": "string",
            "enum": [
              "fixed",
              "adjustable"
            ],
            "description": "Rate type: \"fixed\" or \"adjustable\" (ARM)"
          },
          "intent": {
            "type": "string",
            "enum": [
              "purchase",
              "refinance"
            ],
            "description": "Loan intent: \"purchase\" for buying or \"refinance\""
          },
          "credit_score": {
            "type": "string",
            "enum": [
              "excellent",
              "good",
              "fair",
              "poor"
            ],
            "description": "Credit score tier for rate filtering"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rateapi.lending.auto",
      "description": "Get auto loan rate decision for new and used vehicles from US lenders. Returns recommended financing actions, APR rates by term (24-72 months), and estimated monthly payments. Filter by vehicle type and credit tier.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Two-letter US state code"
          },
          "amount": {
            "type": "number",
            "minimum": 1000,
            "description": "Loan amount in USD (e.g. 35000)"
          },
          "term_months": {
            "type": "string",
            "enum": [
              "24",
              "36",
              "48",
              "60",
              "72"
            ],
            "description": "Loan term: 24, 36, 48, 60, or 72 months"
          },
          "vehicle_type": {
            "type": "string",
            "enum": [
              "new",
              "used"
            ],
            "description": "Vehicle type: \"new\" or \"used\""
          },
          "credit_score": {
            "type": "string",
            "enum": [
              "excellent",
              "good",
              "fair",
              "poor"
            ],
            "description": "Credit score tier"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rateapi.lending.heloc",
      "description": "Get Home Equity Line of Credit (HELOC) rate decision. Returns current HELOC APR rates, recommended actions, and lender comparisons. Filter by combined loan-to-value ratio (CLTV), state, and credit score tier.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Two-letter US state code"
          },
          "cltv": {
            "type": "number",
            "minimum": 0,
            "maximum": 95,
            "description": "Combined loan-to-value ratio (0-95)"
          },
          "credit_score": {
            "type": "string",
            "enum": [
              "excellent",
              "good",
              "fair",
              "poor"
            ],
            "description": "Credit score tier"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rateapi.lending.personal",
      "description": "Get personal loan rate decision from US lenders. Returns recommended financing actions, APR rates by term and amount, and monthly payment estimates. Filter by loan amount, term, and credit score tier.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "minimum": 1000,
            "description": "Loan amount in USD (e.g. 10000)"
          },
          "term_months": {
            "type": "string",
            "enum": [
              "12",
              "24",
              "36",
              "48",
              "60"
            ],
            "description": "Loan term: 12, 24, 36, 48, or 60 months"
          },
          "credit_score": {
            "type": "string",
            "enum": [
              "excellent",
              "good",
              "fair",
              "poor"
            ],
            "description": "Credit score tier"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "twitter.tweets.search",
      "description": "Search Twitter/X tweets by keyword, hashtag, or advanced query. Returns tweet text, author info, engagement metrics (likes, retweets, replies, views), and timestamps. 96% cheaper than official X API. Covers recent tweets.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query \u2014 keywords, hashtags, or advanced operators (e.g. \"AI agents\", \"#crypto\", \"from:elonmusk\")"
          },
          "sort_order": {
            "type": "string",
            "enum": [
              "recency",
              "relevancy"
            ],
            "description": "Sort order: \"recency\" for latest first, \"relevancy\" for most relevant (default recency)"
          },
          "cursor": {
            "type": "string",
            "description": "Pagination cursor from previous response (for next page of results)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "twitter.users.profile",
      "description": "Get a Twitter/X user profile by username. Returns display name, bio, follower/following count, tweet count, verified status, profile image, location, and account creation date.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Twitter/X username without @ (e.g. \"elonmusk\", \"OpenAI\")"
          },
          "user_id": {
            "type": "string",
            "description": "Twitter/X numeric user ID as alternative to username"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "twitter.users.followers",
      "description": "Get paginated follower list for a Twitter/X user. Returns follower profiles with username, display name, bio, follower count, and verified status. Supports cursor pagination.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Twitter/X username to get followers for (without @)"
          },
          "cursor": {
            "type": "string",
            "description": "Pagination cursor from previous response"
          }
        },
        "required": [
          "username"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "twitter.trends.worldwide",
      "description": "Get current trending topics on Twitter/X. Filter by location using WOEID (Where On Earth ID). Returns trend name, search query, and rank. 1=worldwide, 23424977=US, 23424975=UK.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "woeid": {
            "type": "integer",
            "description": "Where On Earth ID for location-specific trends (1=worldwide, 23424977=US, 23424975=UK, 23424856=Japan)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "currents.news.latest",
      "description": "Get latest breaking news from 70+ countries in 18+ languages. Returns full article text, author, source URL, and publication time. Filter by language, country, and category (technology, business, health, sports, science, finance, world).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en\", \"de\", \"fr\", \"ja\", \"zh\"). Default: all languages"
          },
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\", \"JP\")"
          },
          "category": {
            "type": "string",
            "description": "News category filter (e.g. \"technology\", \"business\", \"health\", \"sports\", \"science\", \"entertainment\", \"finance\", \"world\")"
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of articles to return, max 200 (default 10)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "currents.news.search",
      "description": "Search news articles by keyword across 70+ countries and 18+ languages. Returns full article text with Boolean operator support. Filter by language, country, category, and date range.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "string",
            "description": "Search keywords \u2014 supports Boolean operators (e.g. \"AI agents\", \"climate AND policy\")"
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en\", \"es\", \"ar\")"
          },
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code"
          },
          "start_date": {
            "type": "string",
            "description": "Start date in ISO 8601 format (e.g. \"2026-03-01T00:00:00+00:00\")"
          },
          "end_date": {
            "type": "string",
            "description": "End date in ISO 8601 format"
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of articles to return, max 200 (default 10)"
          }
        },
        "required": [
          "keywords"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "currents.news.categories",
      "description": "List all 46 available news categories: technology, business, health, sports, science, entertainment, finance, world, politics, and more. Use to discover valid category values for filtering.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "description": "Response locale (default: en)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "iban.banking.validate",
      "description": "Validate an IBAN and retrieve associated bank info: BIC/SWIFT code, bank name, address, country, currency, and SEPA membership. Supports 80+ IBAN-enabled countries including EU, UK, and MENA. Returns validation result with detailed breakdown.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "iban": {
            "type": "string",
            "description": "IBAN to validate (e.g. \"DE89370400440532013000\", \"GB29NWBK60161331926819\"). Spaces allowed, auto-stripped."
          }
        },
        "required": [
          "iban"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "iban.banking.calculate",
      "description": "Calculate a valid IBAN from domestic bank routing details: country code, bank code, account number, and optional branch code. Returns the computed IBAN with correct checksum. Useful for payment automation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"DE\", \"GB\", \"FR\", \"NL\")",
            "minLength": 2,
            "maxLength": 2
          },
          "bank_code": {
            "type": "string",
            "description": "Domestic bank code (e.g. \"37040044\" for Germany, \"NWBK\" for UK)"
          },
          "account_number": {
            "type": "string",
            "description": "Account number in domestic format"
          },
          "branch_code": {
            "type": "string",
            "description": "Branch/sort code if required by the country (e.g. \"601613\" for UK)"
          }
        },
        "required": [
          "country_code",
          "bank_code",
          "account_number"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chemistry.pubchem.search",
      "description": "Search 100M+ chemical compounds by name, formula, or SMILES string. Returns CID, molecular formula, weight, IUPAC name, SMILES, InChI, XLogP, H-bond donors/acceptors, exact mass, and complexity. The largest public chemical database (PubChem / NCBI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Compound name, formula, or SMILES string (e.g. \"aspirin\", \"C9H8O4\", \"CC(=O)OC1=CC=CC=C1C(=O)O\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Maximum results to return (1-20, default 5)"
          }
        },
        "required": [
          "name"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chemistry.pubchem.properties",
      "description": "Get full physical and chemical properties for a compound by PubChem CID \u2014 molecular formula, weight, SMILES, InChI, InChIKey, XLogP, H-bond donors/acceptors, exact mass, topological polar surface area, complexity, charge, heavy atom count (PubChem / NCBI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cid": {
            "type": "integer",
            "description": "PubChem Compound ID (CID) \u2014 get from compound_search results"
          }
        },
        "required": [
          "cid"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chemistry.pubchem.synonyms",
      "description": "Get all known names, CAS registry numbers, trade names, and identifiers for a chemical compound by PubChem CID. Returns up to 50 synonyms from a database of millions of name variants (PubChem / NCBI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cid": {
            "type": "integer",
            "description": "PubChem Compound ID (CID) \u2014 returns all known names, CAS numbers, trade names"
          }
        },
        "required": [
          "cid"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chemistry.pubchem.hazards",
      "description": "Get GHS (Globally Harmonized System) hazard classification for a compound \u2014 signal words (Danger/Warning), hazard statements (H-codes), precautionary statements (P-codes), pictograms. Essential for chemical safety assessments (PubChem / NCBI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cid": {
            "type": "integer",
            "description": "PubChem Compound ID (CID) \u2014 returns GHS hazard classification, pictograms, signal words"
          }
        },
        "required": [
          "cid"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chemistry.pubchem.bioassays",
      "description": "Get bioactivity assay results for a compound \u2014 active/inactive counts, tested targets, assay types. Shows how the compound performed in biological tests across thousands of assays (PubChem / NCBI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cid": {
            "type": "integer",
            "description": "PubChem Compound ID (CID) \u2014 returns bioactivity assay results (active/inactive counts, targets)"
          }
        },
        "required": [
          "cid"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chemistry.pubchem.structure",
      "description": "Look up a compound by name or identifier and get its chemical structure representations \u2014 SMILES (isomeric + canonical), InChI, InChIKey, molecular formula, and molecular weight. Convert between chemical identifier formats (PubChem / NCBI)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Compound name or identifier (e.g. \"caffeine\", \"50-78-2\") \u2014 returns SMILES, InChI, InChIKey, formula"
          }
        },
        "required": [
          "name"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ev.charging.search",
      "description": "Search 300K+ EV charging stations worldwide by location, country, operator, connector type, and power level. Returns station address, GPS coordinates, connectors (Type 2, CCS, CHAdeMO), power kW, operator, status. Filter by min power for fast charging. Largest open EV charging database (Open Charge Map)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "description": "ISO 2-letter country code to filter by (e.g. \"US\", \"GB\", \"DE\")"
          },
          "latitude": {
            "type": "number",
            "description": "Latitude for location-based search (e.g. 51.5074)"
          },
          "longitude": {
            "type": "number",
            "description": "Longitude for location-based search (e.g. -0.1278)"
          },
          "distance": {
            "type": "number",
            "description": "Search radius in distance_unit (default KM)"
          },
          "distance_unit": {
            "type": "string",
            "enum": [
              "KM",
              "Miles"
            ],
            "description": "Distance unit: KM or Miles (default KM)"
          },
          "operator_id": {
            "type": "integer",
            "description": "Filter by charging network operator ID"
          },
          "connection_type_id": {
            "type": "integer",
            "description": "Filter by connector type (e.g. 25=Type 2, 33=CCS, 2=CHAdeMO)"
          },
          "min_power_kw": {
            "type": "number",
            "description": "Minimum charger power in kW (e.g. 50 for fast charging)"
          },
          "status_type_id": {
            "type": "integer",
            "description": "Filter by status (50=Operational, 100=Not Operational)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum results to return (1-100, default 20)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ev.charging.details",
      "description": "Get full details for a specific EV charging station by ID \u2014 address, GPS coordinates, all connectors with type/power/status, network operator, usage cost, verification date, number of charging points. Use station ID from search or nearby results (Open Charge Map)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Open Charge Map station ID \u2014 get from search or nearby results"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ev.charging.nearby",
      "description": "Find the nearest EV charging stations to GPS coordinates within a radius (default 5km). Returns stations sorted by distance with connector types, power levels, and availability status. Filter by minimum power kW and connector type for DC fast charging (Open Charge Map)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "GPS latitude of your location (e.g. 40.7128)"
          },
          "longitude": {
            "type": "number",
            "description": "GPS longitude of your location (e.g. -74.0060)"
          },
          "radius": {
            "type": "number",
            "description": "Search radius in KM (default 5)"
          },
          "min_power_kw": {
            "type": "number",
            "description": "Minimum charger power in kW (e.g. 50 for DC fast charging)"
          },
          "connection_type_id": {
            "type": "integer",
            "description": "Filter by connector type (25=Type 2, 33=CCS, 2=CHAdeMO)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum results (1-50, default 10)"
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "security.ipqs.ip_check",
      "description": "Check any IP address for fraud signals \u2014 proxy, VPN, Tor, bot, crawler detection with fraud score (0-100). Returns geolocation (country, city, ISP, ASN), abuse velocity, connection type, and 9+ risk indicators. Essential for e-commerce fraud prevention (IPQualityScore)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "IPv4 or IPv6 address to check (e.g. \"8.8.8.8\", \"2001:4860:4860::8888\")"
          },
          "strictness": {
            "type": "integer",
            "minimum": 0,
            "maximum": 3,
            "description": "Detection strictness 0-3 (0=least strict, 3=most aggressive). Higher catches more fraud but may flag legitimate users"
          },
          "allow_public_access_points": {
            "type": "boolean",
            "description": "Allow public WiFi/library IPs to pass without penalty (default false)"
          }
        },
        "required": [
          "ip"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "security.ipqs.email_check",
      "description": "Validate email for fraud risk \u2014 checks deliverability, disposable/temporary providers, honeypot traps, spam traps, leaked credentials, catch-all detection. Returns fraud score (0-100), SMTP verification, domain age, and abuse history. Goes beyond basic validation (IPQualityScore)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address to validate and check for fraud (e.g. \"user@example.com\")"
          },
          "fast": {
            "type": "boolean",
            "description": "Skip SMTP verification for faster response (default false)"
          },
          "abuse_strictness": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2,
            "description": "Abuse detection sensitivity 0-2 (0=low, 2=aggressive)"
          }
        },
        "required": [
          "email"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "security.ipqs.url_check",
      "description": "Scan any URL for malware, phishing, suspicious content, adult content, spamming, and domain parking. Returns risk score (0-100), domain reputation, domain age, IP address, HTTP status. Protects agents from visiting malicious URLs (IPQualityScore)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Full URL to scan for malware, phishing, and threats (e.g. \"https://example.com/page\")"
          },
          "strictness": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2,
            "description": "Scanning strictness 0-2 (0=least strict, 2=most aggressive)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "security.ipqs.phone_check",
      "description": "Check phone number for fraud risk \u2014 detects VOIP, prepaid, risky numbers, carrier info, line type (mobile/landline/VOIP), active status, leaked data. Returns fraud score (0-100) and geographic location. Supports international numbers with country filter (IPQualityScore)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "phone": {
            "type": "string",
            "description": "Phone number to check in E.164 or national format (e.g. \"+12125551234\", \"2125551234\")"
          },
          "country": {
            "type": "string",
            "description": "ISO 2-letter country code for national format numbers (e.g. \"US\", \"GB\")"
          },
          "strictness": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2,
            "description": "Fraud detection strictness 0-2"
          }
        },
        "required": [
          "phone"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.chem.resolve",
      "description": "Convert any chemical identifier to SMILES, InChI, and InChIKey. Input a compound name (e.g. \"aspirin\"), CAS number (e.g. \"50-78-2\"), SMILES, or InChIKey and get all other representations. The only universal chemical ID converter \u2014 essential for chemistry workflows and cross-database lookups (NCI CACTUS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Chemical identifier to resolve \u2014 compound name (e.g. \"aspirin\", \"caffeine\"), CAS number (e.g. \"50-78-2\"), SMILES (e.g. \"CC(=O)Oc1ccccc1C(O)=O\"), or InChIKey (e.g. \"BSYNRYMUTXBXSQ-UHFFFAOYSA-N\")",
            "minLength": 1
          },
          "output": {
            "type": "string",
            "enum": [
              "all",
              "smiles",
              "stdinchi",
              "stdinchikey"
            ],
            "description": "Output format: \"all\" (SMILES + InChI + InChIKey), \"smiles\" (canonical SMILES only), \"stdinchi\" (Standard InChI only), \"stdinchikey\" (InChIKey only). Default: \"all\"",
            "default": "all"
          }
        },
        "required": [
          "identifier"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.chem.formula",
      "description": "Get molecular formula and molecular weight for any compound by name, CAS number, or SMILES. Returns formula (e.g. \"C9H8O4\" for aspirin) and weight in daltons (e.g. 180.157). Accepts any chemical identifier format (NCI CACTUS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Chemical identifier \u2014 compound name (e.g. \"ibuprofen\"), CAS number (e.g. \"15687-27-1\"), or SMILES string. Returns molecular formula and weight",
            "minLength": 1
          }
        },
        "required": [
          "identifier"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.chem.names",
      "description": "Get all known names, synonyms, CAS numbers, and registry IDs for a chemical compound. Input any identifier (name, CAS, SMILES, InChIKey) and get the full list of aliases. Useful for finding alternative names, trade names, and cross-references (NCI CACTUS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Chemical identifier to look up synonyms for \u2014 compound name, CAS number, SMILES, or InChIKey (e.g. \"aspirin\", \"50-78-2\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of names/synonyms to return (1-100). Default: 20",
            "default": 20
          }
        },
        "required": [
          "identifier"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.safety.recalls",
      "description": "Search NHTSA vehicle recalls by make, model, and year. Returns campaign number, manufacturer, subject, summary, consequence, remedy, affected components, and units affected. Covers all US recalls from 1966 to present. Essential for automotive safety, insurance, and fleet management agents (NHTSA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "make": {
            "type": "string",
            "description": "Vehicle manufacturer name (e.g. \"Toyota\", \"Ford\", \"Tesla\", \"BMW\")",
            "minLength": 1
          },
          "model": {
            "type": "string",
            "description": "Vehicle model name (e.g. \"Camry\", \"Model 3\", \"F-150\", \"X5\")",
            "minLength": 1
          },
          "model_year": {
            "type": "integer",
            "description": "Model year (e.g. 2023). NHTSA recall data available from 1966 to present",
            "minimum": 1966,
            "maximum": 2030
          }
        },
        "required": [
          "make",
          "model",
          "model_year"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.safety.complaints",
      "description": "Search consumer complaints filed with NHTSA about vehicles. Returns incident details including crash/fire flags, injuries, deaths, affected components, and complaint summary. Covers US vehicles from ~1995 to present. Critical for safety research and product liability analysis (NHTSA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "make": {
            "type": "string",
            "description": "Vehicle manufacturer name (e.g. \"Toyota\", \"Ford\", \"Tesla\", \"Honda\")",
            "minLength": 1
          },
          "model": {
            "type": "string",
            "description": "Vehicle model name (e.g. \"Camry\", \"Model 3\", \"Civic\")",
            "minLength": 1
          },
          "model_year": {
            "type": "integer",
            "description": "Model year (e.g. 2023). NHTSA complaint data available from ~1995 to present",
            "minimum": 1995,
            "maximum": 2030
          }
        },
        "required": [
          "make",
          "model",
          "model_year"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.safety.ratings",
      "description": "Get NCAP 5-Star crash test safety ratings by make/model/year or vehicle ID. Returns overall rating, frontal crash, side crash, and rollover ratings (1-5 stars). Also shows related complaints, recalls, and investigation counts. Available from ~2011 for US-market vehicles (NHTSA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "make": {
            "type": "string",
            "description": "Vehicle manufacturer name (e.g. \"Toyota\", \"Honda\"). Required unless vehicle_id is provided"
          },
          "model": {
            "type": "string",
            "description": "Vehicle model name (e.g. \"Camry\", \"Civic\"). Required unless vehicle_id is provided"
          },
          "model_year": {
            "type": "integer",
            "minimum": 2011,
            "maximum": 2030,
            "description": "Model year (e.g. 2023). 5-Star ratings available from ~2011. Required unless vehicle_id is provided"
          },
          "vehicle_id": {
            "type": "integer",
            "description": "NHTSA Vehicle ID for full ratings detail (get from initial search). Overrides make/model/year if provided"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.safety.investigations",
      "description": "Search NHTSA defect investigation records by manufacturer and model. Returns investigation number, type (preliminary/engineering analysis), description, latest activity date, and NHTSA action number. Covers active and closed investigations for US vehicles (NHTSA)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "make": {
            "type": "string",
            "description": "Vehicle manufacturer name (e.g. \"Tesla\", \"GM\", \"Ford\")",
            "minLength": 1
          },
          "model": {
            "type": "string",
            "description": "Vehicle model name to narrow results (e.g. \"Model 3\", \"Bolt EV\")"
          }
        },
        "required": [
          "make"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.pdb.search",
      "description": "Search 220K+ macromolecular 3D structures in the Protein Data Bank by keyword, protein name, organism, or author. Returns PDB IDs with relevance scores. The canonical database for structural biology, X-ray crystallography, cryo-EM, and NMR structures (RCSB PDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query \u2014 keyword, protein name, organism, or author (e.g. \"insulin\", \"hemoglobin\", \"Homo sapiens\", \"Watson\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum number of results (1-50). Default: 10",
            "default": 10
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.pdb.structure",
      "description": "Get full details for a 3D protein structure by PDB ID \u2014 title, experimental method (X-ray/cryo-EM/NMR), resolution, molecular weight, chain counts (protein/DNA/RNA), deposit date, primary citation with DOI and PubMed ID. Essential for drug design and structural analysis (RCSB PDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "pdb_id": {
            "type": "string",
            "description": "4-character PDB identifier (e.g. \"4HHB\" for hemoglobin, \"1BNA\" for DNA, \"6LU7\" for SARS-CoV-2 main protease)",
            "minLength": 4,
            "maxLength": 4
          }
        },
        "required": [
          "pdb_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.pdb.ligand",
      "description": "Get chemical component data for a ligand/small molecule by its 3-letter PDB code \u2014 name, molecular formula, weight, type, formal charge, heavy atom count, SMILES/InChI descriptors. Covers ATP, HEM, NAG, drug molecules, cofactors, ions, and 40K+ chemical entities in the PDB (RCSB PDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ligand_id": {
            "type": "string",
            "description": "Chemical component identifier \u2014 standard 3-letter code (e.g. \"ATP\" for adenosine triphosphate, \"HEM\" for heme, \"NAG\" for N-acetylglucosamine, \"ZN\" for zinc ion)",
            "minLength": 1,
            "maxLength": 5
          }
        },
        "required": [
          "ligand_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.pdb.sequence",
      "description": "Search protein structures by amino acid sequence similarity (BLAST). Input a protein sequence and find all PDB structures with matching chains. Configure identity cutoff (e.g. 90%) and E-value threshold. Returns PDB entity IDs ranked by similarity score. Essential for homology modeling and structure prediction (RCSB PDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sequence": {
            "type": "string",
            "description": "Protein amino acid sequence in one-letter code (e.g. \"MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH\" \u2014 first 50 residues of human hemoglobin alpha)",
            "minLength": 10
          },
          "identity_cutoff": {
            "type": "number",
            "minimum": 0.1,
            "maximum": 1,
            "description": "Minimum sequence identity (0.1-1.0). Default: 0.9 (90% identical)",
            "default": 0.9
          },
          "evalue_cutoff": {
            "type": "number",
            "description": "Maximum E-value threshold for BLAST significance. Default: 0.1",
            "default": 0.1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum number of results (1-50). Default: 10",
            "default": 10
          }
        },
        "required": [
          "sequence"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.adzuna.search",
      "description": "Search job listings across 16+ countries (US, UK, AU, CA, DE, FR, and more) by keyword, location, category, salary range. Returns job title, company, salary, location, and apply URL. 70K+ developer jobs in US alone (Adzuna)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "what": {
            "type": "string",
            "description": "Job search keywords (e.g. \"python developer\", \"marketing manager\", \"nurse\")"
          },
          "where": {
            "type": "string",
            "description": "Location (e.g. \"new york\", \"london\", \"berlin\")"
          },
          "country": {
            "type": "string",
            "description": "Country code: us, gb, au, ca, de, fr, nl, in, br, pl, nz, za, sg, at, ch, it, ru (default us)",
            "default": "us"
          },
          "category": {
            "type": "string",
            "description": "Job category tag (e.g. \"it-jobs\", \"sales-jobs\", \"engineering-jobs\"). Get tags from adzuna.categories"
          },
          "salary_min": {
            "type": "number",
            "description": "Minimum salary filter"
          },
          "salary_max": {
            "type": "number",
            "description": "Maximum salary filter"
          },
          "full_time": {
            "type": "boolean",
            "description": "Filter full-time jobs only"
          },
          "permanent": {
            "type": "boolean",
            "description": "Filter permanent jobs only"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Max results (1-20, default 10)",
            "default": 10
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number",
            "default": 1
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.adzuna.categories",
      "description": "List all job categories available in a country \u2014 IT, Sales, Engineering, HR, Healthcare, Hospitality, and more. Use category tags to filter adzuna.search results (Adzuna)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Country code (default us)",
            "default": "us"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.adzuna.salary",
      "description": "Get salary distribution for a job title \u2014 returns histogram of salary buckets with job counts. Example: \"python developer\" in US \u2192 $20K-$140K distribution. Use for salary benchmarking and market research (Adzuna)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "what": {
            "type": "string",
            "description": "Job title or keywords for salary histogram (e.g. \"python developer\", \"data scientist\")"
          },
          "where": {
            "type": "string",
            "description": "Location for salary data"
          },
          "country": {
            "type": "string",
            "description": "Country code (default us)",
            "default": "us"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sports.bdl.games",
      "description": "Get NBA and NFL game results by date \u2014 scores, teams, status (Final/In Progress/Scheduled). Filter by date, season, or team. Covers all NBA and NFL games with real-time scores (BallDontLie)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Game date (YYYY-MM-DD, e.g. \"2026-03-29\"). Returns all games on that date"
          },
          "season": {
            "type": "integer",
            "description": "Season year (e.g. 2025 for 2025-26 season)"
          },
          "team_id": {
            "type": "integer",
            "description": "Filter by team ID (get IDs from bdl.teams)"
          },
          "sport": {
            "type": "string",
            "enum": [
              "nba",
              "nfl"
            ],
            "description": "Sport league: \"nba\" (default) or \"nfl\"",
            "default": "nba"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Max results (1-25, default 10)",
            "default": 10
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sports.bdl.teams",
      "description": "List NBA and NFL teams with conference, division, city, and abbreviation. Filter by conference (East/West for NBA, AFC/NFC for NFL) or division (BallDontLie)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "conference": {
            "type": "string",
            "description": "Filter by conference (e.g. \"East\", \"West\" for NBA; \"AFC\", \"NFC\" for NFL)"
          },
          "division": {
            "type": "string",
            "description": "Filter by division (e.g. \"Atlantic\", \"Pacific\" for NBA)"
          },
          "sport": {
            "type": "string",
            "enum": [
              "nba",
              "nfl"
            ],
            "description": "Sport league: \"nba\" (default) or \"nfl\"",
            "default": "nba"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Max results (1-30, default 30)",
            "default": 30
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sports.bdl.players",
      "description": "Search NBA players by name \u2014 returns position, jersey number, and current team. Example: \"lebron\" \u2192 LeBron James #23 F, Los Angeles Lakers (BallDontLie)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Search by player name (e.g. \"lebron\", \"curry\", \"mahomes\")"
          },
          "team_id": {
            "type": "integer",
            "description": "Filter by team ID"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Max results (1-25, default 10)",
            "default": 10
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "address.postal.lookup",
      "description": "Look up a postal/ZIP code in 60+ countries \u2014 returns city name, state/region, and lat/lon coordinates. Supports US, UK, Germany, France, Japan, Brazil, India, Australia, and 50+ more countries. Provide country code (ISO 2-letter) + postal code (Zippopotam.us)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"us\", \"de\", \"gb\", \"fr\", \"jp\", \"br\", \"in\", \"au\"). Supports 60+ countries",
            "minLength": 2,
            "maxLength": 2
          },
          "postal_code": {
            "type": "string",
            "description": "Postal/ZIP code (e.g. \"90210\" for US, \"10115\" for Germany, \"SW1A\" for UK, \"75001\" for France)",
            "minLength": 1
          }
        },
        "required": [
          "country_code",
          "postal_code"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "logistics.dhl.track",
      "description": "Track a DHL shipment by tracking number \u2014 returns current status, delivery events timeline, origin/destination, estimated delivery date, and service type. Supports all DHL services: Express, Parcel, eCommerce, Freight. Official DHL data for 220+ countries (DHL)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tracking_number": {
            "type": "string",
            "description": "DHL tracking number (e.g. \"00340434292135100186\" for DHL Paket, \"1234567890\" for DHL Express). Supports all DHL services: Express, Parcel, eCommerce, Freight",
            "minLength": 1
          }
        },
        "required": [
          "tracking_number"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "address.ukpost.lookup",
      "description": "Look up a UK postcode \u2014 returns district, region, country, ward, parish, parliamentary constituency, and lat/lon coordinates. Backed by ONS/Ordnance Survey data. Example: \"SW1A 1AA\" \u2192 Westminster, London (Postcodes.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "postcode": {
            "type": "string",
            "description": "UK postcode to look up (e.g. \"SW1A 1AA\" for Westminster, \"EC2R 8AH\" for City of London, \"M1 1AA\" for Manchester). Returns district, region, country, lat/lon, parliamentary constituency",
            "minLength": 1
          }
        },
        "required": [
          "postcode"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "address.ukpost.nearest",
      "description": "Find nearest UK postcodes to a lat/lon coordinate \u2014 returns postcodes sorted by distance with district info. Use for reverse geocoding in the UK (Postcodes.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude (e.g. 51.5074 for London)"
          },
          "lon": {
            "type": "number",
            "description": "Longitude (e.g. -0.1278 for London)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Max results (1-10, default 5)",
            "default": 5
          }
        },
        "required": [
          "lat",
          "lon"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "address.ukpost.validate",
      "description": "Check if a UK postcode is valid and exists \u2014 returns true/false. Use for form validation or data cleaning (Postcodes.io)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "postcode": {
            "type": "string",
            "description": "UK postcode to validate (e.g. \"SW1A 1AA\"). Returns true if valid format and exists",
            "minLength": 1
          }
        },
        "required": [
          "postcode"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "logistics.shipengine.rates",
      "description": "Compare shipping rates across multiple carriers (USPS, UPS, FedEx, DHL) for a package. Provide origin/destination ZIP codes, weight in pounds, and optional dimensions. Returns sorted rates with price, delivery time, and service type. Up to 84% off retail rates (ShipEngine)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from_zip": {
            "type": "string",
            "description": "Origin US ZIP code (e.g. \"10001\" for NYC)",
            "minLength": 1
          },
          "to_zip": {
            "type": "string",
            "description": "Destination US ZIP code (e.g. \"90210\" for Beverly Hills)",
            "minLength": 1
          },
          "weight_lb": {
            "type": "number",
            "description": "Package weight in pounds (e.g. 5)",
            "minimum": 0.1
          },
          "length": {
            "type": "number",
            "description": "Package length in inches"
          },
          "width": {
            "type": "number",
            "description": "Package width in inches"
          },
          "height": {
            "type": "number",
            "description": "Package height in inches"
          },
          "from_country": {
            "type": "string",
            "description": "Origin country code (default US)",
            "default": "US"
          },
          "to_country": {
            "type": "string",
            "description": "Destination country code (default US)",
            "default": "US"
          }
        },
        "required": [
          "from_zip",
          "to_zip",
          "weight_lb"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "logistics.shipengine.validate",
      "description": "Validate and standardize a US address \u2014 returns USPS-verified address with corrected spelling, ZIP+4, and validation status. Catches typos, missing info, and invalid addresses before shipping (ShipEngine)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "address_line1": {
            "type": "string",
            "description": "Street address (e.g. \"1 E 161 St\")",
            "minLength": 1
          },
          "address_line2": {
            "type": "string",
            "description": "Apartment, suite, unit (e.g. \"Apt 4B\")"
          },
          "city": {
            "type": "string",
            "description": "City name (e.g. \"Bronx\")"
          },
          "state": {
            "type": "string",
            "description": "State code (e.g. \"NY\")"
          },
          "postal_code": {
            "type": "string",
            "description": "ZIP code (e.g. \"10451\")"
          },
          "country": {
            "type": "string",
            "description": "Country code (default US)",
            "default": "US"
          }
        },
        "required": [
          "address_line1"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "logistics.shipengine.carriers",
      "description": "List all connected shipping carriers with their IDs and codes. Shows which carriers are available for rate comparison (USPS, UPS, FedEx, DHL, etc.) (ShipEngine)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Optional filter on carrier name (e.g. \"ups\", \"usps\"). Returns all connected carriers if omitted"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.weatherapi.current",
      "description": "Get current weather conditions for any location worldwide \u2014 temperature, wind, humidity, pressure, UV index, cloud cover, feels-like temp. Accepts city name, coordinates, zip code, or airport code. 100K+ stations globally (WeatherAPI.com)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Location query \u2014 city name (e.g. \"London\"), coordinates (\"48.8,2.35\"), US zip (\"10001\"), UK postcode (\"SW1\"), IP address, or IATA airport code (\"JFK\")",
            "minLength": 1
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.weatherapi.forecast",
      "description": "Get 3-day weather forecast \u2014 daily min/max temperature, conditions, wind, precipitation, humidity, rain/snow chance, UV index. Accepts any location query (WeatherAPI.com)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Location query \u2014 city name, coordinates, zip code, or airport code",
            "minLength": 1
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 3,
            "description": "Forecast days (1-3, default 3)",
            "default": 3
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.weatherapi.astronomy",
      "description": "Get sunrise, sunset, moonrise, moonset times and moon phase for any location and date. Returns moon illumination percentage and phase name (WeatherAPI.com)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Location query \u2014 city name, coordinates, or zip code",
            "minLength": 1
          },
          "date": {
            "type": "string",
            "description": "Date for astronomy data (YYYY-MM-DD, default today)"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.weatherapi.search",
      "description": "Search and autocomplete location names \u2014 returns matching cities with coordinates. Type partial name (e.g. \"lon\" \u2192 London, \"mos\" \u2192 Moscow). Use result coordinates with other weather tools (WeatherAPI.com)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query \u2014 partial city name for autocomplete (e.g. \"lon\" \u2192 London, \"mos\" \u2192 Moscow)",
            "minLength": 1
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "dev.code.execute",
      "description": "Execute source code in a sandboxed environment \u2014 71 programming languages supported (Python, JavaScript, Java, C++, Go, Rust, C#, Bash, Ruby, PHP, and 60+ more). Returns stdout, stderr, execution time, and memory usage. Safe sandboxed execution with CPU/memory limits. Use code.languages to get language IDs (Judge0 CE)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "language_id": {
            "type": "integer",
            "description": "Language ID from code.languages (e.g. 71=Python 3, 63=JavaScript, 62=Java, 54=C++, 60=Go, 73=Rust, 51=C#, 46=Bash). Call code.languages for full list"
          },
          "source_code": {
            "type": "string",
            "description": "Source code to execute",
            "minLength": 1
          },
          "stdin": {
            "type": "string",
            "description": "Standard input to feed to the program"
          },
          "cpu_time_limit": {
            "type": "number",
            "description": "CPU time limit in seconds (default 5, max 15)"
          },
          "memory_limit": {
            "type": "number",
            "description": "Memory limit in KB (default 128000 = 128MB)"
          }
        },
        "required": [
          "language_id",
          "source_code"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "dev.code.languages",
      "description": "List all 71 available programming languages and their IDs for code execution. Common IDs: 71=Python 3.8, 63=JavaScript (Node.js), 62=Java, 54=C++ (GCC), 60=Go, 73=Rust, 51=C#, 46=Bash. Returns full list with compiler/interpreter versions (Judge0 CE)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Optional filter \u2014 substring match on language name (e.g. \"python\", \"java\", \"rust\"). Returns all 71 languages if omitted"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "web.scrape.extract",
      "description": "Extract raw HTML from any URL \u2014 cheapest web scraping API ($0.00013 for simple sites). Returns decoded HTML content, HTTP status code, and content length. Use for data extraction, content analysis, or price monitoring. Handles anti-bot protection automatically (Zyte)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL to scrape \u2014 returns raw HTML content. Fast and cheap ($0.00013 for simple sites). Example: \"https://example.com\""
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "web.scrape.browser",
      "description": "Render a URL with headless browser and return JS-rendered HTML. Use for SPAs, React/Vue apps, or pages with dynamic content that raw HTTP cannot capture. Returns fully rendered DOM as HTML text (Zyte)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL to render with headless browser \u2014 returns JS-rendered HTML. Use for SPAs, dynamic content. More expensive than extract. Example: \"https://example.com\""
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "web.scrape.screenshot",
      "description": "Capture a full-page screenshot of any URL \u2014 returns base64-encoded PNG image. Use for visual verification, monitoring, or archiving. Headless browser renders the page before capture (Zyte)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL to screenshot \u2014 returns base64-encoded PNG image. Use for visual verification or page capture. Example: \"https://example.com\""
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.carmarket.search",
      "description": "Search millions of active US car listings by make, model, year, price range, mileage, ZIP code, and radius. Returns VIN, price, miles, dealer info, Carfax status, and days on market. Filter by seller type (dealer/private) and color. Data from all major US marketplaces (MarketCheck)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "make": {
            "type": "string",
            "description": "Car manufacturer (e.g. \"Toyota\", \"Honda\", \"BMW\", \"Tesla\")"
          },
          "model": {
            "type": "string",
            "description": "Car model (e.g. \"Camry\", \"Civic\", \"Model 3\")"
          },
          "year": {
            "type": "integer",
            "description": "Model year (e.g. 2023, 2024)"
          },
          "price_min": {
            "type": "number",
            "description": "Minimum price in USD"
          },
          "price_max": {
            "type": "number",
            "description": "Maximum price in USD"
          },
          "miles_max": {
            "type": "number",
            "description": "Maximum mileage"
          },
          "zip": {
            "type": "string",
            "description": "US ZIP code to search near (e.g. \"10001\")"
          },
          "radius": {
            "type": "number",
            "description": "Search radius in miles from ZIP (max 100 on free tier)"
          },
          "seller_type": {
            "type": "string",
            "enum": [
              "dealer",
              "private"
            ],
            "description": "Filter by seller type"
          },
          "exterior_color": {
            "type": "string",
            "description": "Filter by exterior color (e.g. \"White\", \"Black\", \"Red\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Max results (1-25, default 10)",
            "default": 10
          },
          "start": {
            "type": "integer",
            "minimum": 0,
            "description": "Offset for pagination"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "vehicle.carmarket.listing",
      "description": "Get full details for a specific car listing by ID \u2014 VIN, price, MSRP, mileage, full build specs (engine, transmission, drivetrain, fuel type), dealer contact, Carfax 1-owner status, days on market, photos. Get listing IDs from carmarket.search (MarketCheck)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "MarketCheck listing ID (e.g. \"3TMCZ5AN5PM564843-883937ce-f335\"). Get IDs from carmarket.search results",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "security.threatintel.reputation",
      "description": "Get domain reputation score (0-100) with detailed security test results \u2014 WHOIS age, SSL validity, mail server config, blacklist status, and more. Higher score = safer domain. Essential for security agents evaluating domain trustworthiness (Threat Intelligence Platform)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to check reputation (e.g. \"google.com\", \"suspicious-site.xyz\"). Returns reputation score 0-100 and security test results",
            "minLength": 1
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "security.threatintel.malware",
      "description": "Check if a domain is associated with malware, phishing, or other threats. Returns safe score (0-100) and detailed warning descriptions. Use for URL safety verification before agent navigation (Threat Intelligence Platform)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to check for malware and phishing (e.g. \"example.com\"). Returns safe score 0-100 and warning details",
            "minLength": 1
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "security.threatintel.infrastructure",
      "description": "Analyze domain infrastructure \u2014 all associated IPv4 addresses, geolocation (country, city, region), subnets, and resource types (web, mail, DNS). Reveals hosting setup, CDN usage, and geographic distribution (Threat Intelligence Platform)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to analyze infrastructure (e.g. \"google.com\"). Returns all associated IPs, geolocation, subnets, and resource types",
            "minLength": 1
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "podcasts.listennotes.search",
      "description": "Full-text search across 3.7M+ podcasts and 186M+ episodes. Search by keyword, filter by language and genre, sort by relevance or date. Returns episode titles, podcast names, audio URLs, and duration. The most comprehensive podcast search API available (Listen Notes)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query \u2014 full-text search across 186M+ podcast episodes and 3.7M+ podcasts (e.g. \"artificial intelligence\", \"startup funding\", \"true crime\")",
            "minLength": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "episode",
              "podcast"
            ],
            "description": "Search type: \"episode\" (default) searches episode titles/descriptions, \"podcast\" searches podcast-level metadata",
            "default": "episode"
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code (e.g. \"en\", \"es\", \"fr\"). Filters results by podcast language"
          },
          "genre_ids": {
            "type": "string",
            "description": "Comma-separated genre IDs to filter (e.g. \"93,127\" for Business+Technology). See Listen Notes genre list"
          },
          "sort_by_date": {
            "type": "boolean",
            "description": "Sort by date (true) or relevance (false, default)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Max results (1-10, default 10)",
            "default": 10
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Offset for pagination"
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "podcasts.listennotes.podcast",
      "description": "Get full details for a podcast by Listen Notes ID \u2014 title, publisher, description, episode count, language, country, website, genres, and latest publish date. Use IDs from listennotes.search or listennotes.best (Listen Notes)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Listen Notes podcast ID (e.g. \"4d3fe717742d4963a85562e9f84d8c79\"). Get IDs from listennotes.search or listennotes.best",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "podcasts.listennotes.best",
      "description": "Get curated lists of the best podcasts by genre \u2014 Technology (127), Business (93), TV & Film (68), Sports (77), Leisure (82), and 60+ more genres. Paginated, returns podcast titles, publishers, episode counts, and descriptions (Listen Notes)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "genre_id": {
            "type": "integer",
            "description": "Genre ID to filter (e.g. 93=Business, 127=Technology, 68=TV & Film, 82=Leisure, 77=Sports). Omit for overall best"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)",
            "default": 1
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.audd.recognize",
      "description": "Identify a song from an audio file URL \u2014 like Shazam for AI agents. Analyzes audio fingerprint against 80M+ tracks and returns artist, title, album, release date, plus Spotify and Apple Music links. Accepts MP3, WAV, OGG, or any audio URL (AudD)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL of audio file to identify (MP3, WAV, OGG, etc.). The API analyzes the audio and matches it against 80M+ tracks. Example: \"https://example.com/song.mp3\""
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "music.audd.lyrics",
      "description": "Search for song lyrics by artist name, song title, or both. Returns full lyrics text, artist, title, and metadata. Query examples: \"imagine john lennon\", \"bohemian rhapsody\", \"taylor swift love story\" (AudD)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query for lyrics \u2014 artist name, song title, or both (e.g. \"imagine john lennon\", \"bohemian rhapsody\", \"taylor swift love story\")",
            "minLength": 1
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.materials.search",
      "description": "Search 150,000+ inorganic materials by chemical formula, elements, band gap, stability, or metallic character. Returns DFT-computed properties: band gap, formation energy, density, crystal system. Filter semiconductors (band_gap 1-3 eV), stable battery cathodes (elements Li,Fe,O + is_stable), or metals. DOE/Lawrence Berkeley Lab data, CC BY 4.0 (Materials Project)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "formula": {
            "type": "string",
            "description": "Chemical formula to search (e.g. \"Si\", \"Fe2O3\", \"LiFePO4\"). Exact or reduced formula"
          },
          "elements": {
            "type": "string",
            "description": "Comma-separated elements to filter (e.g. \"Li,Fe,O\" \u2014 returns materials containing these elements)"
          },
          "band_gap_min": {
            "type": "number",
            "description": "Minimum band gap in eV (e.g. 1.0). Use with band_gap_max for range filter"
          },
          "band_gap_max": {
            "type": "number",
            "description": "Maximum band gap in eV (e.g. 3.0). Use with band_gap_min for range filter"
          },
          "is_stable": {
            "type": "boolean",
            "description": "Filter for thermodynamically stable materials only (energy_above_hull = 0)"
          },
          "is_metal": {
            "type": "boolean",
            "description": "Filter for metals (true) or non-metals (false)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max results (1-50, default 10)",
            "default": 10
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Offset for pagination"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.materials.details",
      "description": "Get full DFT-computed properties for a material by Materials Project ID (e.g. mp-149 for silicon). Returns: band gap, formation energy, thermodynamic stability, density, crystal structure, spacegroup, magnetism, bulk/shear modulus, Poisson ratio, Fermi energy, database cross-references. 150K+ materials (Materials Project)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "material_id": {
            "type": "string",
            "description": "Materials Project ID (e.g. \"mp-149\" for silicon, \"mp-19017\" for LiFePO4). Get IDs from materials.search",
            "minLength": 1
          }
        },
        "required": [
          "material_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "science.materials.elasticity",
      "description": "Get mechanical/elastic properties for a material: bulk modulus, shear modulus (Voigt-Reuss-Hill averages), universal anisotropy index, Poisson ratio, and full 6x6 elastic tensor (IEEE format). Essential for structural materials screening and mechanical simulations (Materials Project)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "material_id": {
            "type": "string",
            "description": "Materials Project ID (e.g. \"mp-149\"). Returns bulk/shear modulus, Poisson ratio, elastic tensor",
            "minLength": 1
          }
        },
        "required": [
          "material_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "logistics.tracking.register",
      "description": "Register a tracking number to begin monitoring shipment status. Auto-detects carrier from 3,200+ supported carriers worldwide (UPS, FedEx, DHL, USPS, China Post, Royal Mail, etc.). Must be called before tracking.status. Returns detected carrier and registration status. Consumes quota \u2014 200 free/month (17TRACK)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tracking_number": {
            "type": "string",
            "description": "Package tracking number (e.g. \"1Z999AA10123456784\" for UPS, \"9400111899560243888780\" for USPS). Carrier is auto-detected from 3,200+ supported carriers",
            "minLength": 3,
            "maxLength": 50
          },
          "tag": {
            "type": "string",
            "maxLength": 50,
            "description": "Optional label for this shipment (e.g. order ID, customer reference). Up to 50 characters"
          }
        },
        "required": [
          "tracking_number"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "logistics.tracking.status",
      "description": "Get full tracking timeline for a registered package \u2014 latest status, all carrier scan events with timestamps and locations, delivery milestones, transit days, origin/destination countries. Supports 3,200+ carriers across 220 countries. Call tracking.register first if number is not yet registered (17TRACK)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tracking_number": {
            "type": "string",
            "description": "Tracking number previously registered with tracking.register. Returns full event timeline, carrier info, milestones, and delivery status",
            "minLength": 3,
            "maxLength": 50
          }
        },
        "required": [
          "tracking_number"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "logistics.tracking.list",
      "description": "List all tracking numbers registered in your account with status summary \u2014 package status, latest event, transit days, registration time. Paginated. Filter by status: NotFound, InTransit, Delivered, Expired, Exception (17TRACK)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)",
            "default": 1
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Results per page (1-100, default 20)",
            "default": 20
          },
          "status": {
            "type": "string",
            "enum": [
              "NotFound",
              "InTransit",
              "Delivered",
              "Expired",
              "Exception"
            ],
            "description": "Filter by package status"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "account.analytics.usage",
      "description": "Get your API usage summary \u2014 total calls, total cost, cache hit rate, average latency, and unique tools used. Filter by period: 1 day, 7 days, or 30 days. See how efficiently you are using the platform. Free, no charge (APIbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "period": {
            "type": "string",
            "enum": [
              "1d",
              "7d",
              "30d"
            ],
            "description": "Time period for usage stats: \"1d\" (24 hours), \"7d\" (7 days), or \"30d\" (30 days). Default: \"7d\"",
            "default": "7d"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "account.analytics.tools",
      "description": "Get per-tool usage breakdown \u2014 calls, cost, cache hits, average latency, last used. Sort by cost (highest spend), calls (most used), or latency (slowest). Identify your most-used and most-expensive tools. Free, no charge (APIbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sort": {
            "type": "string",
            "enum": [
              "cost",
              "calls",
              "latency"
            ],
            "description": "Sort tools by: \"cost\" (highest spend), \"calls\" (most used), or \"latency\" (slowest). Default: \"calls\"",
            "default": "calls"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max number of tools to return (1-100). Default: 20",
            "default": 20
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "account.analytics.timeseries",
      "description": "Get time-series usage data \u2014 calls, cost, cache hits per hour or day over a period. Visualize usage patterns and trends. Choose granularity: hourly (for 1d period) or daily (for 7d/30d). Free, no charge (APIbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "period": {
            "type": "string",
            "enum": [
              "1d",
              "7d",
              "30d"
            ],
            "description": "Time period: \"1d\", \"7d\", or \"30d\". Default: \"7d\"",
            "default": "7d"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "hour",
              "day"
            ],
            "description": "Time bucket granularity: \"hour\" or \"day\". Default: \"day\"",
            "default": "day"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "platform.quality.tool",
      "description": "Get quality metrics for any tool \u2014 uptime percentage, p50/p95 latency, error rate, total calls in last 24h. Check reliability before calling expensive tools. Updated every 10 minutes. Free, no charge (APIbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tool_id": {
            "type": "string",
            "description": "Tool ID to get quality metrics for (e.g. \"crypto.get_price\", \"weather.get_current\")",
            "minLength": 1
          }
        },
        "required": [
          "tool_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "platform.quality.rankings",
      "description": "Get ranked list of tools by quality \u2014 sort by uptime (most reliable), latency (fastest), or error_rate (fewest errors). Filter by category (e.g. \"crypto\", \"weather\"). Discover the best tools for your use case. Free, no charge (APIbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sort": {
            "type": "string",
            "enum": [
              "uptime",
              "latency",
              "error_rate"
            ],
            "description": "Sort by: \"uptime\" (highest availability), \"latency\" (fastest p50), or \"error_rate\" (lowest errors). Default: \"uptime\"",
            "default": "uptime"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max number of tools to return (1-100). Default: 20",
            "default": 20
          },
          "category": {
            "type": "string",
            "description": "Filter by tool category prefix (e.g. \"crypto\", \"weather\", \"finance\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "platform.batch.call",
      "description": "Execute up to 20 tool calls in a single request with parallel execution (max 10 concurrent). Each call runs the full pipeline independently with its own billing. Returns array of results with per-call status, data, cost, and duration. Save 5x round-trips vs sequential calls. Batch wrapper is free \u2014 you pay only for individual tool calls (APIbase)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "calls": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tool_id": {
                  "type": "string",
                  "description": "Tool ID to call (e.g. \"crypto.get_price\")",
                  "minLength": 1
                },
                "params": {
                  "type": "object",
                  "additionalProperties": {},
                  "description": "Parameters for the tool call"
                },
                "idempotency_key": {
                  "type": "string",
                  "description": "Optional idempotency key for this specific call"
                }
              },
              "required": [
                "tool_id",
                "params"
              ]
            },
            "description": "Array of tool calls to execute in parallel (max 20)",
            "minItems": 1,
            "maxItems": 20
          },
          "max_parallel": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Max concurrent calls (1-10). Default: 10",
            "default": 10
          }
        },
        "required": [
          "calls"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.theirstack.search",
      "description": "Search 181M+ job postings worldwide \u2014 filter by keywords, country, remote, tech stack, recency. Returns title, company, location, salary range, post date. Job market intelligence for hiring analysis and talent sourcing (TheirStack)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "string",
            "description": "Comma-separated job title keywords (e.g. \"python developer, backend engineer\"). Matches job_title_or filter"
          },
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"DE\", \"IN\")"
          },
          "remote": {
            "type": "boolean",
            "description": "Filter remote-only jobs"
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 90,
            "description": "Max age in days (1-90). Only jobs posted within this window"
          },
          "technologies": {
            "type": "string",
            "description": "Comma-separated tech stack filter (e.g. \"kubernetes, python, react\"). Matches technologies_or"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Max results (1-25, default 10)",
            "default": 10
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.theirstack.companies",
      "description": "Find companies by technology stack \u2014 filter by technologies (kubernetes, react, python...), country, minimum active jobs. Returns company name, URL, job count, tech stack. Identify employers using specific technologies (TheirStack)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "technologies": {
            "type": "string",
            "description": "Comma-separated tech stack filter (e.g. \"kubernetes, docker, aws\"). Find companies using these technologies"
          },
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. \"US\", \"DE\", \"IN\")"
          },
          "min_jobs": {
            "type": "integer",
            "minimum": 1,
            "description": "Minimum number of active job postings"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Max results (1-25, default 10)",
            "default": 10
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.jooble.search",
      "description": "Search aggregated job listings across 70+ countries \u2014 filter by keywords, location, radius, salary, company name. Returns title, company, location, salary, source, direct link. 9M+ active listings from thousands of job boards (Jooble)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "string",
            "description": "Job search keywords (e.g. \"python developer\", \"marketing manager\", \"nurse\")"
          },
          "location": {
            "type": "string",
            "description": "Location (e.g. \"New York\", \"London\", \"Berlin\", \"Remote\")"
          },
          "radius": {
            "type": "string",
            "enum": [
              "0",
              "4",
              "8",
              "16",
              "26",
              "40",
              "80"
            ],
            "description": "Search radius in km from location: 0, 4, 8, 16, 26, 40, or 80"
          },
          "salary": {
            "type": "number",
            "description": "Minimum salary filter (numeric)"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)",
            "default": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Max results per page (1-20, default 10)",
            "default": 10
          },
          "company_search": {
            "type": "boolean",
            "description": "Set true to search by company name instead of job title"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.arbeitnow.browse",
      "description": "Browse European job listings \u2014 100 jobs per page sorted by newest. Returns title, company, location, remote flag, tags, job types, direct link. Updated hourly. EU-focused: Germany, Austria, Switzerland, Netherlands, and more. Open public API (Arbeitnow)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1). Each page returns ~100 EU job listings sorted by newest first. No server-side search \u2014 use page to browse",
            "default": 1
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.reed.search",
      "description": "Search UK job listings \u2014 filter by keywords, location, distance, salary range (GBP), contract type (permanent/contract/temp), full/part time. Returns title, company, salary, applications count, direct link. UK largest job board (Reed.co.uk)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "string",
            "description": "Job search keywords (e.g. \"python developer\", \"data scientist\", \"nurse\")"
          },
          "location": {
            "type": "string",
            "description": "UK location \u2014 city, town, or postcode (e.g. \"London\", \"Manchester\", \"SW1A 1AA\")"
          },
          "distance": {
            "type": "integer",
            "minimum": 0,
            "description": "Search radius in miles from location (default 10)"
          },
          "salary_min": {
            "type": "number",
            "description": "Minimum annual salary in GBP (e.g. 30000)"
          },
          "salary_max": {
            "type": "number",
            "description": "Maximum annual salary in GBP (e.g. 80000)"
          },
          "permanent": {
            "type": "boolean",
            "description": "Filter permanent positions only"
          },
          "contract": {
            "type": "boolean",
            "description": "Filter contract positions only"
          },
          "full_time": {
            "type": "boolean",
            "description": "Filter full-time positions only"
          },
          "part_time": {
            "type": "boolean",
            "description": "Filter part-time positions only"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results (1-100, default 25)",
            "default": 25
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of results to skip for pagination (must be divisible by limit)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.reed.details",
      "description": "Get full details of a UK job listing by ID \u2014 title, company, full salary info (min/max GBP, annual/hourly/daily), contract type, full/part time, application count, full HTML description, external apply URL. Use job IDs from reed.search results (Reed.co.uk)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "job_id": {
            "type": "integer",
            "description": "Reed job ID (from search results). Example: 56448344"
          }
        },
        "required": [
          "job_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.remotive.search",
      "description": "Search curated remote-only job listings \u2014 filter by keywords and category (software-dev, design, marketing, data, devops, etc.). Returns title, company, salary, job type, location requirements, tags. Global remote positions only (Remotive)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Job search keywords (e.g. \"python\", \"react developer\", \"product manager\")"
          },
          "category": {
            "type": "string",
            "description": "Job category slug: software-dev, design, customer-support, writing, marketing, sales, product, business, data, devops, finance, hr, qa, all-others"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max results (1-50, default 20)",
            "default": 20
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ecommerce.amazon.search",
      "description": "Search Amazon products by keyword \u2014 filter by price range, sort by relevance/price/rating/reviews/newest. Returns title, ASIN, price, rating, Prime flag, image. 12 marketplaces: US, UK, CA, DE, FR, IT, ES, AU, IN, MX, BR, JP (Canopy API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search keywords (e.g. \"wireless headphones\", \"raspberry pi 5\")"
          },
          "domain": {
            "type": "string",
            "description": "Amazon marketplace: US, UK, CA, DE, FR, IT, ES, AU, IN, MX, BR, JP (default US)",
            "default": "US"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination"
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "rating",
              "reviews",
              "newest"
            ],
            "description": "Sort order: relevance, price_asc, price_desc, rating, reviews, newest"
          },
          "price_min": {
            "type": "number",
            "description": "Minimum price filter (in marketplace currency)"
          },
          "price_max": {
            "type": "number",
            "description": "Maximum price filter (in marketplace currency)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ecommerce.amazon.product",
      "description": "Get full Amazon product details by ASIN \u2014 title, brand, price, rating, stock status, feature bullets, categories, seller name. Use ASINs from canopy.search. 12 Amazon marketplaces supported (Canopy API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "asin": {
            "type": "string",
            "description": "Amazon ASIN product ID (e.g. \"B0CRSNCJ6Y\"). Get ASINs from canopy.search"
          },
          "domain": {
            "type": "string",
            "description": "Amazon marketplace: US, UK, CA, DE, FR, IT, ES, AU, IN, MX, BR, JP (default US)",
            "default": "US"
          }
        },
        "required": [
          "asin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ecommerce.amazon.offers",
      "description": "Get all third-party seller offers for an Amazon product \u2014 price, condition (new/used), seller name & rating, Buy Box winner flag, Fulfilled by Amazon, delivery estimate. Price comparison across sellers (Canopy API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "asin": {
            "type": "string",
            "description": "Amazon ASIN product ID. Returns all third-party offers with Buy Box winner, seller ratings, delivery info"
          },
          "domain": {
            "type": "string",
            "description": "Amazon marketplace: US, UK, CA, DE, FR, IT, ES, AU, IN, MX, BR, JP (default US)",
            "default": "US"
          }
        },
        "required": [
          "asin"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ecommerce.amazon.deals",
      "description": "Browse current Amazon deals \u2014 original price vs deal price, product title, ASIN, deal link. Paginated, 500+ active deals. 12 Amazon marketplaces (Canopy API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Amazon marketplace: US, UK, CA, DE, FR, IT, ES, AU, IN, MX, BR, JP (default US)",
            "default": "US"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "scraping.spider.scrape",
      "description": "Scrape any web page and get clean content \u2014 markdown (default), plain text, or raw HTML. Handles JavaScript rendering, anti-bot bypass, proxy rotation. Returns LLM-ready output. Cheapest web scraper with PAYG pricing (Spider.cloud)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL to scrape (e.g. \"https://example.com/page\")"
          },
          "format": {
            "type": "string",
            "enum": [
              "markdown",
              "text",
              "raw",
              "commonmark"
            ],
            "description": "Output format: markdown (default, best for LLMs), text (plain), raw (HTML), commonmark",
            "default": "markdown"
          },
          "readability": {
            "type": "boolean",
            "description": "Enable readability mode \u2014 pre-processes page for LLM consumption"
          },
          "wait_for": {
            "type": "integer",
            "minimum": 0,
            "maximum": 30000,
            "description": "Wait N ms for JS to render before scraping (0-30000)"
          }
        },
        "required": [
          "url"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "scraping.spider.search",
      "description": "Web search that returns page titles, descriptions, and URLs. Combine with spider.scrape to get full content. Results ranked by relevance (Spider.cloud)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Web search query (e.g. \"best MCP servers 2026\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Max results (1-20, default 5)",
            "default": 5
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.imgflip.memes",
      "description": "Get top 100 popular meme templates \u2014 Drake Hotline Bling, Two Buttons, Distracted Boyfriend, and more. Returns template ID, name, image URL, box count. Use IDs with imgflip.caption to generate memes (Imgflip)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Optional: filter memes by name (client-side). Returns top 100 popular meme templates."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.imgflip.caption",
      "description": "Generate a captioned meme image from a template ID + top/bottom text. Returns direct image URL. Use imgflip.memes to find template IDs. 100K+ templates available (Imgflip)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "template_id": {
            "type": "string",
            "description": "Meme template ID from imgflip.memes (e.g. \"181913649\" for Drake Hotline Bling, \"87743020\" for Two Buttons)"
          },
          "top_text": {
            "type": "string",
            "description": "Top text on the meme"
          },
          "bottom_text": {
            "type": "string",
            "description": "Bottom text on the meme"
          }
        },
        "required": [
          "template_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "recipes.cocktail.search",
      "description": "Search 10,000+ cocktail recipes by name or filter by ingredient. Returns name, category, glass type, instructions, ingredients with measures, image. Search \"margarita\" or filter by \"Vodka\" (TheCocktailDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Cocktail name to search (e.g. \"margarita\", \"mojito\", \"old fashioned\")"
          },
          "ingredient": {
            "type": "string",
            "description": "Filter by ingredient (e.g. \"Vodka\", \"Rum\", \"Gin\"). Returns cocktails containing this ingredient. Use name OR ingredient, not both."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "recipes.cocktail.random",
      "description": "Get a random cocktail recipe with full details \u2014 name, category, glass, instructions, ingredients, measures, image. Great for discovery and recommendations (TheCocktailDB)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1,
            "description": "Always returns 1 random cocktail with full recipe",
            "default": 1
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "developer.github.search",
      "description": "Search GitHub repositories by keyword, language, stars, topics. Returns name, description, stars, forks, language, license, owner. Sort by stars/forks/updated. 86K+ MCP repos, 372M+ total repos (GitHub API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query (e.g. \"mcp server\", \"react framework\", \"language:python stars:>1000\")"
          },
          "sort": {
            "type": "string",
            "enum": [
              "stars",
              "forks",
              "updated",
              "help-wanted-issues"
            ],
            "description": "Sort by: stars (default), forks, updated, help-wanted-issues",
            "default": "stars"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Max results (1-30, default 10)",
            "default": 10
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "developer.github.user",
      "description": "Get a GitHub user profile \u2014 name, bio, public repos count, followers, company, location, join date. Works for users and organizations (GitHub API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "GitHub username (e.g. \"torvalds\", \"whiteknightonhorse\")"
          }
        },
        "required": [
          "username"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "developer.github.repo",
      "description": "Get full details of a GitHub repository \u2014 description, stars, forks, language, topics, license, last update. Public repos only (GitHub API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "owner": {
            "type": "string",
            "description": "Repository owner (e.g. \"facebook\", \"microsoft\")"
          },
          "repo": {
            "type": "string",
            "description": "Repository name (e.g. \"react\", \"vscode\")"
          }
        },
        "required": [
          "owner",
          "repo"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "knowledge.wikidata.search",
      "description": "Search 100M+ structured entities in Wikidata \u2014 people, companies, places, concepts. Returns entity ID, label, description. Use IDs with wikidata.entity for full details. CC-0 public domain (Wikidata)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query (e.g. \"Tesla\", \"Barack Obama\", \"JavaScript\", \"Mount Everest\")"
          },
          "language": {
            "type": "string",
            "description": "Language code for labels (e.g. \"en\", \"de\", \"fr\", \"ja\"). Default: en",
            "default": "en"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Max results (1-20, default 10)",
            "default": 10
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "knowledge.wikidata.entity",
      "description": "Get structured data for a Wikidata entity by ID (e.g. Q42 = Douglas Adams). Returns labels, descriptions, aliases, and up to 20 property statements. 300+ languages supported. CC-0 (Wikidata)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Wikidata entity ID (e.g. \"Q42\" for Douglas Adams, \"Q478214\" for Tesla Inc). Get IDs from wikidata.search"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "language.dictionary.define",
      "description": "Get word definition \u2014 phonetic pronunciation, part of speech, definitions with examples, synonyms, antonyms, audio URL. Supports 12 languages: en, es, fr, de, it, pt, ru, ar, hi, ja, ko, zh (Free Dictionary API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "word": {
            "type": "string",
            "description": "Word to define (e.g. \"algorithm\", \"serendipity\", \"ubuntu\")"
          },
          "language": {
            "type": "string",
            "description": "Language code: en, es, fr, de, it, pt, ru, ar, hi, ja, ko, zh (default: en)",
            "default": "en"
          }
        },
        "required": [
          "word"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "language.dictionary.words",
      "description": "Find words by meaning, sound, rhyme, or spelling pattern. \"happy\" \u2192 pleased, blissful. \"algorithm\" rhymes \u2192 rhythm, logarithm. Great for writing, creative tasks, word games (Datamuse)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "meaning": {
            "type": "string",
            "description": "Find words with this meaning (e.g. \"happy\" \u2192 pleased, blissful, content)"
          },
          "sounds_like": {
            "type": "string",
            "description": "Find words that sound like this (e.g. \"elefant\" \u2192 elephant)"
          },
          "rhymes_with": {
            "type": "string",
            "description": "Find words that rhyme with this (e.g. \"algorithm\" \u2192 rhythm, logarithm)"
          },
          "starts_with": {
            "type": "string",
            "description": "Find words starting with these letters (e.g. \"algor\" \u2192 algorithm, algorithmic)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Max results (1-25, default 10)",
            "default": 10
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "noaa.weather.forecast",
      "title": "NOAA 7-Day Forecast",
      "description": "Get 7-day weather forecast for a US location by latitude/longitude. Returns day and night periods with temperature (\u00b0F), precipitation chance, wind speed/direction, and detailed forecast text. Powered by NOAA National Weather Service (api.weather.gov). US contiguous only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "Latitude in decimal degrees (US contiguous only: 24\u201350)",
            "minimum": 24,
            "maximum": 50
          },
          "longitude": {
            "type": "number",
            "description": "Longitude in decimal degrees (US contiguous only: \u2212125 to \u221266)",
            "minimum": -125,
            "maximum": -66
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "noaa.weather.hourly",
      "title": "NOAA Hourly Forecast",
      "description": "Get hourly weather forecast (next 48 hours) for a US location by latitude/longitude. Returns temperature (\u00b0F), precipitation chance, wind speed/direction, and short conditions per hour. Powered by NOAA National Weather Service. US contiguous only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "Latitude in decimal degrees (US contiguous only: 24\u201350)",
            "minimum": 24,
            "maximum": 50
          },
          "longitude": {
            "type": "number",
            "description": "Longitude in decimal degrees (US contiguous only: \u2212125 to \u221266)",
            "minimum": -125,
            "maximum": -66
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "noaa.weather.observation",
      "title": "NOAA Latest Observation",
      "description": "Get latest weather observation from the nearest ASOS/AWOS station to a US location. Returns current temperature (\u00b0C/\u00b0F), humidity, wind, pressure, visibility, dewpoint, heat index, wind chill. Powered by NOAA National Weather Service. US contiguous only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "Latitude in decimal degrees (US contiguous only: 24\u201350)",
            "minimum": 24,
            "maximum": 50
          },
          "longitude": {
            "type": "number",
            "description": "Longitude in decimal degrees (US contiguous only: \u2212125 to \u221266)",
            "minimum": -125,
            "maximum": -66
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "whoisjson.ssl.check",
      "title": "SSL Certificate Check",
      "description": "Validate SSL/TLS certificate for any domain. Returns issuer (org, CN), validity dates, subject CN, wildcard status, key size, and Subject Alternative Names (SAN) list. Useful for security audits, monitoring cert expiration, and verifying HTTPS configuration (WhoisJSON)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to check SSL certificate (e.g. google.com, apibase.pro)",
            "minLength": 1
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "whoisjson.dns.subdomains",
      "title": "Subdomain Discovery",
      "description": "Discover subdomains for any domain via DNS brute-force enumeration. Returns subdomain names, DNS record types (A/CNAME/MX), resolved IPs, and active/inactive status. Useful for security reconnaissance, asset inventory, and infrastructure mapping (WhoisJSON)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to discover subdomains (e.g. github.com, example.com)",
            "minLength": 1
          }
        },
        "required": [
          "domain"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "npm.packages.downloads",
      "title": "npm Download Stats",
      "description": "Get download count for any npm package over a time period: last-day, last-week, last-month, last-year. Useful for measuring package popularity, adoption trends, and comparing alternatives (e.g. express: 92M/week).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "npm package name (e.g. express, lodash, typescript)",
            "minLength": 1
          },
          "period": {
            "type": "string",
            "enum": [
              "last-day",
              "last-week",
              "last-month",
              "last-year"
            ],
            "description": "Time period for download stats (default: last-week)"
          }
        },
        "required": [
          "package"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "npm.packages.info",
      "title": "npm Package Info",
      "description": "Get metadata for any npm package: version, description, license, dependencies, maintainers, repository URL, keywords, engines. 2.1M+ packages. Supports scoped packages (@scope/name). Returns latest version by default or a specific version.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "npm package name (e.g. express, react, @anthropic-ai/sdk)",
            "minLength": 1
          },
          "version": {
            "type": "string",
            "description": "Specific version to fetch (e.g. 5.2.1). Defaults to latest"
          }
        },
        "required": [
          "package"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "npm.packages.search",
      "title": "npm Package Search",
      "description": "Search 2.1M+ npm packages by keyword. Returns ranked results with quality, popularity, and maintenance scores, download counts, dependents, license, publisher. Find libraries for any task (e.g. \"mcp server\", \"react hooks\", \"typescript orm\").",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query (e.g. \"mcp server\", \"react hooks\", \"typescript orm\")",
            "minLength": 1
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results to return (1-20, default 10)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "npm.packages.versions",
      "title": "npm Package Versions",
      "description": "List all published versions of an npm package with dist-tags (latest, next, beta), deprecation status, and total version count. Returns the 50 most recent versions. Useful for dependency auditing and upgrade planning.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "npm package name to list all versions (e.g. express, react)",
            "minLength": 1
          }
        },
        "required": [
          "package"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "osv.security.batch",
      "title": "Batch Vulnerability Scan",
      "description": "Scan up to 100 packages at once for known vulnerabilities. Submit package+version+ecosystem triples (e.g. full requirements.txt or package.json dependencies) and get vulnerability matches for all in a single call. Ideal for full dependency tree security audits.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "queries": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "package": {
                  "type": "string",
                  "description": "Package name",
                  "minLength": 1
                },
                "version": {
                  "type": "string",
                  "description": "Package version",
                  "minLength": 1
                },
                "ecosystem": {
                  "type": "string",
                  "enum": [
                    "npm",
                    "PyPI",
                    "Go",
                    "Maven",
                    "crates.io",
                    "NuGet",
                    "Packagist",
                    "RubyGems",
                    "Pub",
                    "Hex",
                    "SwiftURL",
                    "Linux",
                    "Android",
                    "OSS-Fuzz",
                    "GIT"
                  ],
                  "description": "Package ecosystem (npm, PyPI, Go, Maven, crates.io, NuGet, Packagist, RubyGems, etc.)"
                }
              },
              "required": [
                "package",
                "version",
                "ecosystem"
              ]
            },
            "description": "List of package+version+ecosystem to check (max 100)",
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "queries"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "osv.security.get",
      "title": "Get Vulnerability Details",
      "description": "Retrieve full details for a vulnerability by OSV ID (GHSA-xxxx), CVE ID (CVE-2021-xxxxx), or ecosystem ID (PYSEC/RUSTSEC/GO). Returns summary, CVSS severity, affected packages with fix versions, and reference links.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "vuln_id": {
            "type": "string",
            "description": "Vulnerability ID \u2014 OSV (e.g. GHSA-35jh-r3h4-6jhm), CVE (e.g. CVE-2021-23337), or PYSEC/GO/RUSTSEC ID",
            "minLength": 1
          }
        },
        "required": [
          "vuln_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "osv.security.query",
      "title": "Query Package Vulnerabilities",
      "description": "Check known vulnerabilities for a specific package version in any ecosystem (npm, PyPI, Go, Maven, Rust, NuGet, 14+ more). Returns CVE/GHSA IDs, severity scores, and affected package counts. Powered by Google OSV.dev \u2014 aggregates GitHub Security Advisories, NVD, and ecosystem-native databases.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "Package name (e.g. lodash, requests, gin-gonic/gin)",
            "minLength": 1
          },
          "version": {
            "type": "string",
            "description": "Package version to check (e.g. 4.17.20, 2.25.0)",
            "minLength": 1
          },
          "ecosystem": {
            "type": "string",
            "enum": [
              "npm",
              "PyPI",
              "Go",
              "Maven",
              "crates.io",
              "NuGet",
              "Packagist",
              "RubyGems",
              "Pub",
              "Hex",
              "SwiftURL",
              "Linux",
              "Android",
              "OSS-Fuzz",
              "GIT"
            ],
            "description": "Package ecosystem (npm, PyPI, Go, Maven, crates.io, NuGet, Packagist, RubyGems, etc.)"
          }
        },
        "required": [
          "package",
          "version",
          "ecosystem"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "census.data.demographics",
      "title": "US Demographics Data",
      "description": "Get demographic composition for any US geography \u2014 median age, race (white/Black/Asian), Hispanic/Latino population, and bachelor's degree attainment. Source: ACS 5-year estimates (US Census Bureau). Useful for market research, policy analysis, and neighborhood profiling.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state_fips": {
            "type": "string",
            "description": "US state FIPS code (e.g. 06 for California, 36 for New York, * for all states)",
            "minLength": 1,
            "maxLength": 2
          },
          "county_fips": {
            "type": "string",
            "description": "County FIPS code within the state (e.g. 037 for Los Angeles, * for all counties). Omit for state-level data."
          },
          "year": {
            "type": "integer",
            "minimum": 2010,
            "maximum": 2023,
            "description": "Survey year (default 2022). ACS 5-year estimates available 2010-2022."
          }
        },
        "required": [
          "state_fips"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "census.data.economic",
      "title": "US Economic Data",
      "description": "Get economic indicators for any US geography \u2014 median household income, population in poverty, and unemployed count. Source: ACS 5-year estimates (US Census Bureau). Key data for market sizing, real estate analysis, and business location intelligence.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state_fips": {
            "type": "string",
            "description": "US state FIPS code (e.g. 06 for California, 36 for New York, * for all states)",
            "minLength": 1,
            "maxLength": 2
          },
          "county_fips": {
            "type": "string",
            "description": "County FIPS code within the state (e.g. 037 for Los Angeles, * for all counties). Omit for state-level data."
          },
          "year": {
            "type": "integer",
            "minimum": 2010,
            "maximum": 2023,
            "description": "Survey year (default 2022). ACS 5-year estimates available 2010-2022."
          }
        },
        "required": [
          "state_fips"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "census.data.housing",
      "title": "US Housing Data",
      "description": "Get housing statistics for any US geography \u2014 total units, median home value, median rent, owner-occupied vs renter-occupied counts. Source: ACS 5-year estimates (US Census Bureau). Essential for real estate agents, property valuations, and housing market analysis.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state_fips": {
            "type": "string",
            "description": "US state FIPS code (e.g. 06 for California, 36 for New York, * for all states)",
            "minLength": 1,
            "maxLength": 2
          },
          "county_fips": {
            "type": "string",
            "description": "County FIPS code within the state (e.g. 037 for Los Angeles, * for all counties). Omit for state-level data."
          },
          "year": {
            "type": "integer",
            "minimum": 2010,
            "maximum": 2023,
            "description": "Survey year (default 2022). ACS 5-year estimates available 2010-2022."
          }
        },
        "required": [
          "state_fips"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "census.data.population",
      "title": "US Population Data",
      "description": "Get population counts for any US geography by FIPS code \u2014 total, male, female. Covers all 50 states, 3,000+ counties, and sub-county areas. Source: American Community Survey 5-year estimates (US Census Bureau). Public domain, updated annually.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state_fips": {
            "type": "string",
            "description": "US state FIPS code (e.g. 06 for California, 36 for New York, * for all states)",
            "minLength": 1,
            "maxLength": 2
          },
          "county_fips": {
            "type": "string",
            "description": "County FIPS code within the state (e.g. 037 for Los Angeles, * for all counties). Omit for state-level data."
          },
          "year": {
            "type": "integer",
            "minimum": 2010,
            "maximum": 2023,
            "description": "Survey year (default 2022). ACS 5-year estimates available 2010-2022."
          }
        },
        "required": [
          "state_fips"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "spending.federal.agency",
      "title": "Federal Agency Spending",
      "description": "Search federal awards by agency name (e.g. \"Defense\", \"NASA\", \"Health and Human Services\"). Returns top awards by amount for a fiscal year. Source: USAspending.gov \u2014 covers all federal agencies.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agency_name": {
            "type": "string",
            "description": "Federal agency name or keyword (e.g. \"Defense\", \"NASA\", \"Health and Human Services\")",
            "minLength": 1
          },
          "fiscal_year": {
            "type": "integer",
            "minimum": 2000,
            "maximum": 2026,
            "description": "Fiscal year (e.g. 2025). Default: current year."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Number of top awards to return (1-25, default 10)"
          }
        },
        "required": [
          "agency_name"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "spending.federal.awards",
      "title": "Federal Award Search",
      "description": "Search 60M+ US federal contract and grant awards by keyword, recipient, or NAICS code. Returns award amount, recipient, agency, dates, and description. Sorted by amount descending. Source: USAspending.gov (DATA Act mandate, US Gov open data).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Search keyword for federal awards (e.g. \"artificial intelligence\", \"cybersecurity\", company name)",
            "minLength": 1
          },
          "fiscal_year": {
            "type": "integer",
            "minimum": 2000,
            "maximum": 2026,
            "description": "Fiscal year to filter (e.g. 2025). Default: current year."
          },
          "award_type": {
            "type": "string",
            "enum": [
              "contracts",
              "grants",
              "all"
            ],
            "description": "Filter by award type: contracts, grants, or all (default: all)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Number of results to return (1-25, default 10)"
          }
        },
        "required": [
          "keyword"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "spending.federal.geography",
      "title": "Federal Spending by State",
      "description": "Get total US federal spending by state for contracts, grants, or all awards in a fiscal year. Returns all 50+ states sorted by spending amount. Useful for regional economic analysis and policy research. Source: USAspending.gov.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fiscal_year": {
            "type": "integer",
            "minimum": 2017,
            "maximum": 2026,
            "description": "Fiscal year (e.g. 2025). Default: current year."
          },
          "award_type": {
            "type": "string",
            "enum": [
              "contracts",
              "grants",
              "all"
            ],
            "description": "Filter by award type: contracts, grants, or all (default: all)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sam.gov.entity_detail",
      "title": "SAM.gov Entity Detail",
      "description": "Get full SAM.gov registration details for a federal contractor by UEI (Unique Entity Identifier). Returns legal name, CAGE code, addresses, NAICS/PSC codes, business certifications, entity structure, organization type, and registration dates. Source: SAM.gov (GSA).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "uei": {
            "type": "string",
            "description": "Unique Entity Identifier (UEI) \u2014 12-character SAM.gov ID (e.g. KM99JJBNQ9M5 for Lockheed Martin)",
            "minLength": 1
          }
        },
        "required": [
          "uei"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "sam.gov.entity_search",
      "title": "SAM.gov Entity Search",
      "description": "Search 700K+ registered US federal contractors and grantees by company name, state, or NAICS code. Returns UEI (Unique Entity Identifier), CAGE code, registration status, business types (Small Business, 8(a), HUBZone, WOSB, Veteran-Owned), and NAICS codes. Source: SAM.gov (GSA).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Company or organization name to search (e.g. \"Lockheed\", \"Google\", \"Deloitte\"). Supports partial match.",
            "minLength": 1
          },
          "state": {
            "type": "string",
            "maxLength": 2,
            "description": "US state code to filter (e.g. VA, CA, TX)"
          },
          "naics_code": {
            "type": "string",
            "description": "NAICS industry code to filter (e.g. 541512 for Computer Systems Design)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Number of results (1-25, default 10)"
          }
        },
        "required": [
          "name"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "fema.disaster.assistance",
      "title": "FEMA Housing Assistance",
      "description": "Query federal disaster housing assistance data by state and disaster number. Returns registration counts, average damage, total inspected, approved amounts by county. Useful for disaster recovery analysis and aid distribution research. Source: OpenFEMA.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "US state code (e.g. TX, FL, CA)",
            "minLength": 2,
            "maxLength": 2
          },
          "disaster_number": {
            "type": "integer",
            "description": "FEMA disaster number to filter (e.g. 4673)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 10)"
          }
        },
        "required": [
          "state"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "fema.disaster.declarations",
      "title": "FEMA Disaster Declarations",
      "description": "Search US federal disaster declarations from 1953 to present. Filter by state, incident type (Fire, Flood, Hurricane, Tornado, Earthquake), and year. Returns disaster number, title, dates, designated programs (IA, PA, HM). Source: OpenFEMA (US Gov open data).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "US state code (e.g. CA, TX, FL). Omit for all states."
          },
          "incident_type": {
            "type": "string",
            "enum": [
              "Fire",
              "Flood",
              "Hurricane",
              "Tornado",
              "Earthquake",
              "Severe Storm(s)",
              "Snow",
              "Drought",
              "Typhoon",
              "Biological",
              "Other"
            ],
            "description": "Disaster type to filter (e.g. Fire, Flood, Hurricane)"
          },
          "year": {
            "type": "integer",
            "minimum": 1953,
            "maximum": 2026,
            "description": "Filter by declaration year (1953-2026)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 10)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "fema.disaster.flood_claims",
      "title": "NFIP Flood Insurance Claims",
      "description": "Retrieve National Flood Insurance Program (NFIP) claims by state and year. Returns flood zone, building/contents payments, insurance coverage amounts, cause of damage. Essential for flood risk assessment and insurance analysis. Source: OpenFEMA.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "US state code (e.g. FL, TX, LA)",
            "minLength": 2,
            "maxLength": 2
          },
          "year": {
            "type": "integer",
            "minimum": 1970,
            "maximum": 2026,
            "description": "Year of loss to filter (e.g. 2024)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 10)"
          }
        },
        "required": [
          "state"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "pypi.packages.info",
      "title": "PyPI Package Info",
      "description": "Get metadata for any Python package from PyPI: version, summary, license, author, dependencies, classifiers, Python version requirements. 550K+ packages. Supports specific version lookup. Complements npm (UC-344) for polyglot dependency intelligence.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "Python package name (e.g. requests, flask, numpy, anthropic)",
            "minLength": 1
          },
          "version": {
            "type": "string",
            "description": "Specific version (e.g. 2.31.0). Defaults to latest release."
          }
        },
        "required": [
          "package"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "pypi.packages.releases",
      "title": "PyPI Package Versions",
      "description": "List all published versions of a Python package with upload dates, yanked status, and distribution file types (sdist/wheel). Returns the 50 most recent versions. Useful for dependency auditing, version pinning, and upgrade planning.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "Python package name to list all versions (e.g. django, pandas, scipy)",
            "minLength": 1
          }
        },
        "required": [
          "package"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gbif.biodiversity.occurrence_count",
      "title": "GBIF Occurrence Count",
      "description": "Get total occurrence count for a species, optionally filtered by country. Useful for range size estimation, data density assessment, and conservation status analysis. Source: GBIF.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "taxon_key": {
            "type": "integer",
            "description": "GBIF taxon key to count occurrences for"
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO country code to filter count (e.g. US, BR)"
          }
        },
        "required": [
          "taxon_key"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gbif.biodiversity.occurrences",
      "title": "GBIF Species Occurrences",
      "description": "Search 2.5B+ species occurrence records by taxon, country, and year. Returns observation coordinates, date, collector institution, basis of record (specimen/observation). Filter by ISO country code. Source: GBIF (2000+ institutions, 100+ countries).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "taxon_key": {
            "type": "integer",
            "description": "GBIF taxon key for the species to search occurrences"
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO 3166-1 alpha-2 country code (e.g. US, GB, BR, AU)"
          },
          "year": {
            "type": "integer",
            "minimum": 1700,
            "maximum": 2026,
            "description": "Filter by observation year (e.g. 2024)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 10)"
          }
        },
        "required": [
          "taxon_key"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gbif.biodiversity.species_details",
      "title": "GBIF Species Details",
      "description": "Get full taxonomic profile for a species by GBIF taxon key. Returns classification hierarchy, vernacular (common) names, synonyms, number of descendants, and accepted name. Source: GBIF backbone taxonomy.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "taxon_key": {
            "type": "integer",
            "description": "GBIF taxon key (numeric ID from species search results)"
          }
        },
        "required": [
          "taxon_key"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gbif.biodiversity.species_search",
      "title": "GBIF Species Search",
      "description": "Search 9M+ species in the GBIF backbone taxonomy by common or scientific name. Returns taxon key, scientific name, kingdom/phylum/class/order/family/genus, and taxonomic status. Filter by rank (SPECIES, GENUS, FAMILY). Source: Global Biodiversity Information Facility (CC0).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Species name to search \u2014 common name (e.g. \"polar bear\") or scientific name (e.g. \"Ursus maritimus\")",
            "minLength": 1
          },
          "rank": {
            "type": "string",
            "enum": [
              "KINGDOM",
              "PHYLUM",
              "CLASS",
              "ORDER",
              "FAMILY",
              "GENUS",
              "SPECIES"
            ],
            "description": "Taxonomic rank filter (default: SPECIES). Use SPECIES to avoid virus/subspecies matches."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results (1-20, default 5)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "congress.legislation.bill_details",
      "title": "US Bill Details",
      "description": "Get full details for a specific US bill by Congress number, type (hr/s), and bill number. Returns title, all sponsors, co-sponsor count, action history, committee referrals, policy subjects. Source: Congress.gov.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "congress": {
            "type": "integer",
            "description": "Congress number (e.g. 119 for 2025-2026, 118 for 2023-2024)",
            "minimum": 93,
            "maximum": 119
          },
          "type": {
            "type": "string",
            "enum": [
              "hr",
              "s",
              "hjres",
              "sjres",
              "hconres",
              "sconres",
              "hres",
              "sres"
            ],
            "description": "Bill type: hr (House bill), s (Senate bill), hjres, sjres, etc."
          },
          "number": {
            "type": "integer",
            "description": "Bill number (e.g. 1 for HR 1)",
            "minimum": 1
          }
        },
        "required": [
          "congress",
          "type",
          "number"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "congress.legislation.bills",
      "title": "US Congressional Bills",
      "description": "Search US federal bills and resolutions from 1973 to present. Filter by Congress number (93-119), bill type (hr/s/hjres/sjres). Returns title, sponsor, party, latest action, policy area. Source: Congress.gov (Library of Congress).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "congress": {
            "type": "integer",
            "minimum": 93,
            "maximum": 119,
            "description": "Congress number (93=1973 to 119=2025-2026). Default: current (119)."
          },
          "type": {
            "type": "string",
            "enum": [
              "hr",
              "s",
              "hjres",
              "sjres",
              "hconres",
              "sconres",
              "hres",
              "sres"
            ],
            "description": "Bill type: hr (House), s (Senate), hjres, sjres, hconres, sconres, hres, sres"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Number of results (1-25, default 10)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "congress.legislation.members",
      "title": "US Congressional Members",
      "description": "Search current and historical members of the US Congress. Filter by state, chamber (House/Senate), and Congress number. Returns name, party, state, district, bioguide ID. Source: Congress.gov.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "US state code (e.g. CA, TX, NY)"
          },
          "chamber": {
            "type": "string",
            "enum": [
              "house",
              "senate"
            ],
            "description": "Chamber: house or senate"
          },
          "congress": {
            "type": "integer",
            "minimum": 93,
            "maximum": 119,
            "description": "Congress number. Default: current (119)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Number of results (1-25, default 10)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "depsdev.insights.advisories",
      "title": "Security Advisories (deps.dev)",
      "description": "List security advisories (from OSV) affecting a specific package version. Cross-ecosystem: npm, PyPI, Go, Maven, Cargo, NuGet. Returns advisory IDs with links to OSV.dev for full details. Complements osv.query for version-specific lookups.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "system": {
            "type": "string",
            "enum": [
              "npm",
              "pypi",
              "go",
              "maven",
              "cargo",
              "nuget"
            ],
            "description": "Package ecosystem: npm, pypi, go, maven, cargo, or nuget"
          },
          "package": {
            "type": "string",
            "description": "Package name to check for security advisories",
            "minLength": 1
          },
          "version": {
            "type": "string",
            "description": "Package version to check (e.g. 4.17.20)",
            "minLength": 1
          }
        },
        "required": [
          "system",
          "package",
          "version"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "depsdev.insights.dependencies",
      "title": "Dependency Tree (deps.dev)",
      "description": "Resolve the full transitive dependency tree for a package version. Returns all direct and indirect dependencies with versions and relation type. Reveals hidden supply chain depth (e.g. express@5.2.1 has 67 transitive deps). Google deps.dev.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "system": {
            "type": "string",
            "enum": [
              "npm",
              "pypi",
              "go",
              "maven",
              "cargo",
              "nuget"
            ],
            "description": "Package ecosystem: npm, pypi, go, maven, cargo, or nuget"
          },
          "package": {
            "type": "string",
            "description": "Package name (e.g. lodash, flask, github.com/gin-gonic/gin)",
            "minLength": 1
          },
          "version": {
            "type": "string",
            "description": "Package version to resolve dependencies for (e.g. 4.17.21, 3.0.0)",
            "minLength": 1
          }
        },
        "required": [
          "system",
          "package",
          "version"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "depsdev.insights.package",
      "title": "Package Info (deps.dev)",
      "description": "Get package metadata from Google deps.dev \u2014 all versions, default version, ecosystem. Covers npm, PyPI, Go, Maven, Cargo, NuGet (50M+ package versions). Complements npm/PyPI registries with cross-ecosystem unified view.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "system": {
            "type": "string",
            "enum": [
              "npm",
              "pypi",
              "go",
              "maven",
              "cargo",
              "nuget"
            ],
            "description": "Package ecosystem: npm, pypi, go, maven, cargo, or nuget"
          },
          "package": {
            "type": "string",
            "description": "Package name (e.g. express, requests, gin-gonic/gin, log4j-core)",
            "minLength": 1
          }
        },
        "required": [
          "system",
          "package"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "epa.environment.toxic_releases",
      "title": "EPA Toxic Release Inventory",
      "description": "Search EPA Toxic Release Inventory (TRI) facilities by US state or ZIP code. Returns facility name, address, county, industry sector, and closed status. 600K+ regulated facilities. Source: EPA Envirofacts (US Gov open data).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "US state code (e.g. CA, TX, NY, FL)",
            "minLength": 2,
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "description": "ZIP code to filter (e.g. 90001). Overrides state filter if provided."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 10)"
          }
        },
        "required": [
          "state"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "epa.environment.water_systems",
      "title": "EPA Public Water Systems",
      "description": "Search public water systems by US state. Returns system name, PWSID, activity status, primacy agency, EPA region, population served, and service connections. Source: EPA Safe Drinking Water Act data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "US state code (e.g. FL, CA, TX)",
            "minLength": 2,
            "maxLength": 2
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 10)"
          }
        },
        "required": [
          "state"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ncei.climate.daily_data",
      "title": "NCEI Daily Climate Data",
      "description": "Retrieve historical daily weather observations from NOAA NCEI \u2014 max/min temperature, precipitation, snowfall, wind speed. 260+ years of records from global stations. Values in tenths of \u00b0C (temp) and tenths of mm (precip). Source: GHCND dataset.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "station_id": {
            "type": "string",
            "description": "NCEI station ID (e.g. GHCND:USW00094728 for Central Park, NY). Get from ncei.stations tool.",
            "minLength": 1
          },
          "start_date": {
            "type": "string",
            "description": "Start date in YYYY-MM-DD format (e.g. 2025-01-01)"
          },
          "end_date": {
            "type": "string",
            "description": "End date in YYYY-MM-DD format (e.g. 2025-01-31). Max 1 year range."
          },
          "datatypes": {
            "type": "string",
            "description": "Comma-separated data types: TMAX (max temp), TMIN (min temp), PRCP (precipitation), SNOW, AWND (avg wind). Default: all."
          }
        },
        "required": [
          "station_id",
          "start_date",
          "end_date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "ncei.climate.stations",
      "title": "NCEI Weather Stations",
      "description": "Search 100K+ global weather stations from NOAA NCEI by location (state FIPS, ZIP, country). Returns station ID, name, coordinates, elevation, and data coverage dates (some from 1700s). Use station IDs with ncei.daily_data for historical climate records.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location_id": {
            "type": "string",
            "description": "Location ID: FIPS:06 (California), FIPS:36 (New York), ZIP:10001, CITY:US360019, or CNTRY:US",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Number of stations to return (1-25, default 10)"
          }
        },
        "required": [
          "location_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "climate.indicators.arctic_ice",
      "title": "Arctic Sea Ice Extent",
      "description": "Arctic sea ice extent from NSIDC \u2014 monthly measurements in million km\u00b2 since 1979. Tracks long-term decline in Arctic ice coverage. Returns last 10 years by default. Source: National Snow and Ice Data Center.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "years": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of years of data to return (1-50, default 10). Data is monthly."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "climate.indicators.co2",
      "title": "Atmospheric CO2 (Keeling Curve)",
      "description": "Atmospheric CO2 concentration from NOAA Mauna Loa Observatory \u2014 the Keeling Curve. Monthly readings in ppm (parts per million) since 1958. Returns last 10 years by default. Source: NOAA ESRL.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "years": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of years of data to return (1-50, default 10). Data is monthly."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "climate.indicators.methane",
      "title": "Atmospheric Methane",
      "description": "Atmospheric methane concentration from NOAA ESRL \u2014 monthly readings in ppb (parts per billion) since 1983. Methane is the second most important greenhouse gas after CO2. Returns last 10 years by default.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "years": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of years of data to return (1-50, default 10). Data is monthly."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "climate.indicators.nitrous_oxide",
      "title": "Atmospheric Nitrous Oxide",
      "description": "Atmospheric nitrous oxide concentration from NOAA ESRL \u2014 monthly readings in ppb since 2001. N2O is a potent greenhouse gas with 273x the warming potential of CO2. Returns last 10 years by default.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "years": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of years of data to return (1-50, default 10). Data is monthly."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "climate.indicators.temperature",
      "title": "Global Temperature Anomaly",
      "description": "Global surface temperature anomaly from NASA GISS \u2014 monthly readings since 1880. Values in \u00b0C vs 1951-1980 baseline. Returns last 10 years by default (adjustable 1-50). Source: NASA Goddard Institute for Space Studies.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "years": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of years of data to return (1-50, default 10). Data is monthly."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chart.visualization.create",
      "title": "Create Chart Image",
      "description": "\u26a1 ACTION: Generate a chart image (PNG) from data \u2014 bar, line, pie, doughnut, radar, scatter. Returns a permanent image URL. Combine with data tools (climate.co2, census.population, finance.exchange_rates) to visualize any dataset. Powered by QuickChart (Chart.js).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "bar",
              "line",
              "pie",
              "doughnut",
              "radar",
              "scatter",
              "horizontalBar"
            ],
            "description": "Chart type: bar, line, pie, doughnut, radar, scatter, horizontalBar"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "X-axis labels (e.g. [\"Q1\", \"Q2\", \"Q3\", \"Q4\"])"
          },
          "datasets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string",
                  "description": "Dataset label (e.g. \"Revenue\", \"Temperature\")"
                },
                "data": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  },
                  "description": "Array of numeric values"
                }
              },
              "required": [
                "label",
                "data"
              ]
            },
            "description": "One or more datasets to plot",
            "minItems": 1
          },
          "title": {
            "type": "string",
            "description": "Chart title displayed at top"
          },
          "width": {
            "type": "integer",
            "minimum": 100,
            "maximum": 1000,
            "description": "Image width in pixels (100-1000, default 500)"
          },
          "height": {
            "type": "integer",
            "minimum": 100,
            "maximum": 1000,
            "description": "Image height in pixels (100-1000, default 300)"
          }
        },
        "required": [
          "type",
          "labels",
          "datasets"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "figi.finance.filter",
      "title": "Filter Financial Instruments",
      "description": "Filter financial instruments by exchange code, market sector (Equity/Corp/Govt/Index/Curncy/Comdty), or security type (Common Stock/ETP/REIT/ADR). Browse instrument universe by structured criteria. Bloomberg OpenFIGI.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "exchange_code": {
            "type": "string",
            "description": "Exchange code (e.g. US, LN, HK, JP)"
          },
          "market_sector": {
            "type": "string",
            "description": "Market sector (e.g. Equity, Corp, Govt, Index, Curncy, Comdty)"
          },
          "security_type": {
            "type": "string",
            "description": "Security type (e.g. \"Common Stock\", \"ETP\", \"REIT\", \"ADR\")"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "figi.finance.map",
      "title": "Map Financial Identifier to FIGI",
      "description": "Resolve financial instrument identifiers \u2014 ISIN, CUSIP, SEDOL, or ticker symbol to Bloomberg FIGI (ISO 18774). Returns FIGI, composite FIGI, security name, type, and exchange. 300M+ instruments across 45K+ exchanges. Use ID_ISIN, ID_CUSIP, ID_SEDOL, or TICKER as id_type.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id_type": {
            "type": "string",
            "enum": [
              "ID_ISIN",
              "ID_CUSIP",
              "ID_SEDOL",
              "ID_BB_GLOBAL",
              "TICKER",
              "ID_WERTPAPIER",
              "ID_COMMON"
            ],
            "description": "Identifier type: ID_ISIN, ID_CUSIP, ID_SEDOL, TICKER, ID_BB_GLOBAL"
          },
          "id_value": {
            "type": "string",
            "description": "Identifier value (e.g. US0378331005 for ISIN, AAPL for ticker, BBG000B9XRY4 for FIGI)",
            "minLength": 1
          },
          "exchange_code": {
            "type": "string",
            "description": "Exchange code to narrow results (e.g. US, LN, JP). Optional."
          }
        },
        "required": [
          "id_type",
          "id_value"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "figi.finance.search",
      "title": "Search Financial Instruments",
      "description": "Search 300M+ financial instruments by company name or ticker keyword. Filter by exchange and security type. Returns Bloomberg FIGI, ticker, name, market sector. Covers equities, ETPs, bonds, derivatives globally.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query \u2014 company name or ticker (e.g. \"Tesla\", \"Apple Inc\", \"MSFT\")",
            "minLength": 1
          },
          "exchange_code": {
            "type": "string",
            "description": "Filter by exchange code (e.g. US, LN, JP)"
          },
          "security_type": {
            "type": "string",
            "description": "Filter by security type (e.g. \"Common Stock\", \"ETP\", \"REIT\")"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.edgar.xbrl_concept",
      "title": "SEC Company Financial History",
      "description": "Complete history of any XBRL financial concept (Revenues, NetIncomeLoss, Assets, EPS) for a company across all SEC filings. Returns up to 20 most recent values with period dates, form type, fiscal year. Free alternative to Bloomberg for historical financials.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cik": {
            "type": "string",
            "description": "SEC CIK number (e.g. \"320193\" for Apple, \"789019\" for Microsoft)",
            "minLength": 1
          },
          "tag": {
            "type": "string",
            "description": "XBRL concept tag (e.g. Revenues, NetIncomeLoss, Assets, EarningsPerShareBasic)",
            "minLength": 1
          },
          "taxonomy": {
            "type": "string",
            "description": "XBRL taxonomy (default: us-gaap). Other: ifrs-full, dei, srt"
          }
        },
        "required": [
          "cik",
          "tag"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.edgar.xbrl_frames",
      "title": "SEC Cross-Company Financial Comparison",
      "description": "Compare a financial metric across ALL SEC-reporting companies for a period. Query Revenues for CY2023 \u2192 2,649 companies with values. Top: Walmart $648B, UnitedHealth $371B. Free alternative to Bloomberg/FactSet. Period format: CY2023 (annual), CY2023Q4I (quarterly).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "string",
            "description": "XBRL concept tag (e.g. Revenues, NetIncomeLoss, Assets, TotalDebt)",
            "minLength": 1
          },
          "period": {
            "type": "string",
            "description": "Reporting period: CY2023 (annual), CY2023Q4I (quarterly instant), CY2023Q3 (quarterly duration)",
            "minLength": 1
          },
          "unit": {
            "type": "string",
            "description": "Unit of measure (default: USD). Other: USD/shares for EPS, shares for share counts"
          },
          "taxonomy": {
            "type": "string",
            "description": "XBRL taxonomy (default: us-gaap)"
          }
        },
        "required": [
          "tag",
          "period"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "usno.astronomy.moon_phases",
      "title": "Moon Phases",
      "description": "Get all moon phase dates for a year \u2014 New Moon, First Quarter, Full Moon, Last Quarter with exact UTC timestamps. ~50 phases per year. Source: US Naval Observatory (canonical astronomical authority, US Gov public domain).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "minimum": 1700,
            "maximum": 2100,
            "description": "Year for moon phases (default: current year, e.g. 2026)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "usno.astronomy.seasons",
      "title": "Equinoxes & Solstices",
      "description": "Get exact dates and UTC times for vernal equinox, summer solstice, autumnal equinox, and winter solstice for any year. Also includes Earth perihelion and aphelion dates. Source: US Naval Observatory.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "minimum": 1700,
            "maximum": 2100,
            "description": "Year for equinoxes and solstices (default: current year)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "usno.astronomy.sun_moon",
      "title": "Sun & Moon Rise/Set Times",
      "description": "Get sunrise, sunset, moonrise, moonset, and transit times for any location and date. Includes civil/nautical/astronomical twilight. Used for photography golden hour, agriculture planning, outdoor events. Source: USNO.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Date in YYYY-MM-DD format (e.g. 2026-04-07)"
          },
          "latitude": {
            "type": "number",
            "description": "Latitude in decimal degrees (e.g. 40.7128 for New York)",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "description": "Longitude in decimal degrees (e.g. -74.0060 for New York)",
            "minimum": -180,
            "maximum": 180
          }
        },
        "required": [
          "date",
          "latitude",
          "longitude"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "wger.fitness.exercise_details",
      "title": "Exercise Details",
      "description": "Get full exercise details by ID \u2014 description, primary and secondary muscles worked, required equipment (barbell/dumbbell/bodyweight/machine), and category. Use with exercise_search to build workout plans.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Exercise base ID from search results (e.g. 615 for Squats)"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "wger.fitness.exercise_search",
      "title": "Exercise Search",
      "description": "Search 896 exercises by name \u2014 bench press, squat, deadlift, curl, etc. Returns exercise name, category (Chest/Back/Legs/Arms/Abs/Shoulders/Cardio), and ID for details lookup. Open-source fitness database (Wger, CC-BY-SA).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "term": {
            "type": "string",
            "description": "Exercise name to search (e.g. \"bench press\", \"squat\", \"deadlift\", \"bicep curl\")",
            "minLength": 1
          }
        },
        "required": [
          "term"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "wger.fitness.ingredients",
      "title": "Food Ingredient Nutrition",
      "description": "Search 1.28M food ingredients by name \u2014 chicken breast, rice, banana, oats. Returns calories (kcal), protein, carbs, fat, fiber, sugar, sodium per 100g. Complements USDA FDC with broader international coverage.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Food ingredient name (e.g. \"chicken breast\", \"rice\", \"banana\", \"oats\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results (1-20, default 10)"
          }
        },
        "required": [
          "name"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "email.verification.check",
      "title": "Verify Email Address",
      "description": "Verify an email address \u2014 SMTP deliverability check, DNS/MX validation, disposable email detection, catch-all server detection, free provider flag, role account flag (info@, admin@). Returns comprehensive verification result. Powered by WhoisXML API.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address to verify (e.g. user@example.com, test@gmail.com)",
            "minLength": 3
          }
        },
        "required": [
          "email"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "solar.system.bodies",
      "title": "Solar System Bodies",
      "description": "List solar system bodies \u2014 planets, moons, asteroids, comets, dwarf planets. Returns name, body type, gravity, radius, and moon count. 1,400+ bodies. Filter by type. Source: Solar System OpenData (MIT license).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "body_type": {
            "type": "string",
            "enum": [
              "planet",
              "moon",
              "asteroid",
              "comet",
              "dwarf_planet",
              "all"
            ],
            "description": "Filter by body type: planet, moon, asteroid, comet, dwarf_planet, or all (default: all)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "solar.system.body_details",
      "title": "Solar System Body Details",
      "description": "Get comprehensive data for a solar system body \u2014 mass, radius, density, gravity, escape velocity, temperature, axial tilt, orbital period, semi-major axis, eccentricity, inclination, discoverer, and list of moons. Source: Solar System OpenData.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Body ID from search results (e.g. \"mars\", \"jupiter\", \"moon\", \"europa\", \"ceres\")",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "iss.space.position",
      "title": "ISS Current Position",
      "description": "Get the real-time position of the International Space Station \u2014 latitude, longitude, altitude (km), velocity (km/h), and daylight/eclipse visibility. ISS orbits at 28,000 km/h, completes one orbit every 90 minutes. Updates every ~60 seconds.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "units": {
            "type": "string",
            "enum": [
              "kilometers",
              "miles"
            ],
            "description": "Distance units: kilometers (default) or miles"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "iss.space.tle",
      "title": "ISS Orbital Elements (TLE)",
      "description": "Get the Two-Line Element set (TLE) for the International Space Station \u2014 NORAD catalog #25544. Contains orbital parameters for trajectory prediction and satellite tracking calculations.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "json",
              "text"
            ],
            "description": "Response format: json (default) or text (raw TLE two-line element)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hf.hub.datasets",
      "title": "Search ML Datasets",
      "description": "Search 200K+ datasets on HuggingFace Hub by name or keyword. Returns dataset ID, downloads, likes, tags. Covers NLP, vision, audio, tabular datasets. Sorted by downloads.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Search query \u2014 dataset name or keyword (e.g. \"wikipedia\", \"imagenet\", \"squad\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results (1-20, default 10)"
          }
        },
        "required": [
          "search"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hf.hub.model_details",
      "title": "ML Model Details",
      "description": "Get full metadata for a HuggingFace model \u2014 downloads, likes, tags, library, author, pipeline task, model card data. Use model_id from hf.models search (e.g. \"meta-llama/Llama-3.3-70B-Instruct\").",
      "inputSchema": {
        "type": "object",
        "properties": {
          "model_id": {
            "type": "string",
            "description": "Full model ID (e.g. \"meta-llama/Llama-3.3-70B-Instruct\", \"stabilityai/stable-diffusion-xl-base-1.0\")",
            "minLength": 1
          }
        },
        "required": [
          "model_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "hf.hub.models",
      "title": "Search ML Models",
      "description": "Search 1M+ ML models on HuggingFace Hub by name, task (text-generation, image-classification, translation), or library (transformers, diffusers). Returns model ID, downloads, likes, pipeline tag. Sorted by downloads.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Search query \u2014 model name or keyword (e.g. \"llama\", \"stable-diffusion\", \"whisper\")",
            "minLength": 1
          },
          "task": {
            "type": "string",
            "description": "Filter by ML task: text-generation, image-classification, translation, text-to-image, automatic-speech-recognition, etc."
          },
          "library": {
            "type": "string",
            "description": "Filter by framework: transformers, diffusers, sentence-transformers, gguf, etc."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of results (1-20, default 10)"
          }
        },
        "required": [
          "search"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "water.usgs.realtime",
      "title": "Real-Time Water Data",
      "description": "Get real-time streamflow (ft^3/s), gage height (ft), water temperature, and conductance for a USGS monitoring site. Updated every 15 minutes. Covers rivers, streams, lakes, reservoirs across the US. Use water.sites to find site numbers (USGS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "site_no": {
            "type": "string",
            "description": "USGS site number (e.g. \"09380000\"). Use water.sites to find site numbers first.",
            "minLength": 1
          },
          "parameter_cd": {
            "type": "string",
            "description": "Parameter code(s), comma-separated. Common: 00060=streamflow, 00065=gage height, 00010=temperature. Default: all available."
          },
          "period": {
            "type": "string",
            "description": "ISO 8601 duration for data window (e.g. \"PT2H\" for 2 hours, \"P7D\" for 7 days). Default: PT2H."
          }
        },
        "required": [
          "site_no"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "water.usgs.sites",
      "title": "Search Water Monitoring Sites",
      "description": "Search 1.5M+ USGS water monitoring sites by US state, county FIPS, bounding box, or site number. Returns site ID, station name, coordinates, altitude, HUC watershed code. Use site numbers with water.realtime for live data (USGS)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "US state FIPS code, 2 chars (e.g. \"CA\", \"NY\", \"CO\")"
          },
          "county": {
            "type": "string",
            "description": "County FIPS code, 5 digits (e.g. \"06037\" for Los Angeles County)"
          },
          "bbox": {
            "type": "string",
            "description": "Bounding box: west,south,east,north in decimal degrees (e.g. \"-105.5,39.5,-104.5,40.5\")"
          },
          "site_no": {
            "type": "string",
            "description": "USGS site number (e.g. \"09380000\" for Colorado River at Lees Ferry)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "worldbank.dev.indicators",
      "title": "Search Development Indicators",
      "description": "Search 16,000+ World Bank development indicators by keyword or topic \u2014 GDP, population, poverty, education, health, environment, trade. Returns indicator ID, name, source, description, topics. Use indicator IDs with finance.country_data for time-series data (World Bank, CC BY 4.0)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Search keyword for indicators (e.g. \"gdp\", \"population\", \"poverty\", \"education\", \"co2 emissions\")"
          },
          "topic": {
            "type": "string",
            "description": "Topic ID filter (1=Agriculture, 3=Economy, 4=Education, 6=Environment, 8=Health, 11=Poverty, 14=Science, 19=Climate Change)"
          },
          "source": {
            "type": "string",
            "description": "Source ID filter (2=World Development Indicators, 11=Africa, 57=Gender)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Results per page (1-50, default 20)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "cdc.health.datasets",
      "title": "Search CDC Health Datasets",
      "description": "Search 1,400+ CDC public health datasets \u2014 COVID-19, chronic disease, vaccination, mortality, birth/death statistics, environmental health. Returns dataset ID, name, description, category. Use dataset IDs with cdc.query to fetch data (US Gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search keyword (e.g. \"covid deaths\", \"vaccination rates\", \"chronic disease\", \"mortality\")"
          },
          "category": {
            "type": "string",
            "description": "Dataset category filter (e.g. \"NCHS\", \"COVID-19\", \"Chronic Disease Indicators\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 20)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "cdc.health.query",
      "title": "Query CDC Dataset",
      "description": "Query a specific CDC dataset using SoQL filters \u2014 filter by state, year, age group, condition. Returns structured rows with column names. Supports WHERE, SELECT, ORDER, GROUP BY. Use cdc.datasets to find dataset IDs first (US Gov, Socrata SODA API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "dataset_id": {
            "type": "string",
            "description": "CDC dataset ID in xxxx-xxxx format (e.g. \"9bhg-hcku\" for COVID deaths). Use cdc.datasets to find IDs."
          },
          "where": {
            "type": "string",
            "description": "SoQL WHERE clause filter (e.g. \"state='CA'\", \"year > 2020\", \"age_group='65+'\")"
          },
          "select": {
            "type": "string",
            "description": "Columns to return, comma-separated (e.g. \"state, year, deaths\"). Default: all columns."
          },
          "order": {
            "type": "string",
            "description": "Sort order (e.g. \"year DESC\", \"deaths DESC\"). Default: dataset default order."
          },
          "group": {
            "type": "string",
            "description": "Group by columns for aggregation (e.g. \"state\" with select \"state, SUM(deaths)\")"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Max rows to return (1-1000, default 100)"
          }
        },
        "required": [
          "dataset_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "dblp.cs.author",
      "title": "Search CS Authors",
      "description": "Search 3M+ computer science authors on DBLP. Returns author name, DBLP PID, profile URL, aliases, affiliations. Use for finding researchers, checking publication records, or discovering collaborators (DBLP, CC0)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Author name to search (e.g. \"Geoffrey Hinton\", \"Yann LeCun\", \"Ilya Sutskever\")",
            "minLength": 1
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "Number of results (1-30, default 10)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "dblp.cs.search",
      "title": "Search CS Papers",
      "description": "Search 7M+ computer science publications on DBLP by title, keyword, or topic. Returns title, authors, venue (NeurIPS, ICML, CVPR, ACL, etc.), year, DOI. The largest CS-specific bibliography \u2014 covers journals, conferences, and workshops (DBLP, CC0)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query \u2014 paper title, keyword, or topic (e.g. \"transformer attention\", \"graph neural network\", \"LLM reasoning\")",
            "minLength": 1
          },
          "year": {
            "type": "integer",
            "description": "Filter by publication year (e.g. 2024)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 20)"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tides.noaa.predictions",
      "title": "Tide Predictions",
      "description": "Get tide predictions for a NOAA station \u2014 high/low tides, hourly, or 6-minute intervals. Returns predicted water level in feet or meters. Covers US coastlines, rivers, Great Lakes. Station IDs: 8518750 (NYC), 9414290 (SF), 8443970 (Boston) (NOAA, US Gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "station": {
            "type": "string",
            "description": "NOAA station ID (e.g. \"8518750\" for The Battery NYC, \"9414290\" for San Francisco, \"8443970\" for Boston)",
            "minLength": 1
          },
          "begin_date": {
            "type": "string",
            "description": "Start date in YYYYMMDD format (e.g. \"20260409\")"
          },
          "end_date": {
            "type": "string",
            "description": "End date in YYYYMMDD format (e.g. \"20260410\"). Max range: 31 days."
          },
          "interval": {
            "type": "string",
            "enum": [
              "hilo",
              "h",
              "6"
            ],
            "description": "Prediction interval: \"hilo\" = high/low tides only (default), \"h\" = hourly, \"6\" = every 6 minutes"
          },
          "datum": {
            "type": "string",
            "description": "Vertical datum: MLLW (default), MSL, NAVD, MHHW, MHW, MLW, etc."
          },
          "units": {
            "type": "string",
            "enum": [
              "english",
              "metric"
            ],
            "description": "Units: \"english\" = feet (default), \"metric\" = meters"
          }
        },
        "required": [
          "station",
          "begin_date",
          "end_date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tides.noaa.water_levels",
      "title": "Real-Time Water Levels",
      "description": "Get real-time observed water levels from a NOAA station \u2014 latest reading or recent history. Returns water level in feet or meters with quality flags. Updated every 6 minutes. Covers US coastlines, rivers, Great Lakes (NOAA, US Gov)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "station": {
            "type": "string",
            "description": "NOAA station ID (e.g. \"8518750\" for The Battery NYC, \"9414290\" for San Francisco)",
            "minLength": 1
          },
          "date": {
            "type": "string",
            "description": "Date filter: \"latest\" (default, most recent reading), \"today\", \"recent\" (last 72 hours), or YYYYMMDD for specific date"
          },
          "datum": {
            "type": "string",
            "description": "Vertical datum: MLLW (default), MSL, NAVD, MHHW, MHW, MLW, etc."
          },
          "units": {
            "type": "string",
            "enum": [
              "english",
              "metric"
            ],
            "description": "Units: \"english\" = feet (default), \"metric\" = meters"
          }
        },
        "required": [
          "station"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "met.art.details",
      "title": "Artwork Details",
      "description": "Get full details for a Met Museum artwork by object ID \u2014 title, artist, date, medium, dimensions, department, culture, provenance, high-res image URLs, public domain status. Use met.search to find object IDs first (Met Museum, CC0)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "object_id": {
            "type": "integer",
            "description": "Met Museum object ID (e.g. 436524 for Van Gogh Sunflowers, 45734 for Washington Crossing the Delaware). Use met.search to find IDs.",
            "minimum": 1
          }
        },
        "required": [
          "object_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "met.art.search",
      "title": "Search Met Museum Artworks",
      "description": "Search 470,000+ artworks at The Metropolitan Museum of Art by keyword, artist, medium, department, date range, or geography. Returns object IDs \u2014 use met.details for full metadata and images. CC0 public domain (Met Museum)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search keyword \u2014 artist, title, medium, or subject (e.g. \"monet\", \"sunflowers\", \"greek vase\", \"armor\")",
            "minLength": 1
          },
          "department_id": {
            "type": "integer",
            "description": "Department filter: 1=American Decorative Arts, 3=Ancient Near Eastern Art, 6=Asian Art, 9=Drawings and Prints, 11=European Paintings, 13=Greek and Roman Art, 17=Medieval Art, 21=Modern Art"
          },
          "medium": {
            "type": "string",
            "description": "Medium filter (e.g. \"Paintings\", \"Sculpture\", \"Photographs\", \"Ceramics\")"
          },
          "has_images": {
            "type": "boolean",
            "description": "Only return artworks with images (default: true)"
          },
          "geo_location": {
            "type": "string",
            "description": "Geographic location filter (e.g. \"France\", \"Japan\", \"Egypt\")"
          },
          "date_begin": {
            "type": "integer",
            "description": "Start year for date range filter (e.g. 1800). Use with date_end."
          },
          "date_end": {
            "type": "integer",
            "description": "End year for date range filter (e.g. 1900). Use with date_begin."
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rijks.art.details",
      "title": "Rijksmuseum Artwork Details",
      "description": "Get full details for a Rijksmuseum artwork by object ID \u2014 title (multiple languages), object number, creation date, production location, materials, dimensions, current gallery location. Linked Art JSON-LD format (CIDOC CRM). Use rijks.search to find object IDs first (Rijksmuseum, CC-BY)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "object_id": {
            "type": "string",
            "description": "Rijksmuseum numeric ID (e.g. \"200107928\" for The Night Watch). Use rijks.search to find IDs.",
            "minLength": 1
          }
        },
        "required": [
          "object_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rijks.art.search",
      "title": "Search Rijksmuseum Collection",
      "description": "Search 800,000+ artworks at the Rijksmuseum (Dutch national museum) by title, description, creation date, or object number. Returns Linked Open Data object IDs \u2014 use rijks.details for full metadata. Covers Rembrandt, Vermeer, Van Gogh, and centuries of Dutch art. CC-BY license (Rijksmuseum)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Artwork title search (e.g. \"Night Watch\", \"Self-portrait\", \"Milkmaid\")"
          },
          "description": {
            "type": "string",
            "description": "Search within artwork descriptions (e.g. \"portrait\", \"landscape\")"
          },
          "creation_date": {
            "type": "string",
            "description": "Filter by creation year or date (e.g. \"1642\", \"1665\")"
          },
          "object_number": {
            "type": "string",
            "description": "Rijksmuseum object number (e.g. \"SK-C-5\" for Night Watch)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "cma.art.details",
      "title": "CMA Artwork Details",
      "description": "Get full details for a Cleveland Museum artwork by ID \u2014 title, artist, nationality, date, medium, dimensions, culture, provenance, license status (CC0/restricted), image URLs (web + full resolution). Use cma.search to find artwork IDs first (CMA, CC0)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "artwork_id": {
            "type": "integer",
            "description": "Cleveland Museum artwork ID (e.g. 135382 for Monet \"The Red Kerchief\"). Use cma.search to find IDs.",
            "minimum": 1
          }
        },
        "required": [
          "artwork_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "cma.art.search",
      "title": "Search Cleveland Museum Collection",
      "description": "Search 64,000+ artworks at the Cleveland Museum of Art by keyword, artist, type, or department. Filter for CC0-only (commercial-free) images. Returns artwork IDs, title, artist, date, license status, image URLs. Use cma.artwork for full details (CMA, CC0)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search keyword \u2014 artist, title, subject (e.g. \"monet\", \"armor\", \"japanese\")"
          },
          "type": {
            "type": "string",
            "description": "Artwork type filter (e.g. \"Painting\", \"Sculpture\", \"Print\", \"Photograph\")"
          },
          "department": {
            "type": "string",
            "description": "Department filter (e.g. \"European Painting and Sculpture\", \"Asian Art\", \"Prints\")"
          },
          "artist": {
            "type": "string",
            "description": "Artist name filter (e.g. \"Claude Monet\", \"Pablo Picasso\")"
          },
          "cc0_only": {
            "type": "boolean",
            "description": "Only return CC0-licensed artworks (free for commercial use). Default: false."
          },
          "has_image": {
            "type": "boolean",
            "description": "Only return artworks with images (default: true)"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Number of results (1-50, default 20)"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "smithsonian.collection.record",
      "title": "Smithsonian Record Details",
      "description": "Get full record for a Smithsonian Open Access item by ID \u2014 title, unit code (which of 19 museums), license (CC0 flag), record_link (canonical URL), data_source, online media (images/audio/video), freetext metadata, indexed structured fields. Use smithsonian.search to find IDs first (Smithsonian, CC0 subset)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Smithsonian record ID from a previous search result (e.g. \"edanmdm-nmnhvz_5068559\" or \"ld1-*\"). Use smithsonian.search first to find IDs.",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "smithsonian.collection.search",
      "title": "Search Smithsonian Collections",
      "description": "Full-text search across 11M+ records from 19 Smithsonian museums \u2014 art, artifacts, scientific specimens, archives. Filter by type (objects/species/archives/books/online_media/events/places), sort by relevancy/newest/updated/random, and CC0-only by default. Covers National Museum of Natural History, Air and Space, American Art, Portrait Gallery, Freer|Sackler, and more (Smithsonian Open Access, CC0 subset)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Full-text search query. Example: \"dinosaur\", \"picasso\", \"apollo 11\". Supports EDAN query syntax (field:value, AND/OR).",
            "minLength": 1
          },
          "rows": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results to return (1-100, default 10)."
          },
          "start": {
            "type": "integer",
            "minimum": 0,
            "description": "Offset for pagination (default 0). Useful with rowCount from previous call."
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevancy",
              "newest",
              "updated",
              "random"
            ],
            "description": "Sort order for results. Default: relevancy."
          },
          "type": {
            "type": "string",
            "enum": [
              "archives",
              "books",
              "online_media",
              "objects",
              "events",
              "places",
              "species"
            ],
            "description": "Filter by record type. E.g. \"objects\" for 3D objects, \"species\" for scientific specimens."
          },
          "online_media_type": {
            "type": "string",
            "enum": [
              "Images",
              "Sound recordings",
              "Videos"
            ],
            "description": "Filter to items that have media of a specific type."
          },
          "cc0_only": {
            "type": "boolean",
            "description": "Filter results to CC0-licensed records only (default true). Set false to include all records with their license field."
          }
        },
        "required": [
          "q"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "soil.survey.properties",
      "title": "Soil Properties by Location",
      "description": "Get USDA SSURGO soil properties for a US location by lat/lon (WGS84). Returns dominant component(s) with depth-stratified horizons including drainage class, taxonomic class, pH, organic matter %, and sand/silt/clay percentages per horizon. Coverage: US continental + Alaska + Hawaii + territories; international/water/unsurveyed points return empty components array. Authoritative source: NRCS Soil Data Access (no auth, unlimited free, US Gov open data)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude in WGS84 decimal degrees (e.g. 42.0 for central Iowa farmland, 38.89 for Washington DC). Coverage: US continental + Alaska + Hawaii + territories.",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "description": "Longitude in WGS84 decimal degrees (e.g. -93.5 for central Iowa, -77.03 for Washington DC). Note: longitude FIRST in coordinate pairs only matters for SQL \u2014 this field is independent.",
            "minimum": -180,
            "maximum": 180
          }
        },
        "required": [
          "lat",
          "lon"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.telnyx.balance",
      "title": "Account Balance (Telnyx)",
      "description": "Read current Telnyx account balance, available credit, currency, pending charges, and credit limit. Useful for cost monitoring before placing high-volume sends (Telnyx)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "Set to true to bypass the 30-second cache and fetch a fresh balance from Telnyx. Default false."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.telnyx.list",
      "title": "List Messages (Telnyx)",
      "description": "List recent Telnyx messages with optional filters: direction (inbound/outbound), date_from (ISO 8601), and pagination limit (max 100). Returns array of {message_id, from, to, text, status, created_at, cost} (Telnyx)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max number of messages to return per page (default 25, max 100)."
          },
          "direction": {
            "type": "string",
            "enum": [
              "inbound",
              "outbound"
            ],
            "description": "Filter by message direction: \"outbound\" (sent by us) or \"inbound\" (received)."
          },
          "date_from": {
            "type": "string",
            "description": "ISO 8601 date \u2014 return messages created on or after this date (e.g. \"2026-04-26\")."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.telnyx.status",
      "title": "Message Status (Telnyx)",
      "description": "Get delivery status and events for a previously sent Telnyx message by message UUID. Returns per-recipient status (queued/sending/sent/delivered/failed), parts, sent_at, completed_at, errors, and cost (Telnyx)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "message_id": {
            "type": "string",
            "description": "Telnyx message UUID returned by send_sms (e.g. \"40ab7e80-94c6-4cb6-8c45-c3ed3e3bf3ec\").",
            "minLength": 1
          }
        },
        "required": [
          "message_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.telnyx.estimate",
      "title": "Estimate SMS Tier + Price (Telnyx)",
      "description": "Classify a destination phone number into the right pricing tier (na / world / premium) and return the recommended send tool and price. Use this BEFORE telnyx.send_sms_* to avoid 400 errors. $0.001/lookup (Telnyx)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string",
            "description": "Destination phone number in E.164 format (e.g. \"+14155551234\", \"+447911123456\", \"+79991234567\"). The classifier returns the recommended send tool and tier-based price.",
            "minLength": 1
          }
        },
        "required": [
          "to"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.telnyx.sms_na",
      "title": "Send SMS \u2014 NANP (Telnyx)",
      "description": "\u26a1 ACTION: Send SMS to North America (NANP +1 \u2014 US, Canada, Caribbean). $0.012/message \u2014 cheapest tier. Returns 400 if destination is outside +1. Use telnyx.estimate_price first if unsure (Telnyx)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string",
            "description": "Recipient phone number in E.164 format (e.g. \"+14155551234\"). Trial accounts can only send to verified destination numbers added in the Telnyx portal.",
            "minLength": 1
          },
          "from": {
            "type": "string",
            "description": "Sender phone number in E.164 format \u2014 must be a Telnyx number you own (e.g. \"+15551234567\"). Provision via Telnyx portal Numbers > Buy Numbers.",
            "minLength": 1
          },
          "text": {
            "type": "string",
            "description": "SMS body text (max 1600 chars; >160 splits into multiple billing segments).",
            "minLength": 1,
            "maxLength": 1600
          },
          "messaging_profile_id": {
            "type": "string",
            "description": "Optional Telnyx messaging profile UUID to route through a specific profile (10DLC campaign, sender pool)."
          }
        },
        "required": [
          "to",
          "from",
          "text"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.telnyx.sms_premium",
      "title": "Send SMS \u2014 Premium (Telnyx)",
      "description": "\u26a1 ACTION: Send SMS to high-cost destinations: Russia +7, Belarus +375, Ukraine +380, China +86, Turkey +90, MENA (SA/AE/EG/JO/...), Africa (NG/KE/ZA/...), and any unknown prefix (default). $0.25/message. Highest tier \u2014 use telnyx.estimate_price to verify before sending (Telnyx)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string",
            "description": "Recipient phone number in E.164 format (e.g. \"+14155551234\"). Trial accounts can only send to verified destination numbers added in the Telnyx portal.",
            "minLength": 1
          },
          "from": {
            "type": "string",
            "description": "Sender phone number in E.164 format \u2014 must be a Telnyx number you own (e.g. \"+15551234567\"). Provision via Telnyx portal Numbers > Buy Numbers.",
            "minLength": 1
          },
          "text": {
            "type": "string",
            "description": "SMS body text (max 1600 chars; >160 splits into multiple billing segments).",
            "minLength": 1,
            "maxLength": 1600
          },
          "messaging_profile_id": {
            "type": "string",
            "description": "Optional Telnyx messaging profile UUID to route through a specific profile (10DLC campaign, sender pool)."
          }
        },
        "required": [
          "to",
          "from",
          "text"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "phone.telnyx.sms_world",
      "title": "Send SMS \u2014 World (Telnyx)",
      "description": "\u26a1 ACTION: Send SMS to most international destinations: UK +44, EU (DE/FR/IT/ES/NL/PL...), AU +61, JP +81, IN +91, BR +55, MX +52, ZA +27, IL +972, AE +971, SG +65, KR +82. $0.10/message. Returns 400 if destination is in NA tier (use telnyx.send_sms_na) or premium tier (use telnyx.send_sms_premium) (Telnyx)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string",
            "description": "Recipient phone number in E.164 format (e.g. \"+14155551234\"). Trial accounts can only send to verified destination numbers added in the Telnyx portal.",
            "minLength": 1
          },
          "from": {
            "type": "string",
            "description": "Sender phone number in E.164 format \u2014 must be a Telnyx number you own (e.g. \"+15551234567\"). Provision via Telnyx portal Numbers > Buy Numbers.",
            "minLength": 1
          },
          "text": {
            "type": "string",
            "description": "SMS body text (max 1600 chars; >160 splits into multiple billing segments).",
            "minLength": 1,
            "maxLength": 1600
          },
          "messaging_profile_id": {
            "type": "string",
            "description": "Optional Telnyx messaging profile UUID to route through a specific profile (10DLC campaign, sender pool)."
          }
        },
        "required": [
          "to",
          "from",
          "text"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "space.swpc.aurora",
      "title": "Aurora Forecast (NOAA SWPC)",
      "description": "Latest OVATION aurora visibility forecast aggregated into 10-degree latitude bands. Returns observation/forecast times plus top northern and southern hemisphere bands by max aurora probability \u2014 useful for aurora-tourism agents and high-latitude visibility checks. Source: NOAA SWPC (NODD public domain)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "No-op flag for cache busting. Set to true to bypass the 5-minute cache and fetch the latest aurora oval forecast."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "space.swpc.k_index",
      "title": "Geomagnetic K-index (NOAA SWPC)",
      "description": "Current planetary K-index with G1-G5 storm severity classification, plus the maximum K-index observed in the rolling 6-hour window. Returns latest reading, window_max, and the last N 1-minute observations. Source: NOAA SWPC real-time stream (NODD public domain)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "points": {
            "type": "integer",
            "minimum": 1,
            "maximum": 120,
            "description": "Number of recent 1-minute K-index readings to return alongside the latest reading (default 30, max 120). The full 6-hour rolling window is always scanned for the window_max field regardless of this value."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "space.swpc.solar_regions",
      "title": "Active Solar Regions (NOAA SWPC)",
      "description": "Currently active sunspot regions with NOAA AR number, location (heliographic), area, spot class, magnetic class, and 24-hour C/M/X-class flare probabilities. Sorted by most recently observed first. Source: NOAA SWPC (NODD public domain)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max number of active sunspot regions to return, sorted by most recently observed first (default 20, max 50). Each entry includes NOAA AR number, location, magnetic class, and C/M/X-class flare probabilities."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "space.swpc.solar_wind",
      "title": "Solar Wind Real-time (NOAA SWPC)",
      "description": "Real-time solar wind speed (km/s), proton density (per cm\u00b3), and temperature (K) from the ACE/DSCOVR L1 monitors. Returns the latest reading plus the last N 1-minute observations. Source: NOAA SWPC RTSW (NODD public domain)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "points": {
            "type": "integer",
            "minimum": 1,
            "maximum": 60,
            "description": "Number of recent 1-minute solar-wind readings to return alongside the latest reading (default 20, max 60). Each reading includes proton speed (km/s), density (per cm\u00b3), temperature (K), and quality score."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.bcb.cdi",
      "title": "CDI Daily Rate (BCB)",
      "description": "Brazilian CDI daily rate (series 12) \u2014 last N observations from BCB SGS. ODbL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "last_n": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of most recent observations to return (default 30, max 500). For daily series this is days; for monthly (IPCA) it is months."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.bcb.eur_brl",
      "title": "EUR/BRL Daily FX (BCB)",
      "description": "Brazilian Real / Euro daily exchange rate (series 21619) \u2014 last N observations from BCB SGS. ODbL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "last_n": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of most recent observations to return (default 30, max 500). For daily series this is days; for monthly (IPCA) it is months."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.bcb.ipca",
      "title": "IPCA Monthly Inflation (BCB)",
      "description": "Brazilian IPCA monthly inflation rate (series 433) \u2014 last N observations from BCB SGS. ODbL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "last_n": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of most recent observations to return (default 30, max 500). For daily series this is days; for monthly (IPCA) it is months."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.bcb.selic",
      "title": "SELIC Daily Rate (BCB)",
      "description": "Brazilian SELIC daily interest rate (series 11) \u2014 last N observations from BCB SGS. ODbL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "last_n": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of most recent observations to return (default 30, max 500). For daily series this is days; for monthly (IPCA) it is months."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.bcb.selic_target",
      "title": "SELIC Target Rate (COPOM)",
      "description": "COPOM-set SELIC target rate (series 4389) \u2014 Brazilian central bank policy decisions. BCB SGS ODbL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "last_n": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of most recent observations to return (default 30, max 500). For daily series this is days; for monthly (IPCA) it is months."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.bcb.usd_brl",
      "title": "USD/BRL Daily FX (BCB)",
      "description": "Brazilian Real / US Dollar daily exchange rate (series 1) \u2014 last N observations from BCB SGS. ODbL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "last_n": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of most recent observations to return (default 30, max 500). For daily series this is days; for monthly (IPCA) it is months."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "bible.catalog.books",
      "title": "List Books in Bible Translation",
      "description": "List the books in a specific Bible translation (e.g. KJV \u2192 66 books). Returns book IDs and chapter counts needed for bible.passage. Free Use Bible API",
      "inputSchema": {
        "type": "object",
        "properties": {
          "translation": {
            "type": "string",
            "description": "Bible translation ID (e.g. \"KJV\", \"ASV\", \"WEB\", \"BSB\"). Use bible.translations to discover IDs.",
            "minLength": 1
          }
        },
        "required": [
          "translation"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "bible.catalog.commentaries",
      "title": "List Bible Commentaries",
      "description": "List available scholarly Bible commentaries (Matthew Henry, JFB, Gill, etc.). Each entry includes commentary ID, name, and language. Free Use Bible API",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max commentaries to return (default 50, max 100)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "bible.text.passage",
      "title": "Get Bible Chapter Text",
      "description": "Fetch the verse-by-verse text of a Bible chapter for a given translation and book (e.g. KJV / John / 3). Returns array of {number, text}. Free Use Bible API",
      "inputSchema": {
        "type": "object",
        "properties": {
          "translation": {
            "type": "string",
            "description": "Bible translation ID (e.g. \"KJV\", \"ASV\", \"WEB\", \"BSB\").",
            "minLength": 1
          },
          "book": {
            "type": "string",
            "description": "Book ID \u2014 typically a 3-letter code (e.g. \"GEN\", \"JHN\", \"PSA\") or full name. Use bible.books to discover.",
            "minLength": 1
          },
          "chapter": {
            "type": "integer",
            "description": "Chapter number (1-based, e.g. 3 for John 3).",
            "minimum": 1
          }
        },
        "required": [
          "translation",
          "book",
          "chapter"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "bible.catalog.translations",
      "title": "List Bible Translations",
      "description": "List 1000+ public-domain Bible translations across 429+ languages. Filter by ISO 639-3 language code or English name. Returns translation IDs needed for bible.passage. MIT-licensed open data (Free Use Bible API)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "description": "Optional ISO 639-3 language code (e.g. \"eng\", \"spa\", \"fra\") or English language name substring (e.g. \"Spanish\") to filter the 1000+ translations."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Max translations to return (default 50, max 200)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.brasilapi.banks",
      "title": "Brazilian Banks",
      "description": "List all 472 Brazilian banks with ISPB codes and bank numbers. BrasilAPI MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "Set to true to bypass cache and re-fetch the list of 472 Brazilian banks with ISPB codes."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.brasilapi.cep",
      "title": "Brazilian CEP Lookup",
      "description": "Look up a Brazilian address by 8-digit CEP postal code \u2014 returns street, neighborhood, city, state, coordinates, timezone. BrasilAPI MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cep": {
            "type": "string",
            "description": "Brazilian postal code (CEP) \u2014 8 digits with or without dash (e.g. \"01001000\" or \"01001-000\"). Returns street, neighborhood, city, state, coords, timezone.",
            "minLength": 8
          }
        },
        "required": [
          "cep"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.brasilapi.cnpj",
      "title": "Brazilian CNPJ Lookup",
      "description": "Look up a Brazilian company by 14-digit CNPJ tax ID \u2014 returns name, address, CNAE codes, QSA partners, capital, status from Receita Federal. BrasilAPI MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cnpj": {
            "type": "string",
            "description": "Brazilian company tax ID (CNPJ) \u2014 14 digits with or without punctuation (e.g. \"33000167000101\" or \"33.000.167/0001-01\"). Returns full Receita Federal company registry data.",
            "minLength": 14
          }
        },
        "required": [
          "cnpj"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.brasilapi.ddd",
      "title": "Brazilian DDD Area Code",
      "description": "Look up Brazilian area code (DDD, 2 digits) \u2192 state and cities. BrasilAPI MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ddd": {
            "type": "integer",
            "description": "Brazilian area code (DDD) \u2014 2 digits (e.g. 11 for S\u00e3o Paulo, 21 for Rio de Janeiro).",
            "minimum": 11,
            "maximum": 99
          }
        },
        "required": [
          "ddd"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.brasilapi.holidays",
      "title": "Brazilian Holidays",
      "description": "All Brazilian national holidays for a given year. BrasilAPI MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "description": "Year (e.g. 2026). Returns all Brazilian national holidays for that year.",
            "minimum": 1900,
            "maximum": 2100
          }
        },
        "required": [
          "year"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.brasilapi.rates",
      "title": "Brazilian Interest Rates",
      "description": "Current SELIC, CDI, and IPCA rates from Banco Central do Brasil. BrasilAPI MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "Set to true to bypass cache and re-fetch current SELIC, CDI, and IPCA rates."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.eurostat.gdp_growth",
      "title": "EU Annual GDP Growth",
      "description": "Annual real GDP growth rate (chain-linked volumes, % change vs previous year) for one EU country. Eurostat dataset tec00115, CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Eurostat geo code \u2014 2-letter country (DE, FR, IT, ES, UK, PL, ...) or aggregate (\"EU27_2020\", \"EA20\"). One country per call. Default: \"EU27_2020\"."
          },
          "since": {
            "type": "string",
            "description": "Earliest period to return \u2014 format depends on series frequency: \"2020\" (annual), \"2024-01\" (monthly), \"2024Q1\" (quarterly)."
          },
          "until": {
            "type": "string",
            "description": "Latest period to return \u2014 same format as `since`."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.eurostat.inflation",
      "title": "EU Monthly Inflation (HICP)",
      "description": "Monthly HICP annual rate of change (overall index) for one EU country. Eurostat dataset prc_hicp_manr, CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Eurostat geo code \u2014 2-letter country (DE, FR, IT, ES, UK, PL, ...) or aggregate (\"EU27_2020\", \"EA20\"). One country per call. Default: \"EU27_2020\"."
          },
          "since": {
            "type": "string",
            "description": "Earliest period to return \u2014 format depends on series frequency: \"2020\" (annual), \"2024-01\" (monthly), \"2024Q1\" (quarterly)."
          },
          "until": {
            "type": "string",
            "description": "Latest period to return \u2014 same format as `since`."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.eurostat.population",
      "title": "EU Annual Population",
      "description": "Annual population on 1 January for one EU country. Eurostat dataset demo_gind, CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Eurostat geo code \u2014 2-letter country (DE, FR, IT, ES, UK, PL, ...) or aggregate (\"EU27_2020\", \"EA20\"). One country per call. Default: \"EU27_2020\"."
          },
          "since": {
            "type": "string",
            "description": "Earliest period to return \u2014 format depends on series frequency: \"2020\" (annual), \"2024-01\" (monthly), \"2024Q1\" (quarterly)."
          },
          "until": {
            "type": "string",
            "description": "Latest period to return \u2014 same format as `since`."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.eurostat.unemployment",
      "title": "EU Monthly Unemployment",
      "description": "Monthly unemployment rate (% of active population, seasonally adjusted, total population) for one EU country (geo code) or aggregate (EU27_2020, EA20). Eurostat dataset une_rt_m, CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Eurostat geo code \u2014 2-letter country (DE, FR, IT, ES, UK, PL, ...) or aggregate (\"EU27_2020\", \"EA20\"). One country per call. Default: \"EU27_2020\"."
          },
          "since": {
            "type": "string",
            "description": "Earliest period to return \u2014 format depends on series frequency: \"2020\" (annual), \"2024-01\" (monthly), \"2024Q1\" (quarterly)."
          },
          "until": {
            "type": "string",
            "description": "Latest period to return \u2014 same format as `since`."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.gutendex.book",
      "title": "Project Gutenberg Book Detail",
      "description": "Get full metadata + download URLs (EPUB, TXT, HTML, cover JPEG) for a Project Gutenberg book by numeric ID (e.g. 1342 = Pride and Prejudice). Gutendex MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "book_id": {
            "type": "integer",
            "description": "Project Gutenberg book ID (e.g. 1342 for Pride and Prejudice, 11 for Alice in Wonderland).",
            "minimum": 1
          }
        },
        "required": [
          "book_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.gutendex.by_author",
      "title": "Books by Author (Gutendex)",
      "description": "List all Project Gutenberg books by a specific author (search by name). Filter by language. Gutendex MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "author": {
            "type": "string",
            "description": "Author name search (e.g. \"Jane Austen\", \"Mark Twain\", \"Tolstoy\").",
            "minLength": 1
          },
          "language": {
            "type": "string",
            "description": "Optional ISO 639-1 language code to filter by language (e.g. \"en\")."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max results to return (default 20, max 50)."
          }
        },
        "required": [
          "author"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.gutendex.popular",
      "title": "Popular Public-Domain Books",
      "description": "List most-downloaded Project Gutenberg books, optionally filtered by language or topic. Gutendex MIT",
      "inputSchema": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "description": "Optional ISO 639-1 language code to filter (e.g. \"en\")."
          },
          "topic": {
            "type": "string",
            "description": "Optional subject/bookshelf to filter (e.g. \"Adventure\")."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max results to return (default 20, max 50)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.gutendex.search",
      "title": "Search Project Gutenberg",
      "description": "Search 78K+ public-domain books on Project Gutenberg by free-text query, language (ISO 639-1), topic, or author birth year. Returns book IDs, titles, authors, languages, subjects, download counts, and EPUB/TXT/HTML/cover URLs (Gutendex MIT)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free-text search across title, author name, and subject (e.g. \"shakespeare\", \"moby dick\")."
          },
          "language": {
            "type": "string",
            "description": "ISO 639-1 language code or comma-separated codes to filter by language (e.g. \"en\", \"fr,de\")."
          },
          "topic": {
            "type": "string",
            "description": "Subject/bookshelf topic filter (e.g. \"Adventure\", \"Children's literature\")."
          },
          "author_year_start": {
            "type": "integer",
            "description": "Filter by author birth year \u2014 only include books from authors alive in this period start."
          },
          "author_year_end": {
            "type": "integer",
            "description": "Filter by author birth year \u2014 only include books from authors alive up to this year."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max results to return (default 20, max 50)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.ibge.cnae",
      "title": "CNAE Economic Activity Classes",
      "description": "Brazilian CNAE economic activity classification codes used in CNPJ and tax filings. IBGE CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Max CNAE economic activity classes to return (default 100, max 500)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.ibge.municipalities",
      "title": "Brazilian Municipalities",
      "description": "List all 5,570 Brazilian municipalities (or filtered by 2-letter state code) with IBGE codes. IBGE CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "uf": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Optional 2-letter Brazilian state code (e.g. \"SP\" for S\u00e3o Paulo, \"RJ\" for Rio de Janeiro). If omitted, returns all 5,570 municipalities."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2000,
            "description": "Max municipalities to return (default 200, max 2000 \u2014 useful for pagination)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.ibge.name_frequency",
      "title": "Brazilian Name Frequency",
      "description": "First-name popularity time-series by decade since 1930 from Brazilian census data \u2014 useful for cultural/marketing research. IBGE CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "First name (e.g. \"MARIA\", \"JOSE\"). Returns name frequency time-series by decade since 1930 from Brazilian census data.",
            "minLength": 1
          }
        },
        "required": [
          "name"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.ibge.regions",
      "title": "Brazilian Regions",
      "description": "The 5 Brazilian geographic regions (Norte, Nordeste, Sudeste, Sul, Centro-Oeste) with metadata. IBGE CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "Set to true to bypass cache and fetch the 5 Brazilian geographic regions (Norte, Nordeste, etc.)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.ibge.states",
      "title": "Brazilian States",
      "description": "All 27 Brazilian states + Federal District with full region hierarchy. IBGE CC BY 4.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "Set to true to bypass cache and fetch all 27 Brazilian states + DF with region hierarchy."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.librivox.book",
      "title": "LibriVox Audiobook Detail",
      "description": "Get full audiobook details by LibriVox ID \u2014 includes per-section MP3 URLs (chapter-level streaming), playtimes, authors, and project metadata. LibriVox public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "book_id": {
            "type": "integer",
            "description": "LibriVox audiobook ID (integer). Use librivox.search first to discover IDs. Returns full chapter list with MP3 URLs.",
            "minimum": 1
          }
        },
        "required": [
          "book_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "books.librivox.search",
      "title": "Search LibriVox Audiobooks",
      "description": "Search 20K+ public-domain audiobooks by title, author, or genre. Returns book IDs, descriptions, languages, copyright years, total time, and ZIP download URLs. LibriVox public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Substring search on audiobook title (e.g. \"pride and prejudice\", \"treasure\")."
          },
          "author": {
            "type": "string",
            "description": "Author name search (e.g. \"shakespeare\", \"twain\", \"tolstoy\")."
          },
          "genre": {
            "type": "string",
            "description": "Genre filter \u2014 e.g. \"Adventure\", \"Children's Fiction\", \"Mystery\", \"Plays\", \"Poetry\"."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max results to return (default 25, max 100)."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for stepping through large result sets."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.loc.collections",
      "title": "List LOC Collections",
      "description": "Browse Library of Congress digital collections \u2014 Civil War Photographs, Geography & Map Division, Rosa Parks Papers, etc. Returns collection slugs needed for filtered search. LOC public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max collections to return (default 20, max 50)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.loc.item",
      "title": "LOC Item Detail",
      "description": "Get full metadata + asset URLs (image, audio, PDF) for a Library of Congress item by its ID or full LOC URL. Includes rights, contributors, subjects, and digitized resource list. LOC public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "item_id": {
            "type": "string",
            "description": "Library of Congress item ID or full LOC URL (e.g. \"item/2003675333\" or \"https://www.loc.gov/item/2003675333/\"). Returns metadata + asset URLs.",
            "minLength": 1
          }
        },
        "required": [
          "item_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "media.loc.search",
      "title": "Search Library of Congress",
      "description": "Search 415K+ digitized historical items at LOC (photos, manuscripts, maps, newspapers, films, rare books). Filter by online format (image/audio/video/text/web archive) or collection slug. Public domain by US statute (17 USC \u00a7105)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free-text search across LOC's 415K+ digitized items (e.g. \"civil war\", \"suffrage\", \"lincoln\").",
            "minLength": 1
          },
          "format": {
            "type": "string",
            "enum": [
              "image",
              "audio",
              "film, video",
              "online text",
              "web archive"
            ],
            "description": "Optional filter by online format \u2014 image, audio, film/video, online text, or web archive."
          },
          "collection": {
            "type": "string",
            "description": "Optional collection slug to scope the search (e.g. \"rosa-parks-papers\")."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for pagination (1-based)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Results per page (default 20, max 50)."
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.sg.air_quality",
      "title": "SG PM2.5 Air Quality",
      "description": "Real-time PM2.5 readings (\u03bcg/m\u00b3) for the 5 Singapore regions (north/south/east/west/central). NEA, SG Open Data Licence v1.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Optional ISO 8601 date (YYYY-MM-DD) or datetime to query historical data. If omitted, returns the latest snapshot."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.sg.rainfall",
      "title": "SG Rainfall Stations",
      "description": "5-minute rainfall readings (mm) from 60 NEA weather stations across Singapore with station coords. SG Open Data Licence v1.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Optional ISO 8601 date (YYYY-MM-DD) or datetime to query historical data. If omitted, returns the latest snapshot."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.sg.taxi_availability",
      "title": "SG Live Taxi Density",
      "description": "Live taxi positions across Singapore aggregated to a 5km grid \u2014 returns the top 30 zones by taxi count and the timestamp of the snapshot. LTA, SG Open Data Licence v1.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "Set to true to bypass cache and re-fetch the latest snapshot."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.sg.weather_forecast",
      "title": "SG 2-Hour Weather Forecast",
      "description": "Real-time 2-hour weather forecast for 51 Singapore zones (showers/cloudy/etc.) from NEA. Singapore Open Data Licence v1.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Optional ISO 8601 date (YYYY-MM-DD) or datetime to query historical data. If omitted, returns the latest snapshot."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "language.tatoeba.languages",
      "title": "Tatoeba Supported Languages",
      "description": "List all 429 supported languages on Tatoeba with ISO 639-3 codes and sentence counts. Tatoeba CC-BY 2.0 FR",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "Set to true to bypass cache and fetch the latest list of supported languages with sentence counts."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "language.tatoeba.search",
      "title": "Search Tatoeba Sentences",
      "description": "Search 13M parallel sentences across 429 languages (CC-BY 2.0 FR). Filter by source language, optional translation language, audio availability, and free-text keyword. Sort by relevance/random/created/modified. Tatoeba",
      "inputSchema": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "description": "ISO 639-3 language code of the source sentence (default \"eng\"). Use tatoeba.languages to discover codes."
          },
          "query": {
            "type": "string",
            "description": "Optional keyword search inside sentence text."
          },
          "translation_lang": {
            "type": "string",
            "description": "ISO 639-3 code of a target language \u2014 only return sentences that have a translation into this language."
          },
          "has_audio": {
            "type": "boolean",
            "description": "Filter to sentences that have a human audio recording attached."
          },
          "sort": {
            "type": "string",
            "enum": [
              "relevance",
              "words",
              "created",
              "modified",
              "random"
            ],
            "description": "Sort order \u2014 \"relevance\" (default), \"words\" (length), \"created\", \"modified\", or \"random\"."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max sentences to return (default 10, max 50)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "language.tatoeba.sentence",
      "title": "Tatoeba Sentence Detail",
      "description": "Get a single Tatoeba sentence by ID with all translations and audio recordings. Useful for language-learning agents. Tatoeba CC-BY 2.0 FR",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sentence_id": {
            "type": "integer",
            "description": "Tatoeba sentence ID. Returns the sentence with all translations and audio recordings.",
            "minimum": 1
          }
        },
        "required": [
          "sentence_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.ukpolice.crimes_near",
      "title": "UK Crimes Near Coordinate",
      "description": "Street-level UK crime records within 1 mile of a coordinate for a given month (England + Wales, 43 forces). Filter by crime category. Returns up to 500 records with category, location, outcome status. OGL v3.0 (commercial OK)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude (e.g. 51.5074 for central London). UK area only."
          },
          "lng": {
            "type": "number",
            "description": "Longitude (e.g. -0.1278 for central London)."
          },
          "date": {
            "type": "string",
            "description": "Month in YYYY-MM format (e.g. \"2024-06\"). Defaults to latest available month if omitted."
          },
          "category": {
            "type": "string",
            "description": "Crime category slug \u2014 \"all-crime\" (default), \"burglary\", \"violent-crime\", \"drugs\", \"robbery\", \"shoplifting\", \"vehicle-crime\", \"anti-social-behaviour\", etc."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Max crime records to return (default 100, max 500)."
          }
        },
        "required": [
          "lat",
          "lng"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.ukpolice.forces",
      "title": "UK Police Forces",
      "description": "List the 43 UK police forces (id + name) for England and Wales. Used to drill down into per-force statistics. OGL v3.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "refresh": {
            "type": "boolean",
            "description": "Set to true to bypass cache and re-fetch the list of 43 UK police forces."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.ukpolice.outcomes",
      "title": "UK Crime Outcomes at Location",
      "description": "Case outcomes (charged, acquitted, action taken, etc.) for crimes at a UK coordinate in a given month. Useful for property safety scoring. OGL v3.0",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude of the location to query (e.g. 51.5074)."
          },
          "lng": {
            "type": "number",
            "description": "Longitude of the location to query (e.g. -0.1278)."
          },
          "date": {
            "type": "string",
            "description": "Month in YYYY-MM format. Defaults to latest available month."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Max outcome records to return (default 100, max 500)."
          }
        },
        "required": [
          "lat",
          "lng"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.airnow.current_latlng",
      "title": "Current AQI by Coordinate (AirNow)",
      "description": "Current AQI observations near a US coordinate. Same fields as current_zip. EPA AirNow",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude (decimal degrees, e.g. 40.7128 for NYC)."
          },
          "lng": {
            "type": "number",
            "description": "Longitude (decimal degrees, e.g. -74.0060 for NYC)."
          },
          "distance": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Search radius in miles around the coordinate (default 25)."
          }
        },
        "required": [
          "lat",
          "lng"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.airnow.current_zip",
      "title": "Current AQI by ZIP (AirNow)",
      "description": "Current Air Quality Index (AQI) observations from EPA AirNow for any US ZIP code. Returns PM2.5, ozone, AQI value + category (Good/Moderate/Unhealthy/...). US Gov free",
      "inputSchema": {
        "type": "object",
        "properties": {
          "zip": {
            "type": "string",
            "description": "US ZIP code \u2014 5 digits (e.g. \"10001\" Manhattan, \"90210\" Beverly Hills, \"60601\" Chicago).",
            "minLength": 5,
            "maxLength": 5
          },
          "distance": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Search radius in miles around the ZIP centroid (default 25). If no monitor within radius, returns empty array."
          }
        },
        "required": [
          "zip"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.airnow.forecast_latlng",
      "title": "AQI Forecast by Coordinate (AirNow)",
      "description": "Multi-day AQI forecast for a US lat/lng. EPA AirNow",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "description": "Latitude (decimal degrees, e.g. 40.7128 for NYC)."
          },
          "lng": {
            "type": "number",
            "description": "Longitude (decimal degrees, e.g. -74.0060 for NYC)."
          },
          "distance": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Search radius in miles around the coordinate (default 25)."
          },
          "date": {
            "type": "string",
            "description": "Optional ISO date YYYY-MM-DD to get forecast for that day. Default: today."
          }
        },
        "required": [
          "lat",
          "lng"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "weather.airnow.forecast_zip",
      "title": "AQI Forecast by ZIP (AirNow)",
      "description": "Multi-day AQI forecast (today + ~5 days) for a US ZIP \u2014 ozone + PM2.5 expected category. EPA AirNow",
      "inputSchema": {
        "type": "object",
        "properties": {
          "zip": {
            "type": "string",
            "description": "US ZIP code \u2014 5 digits (e.g. \"10001\" Manhattan, \"90210\" Beverly Hills, \"60601\" Chicago).",
            "minLength": 5,
            "maxLength": 5
          },
          "distance": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Search radius in miles around the ZIP centroid (default 25). If no monitor within radius, returns empty array."
          },
          "date": {
            "type": "string",
            "description": "Optional ISO date YYYY-MM-DD to get forecast for that day. Default: today."
          }
        },
        "required": [
          "zip"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.eia.electricity",
      "title": "US Retail Electricity (EIA)",
      "description": "Retail electricity sales/price/revenue by US state and sector (residential, commercial, industrial). Frequency monthly/quarterly/annual. EIA public domain, 5K req/hr",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Optional 2-letter US state code (e.g. \"CA\", \"TX\", \"NY\"). If omitted, returns national + all states."
          },
          "frequency": {
            "type": "string",
            "enum": [
              "monthly",
              "quarterly",
              "annual"
            ],
            "description": "Time frequency (default \"monthly\")."
          },
          "length": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of recent observations to return (default 24, max 500)."
          },
          "start": {
            "type": "string",
            "description": "Earliest period (e.g. \"2020-01\" monthly, \"2020\" annual)."
          },
          "end": {
            "type": "string",
            "description": "Latest period in same format as `start`."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.eia.natural_gas",
      "title": "US Natural Gas Prices (EIA)",
      "description": "Natural gas residential/commercial/industrial prices by US state. EIA public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Optional 2-letter US state code."
          },
          "frequency": {
            "type": "string",
            "enum": [
              "monthly",
              "annual"
            ],
            "description": "Time frequency (default \"monthly\")."
          },
          "length": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of recent observations (default 24, max 500)."
          },
          "start": {
            "type": "string",
            "description": "Earliest period."
          },
          "end": {
            "type": "string",
            "description": "Latest period."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.eia.petroleum",
      "title": "US Petroleum Spot Prices (EIA)",
      "description": "Spot prices for crude oil and petroleum products: WTI (EPCWTI), Brent (EPCBRENT), Diesel (EPD2D), Regular Gas (EPMRR). Daily/weekly/monthly/annual. EIA public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "description": "Petroleum product code \u2014 e.g. \"EPCBRENT\" (Brent), \"EPCWTI\" (WTI), \"EPD2D\" (No. 2 Diesel), \"EPMRR\" (Regular Gas)."
          },
          "frequency": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "annual"
            ],
            "description": "Time frequency (default \"daily\" for spot prices)."
          },
          "length": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of recent observations (default 24, max 500)."
          },
          "start": {
            "type": "string",
            "description": "Earliest period (ISO date or YYYY-MM-DD)."
          },
          "end": {
            "type": "string",
            "description": "Latest period."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "finance.eia.series",
      "title": "EIA Total-Energy Series",
      "description": "Direct fetch of any EIA total-energy time-series by series ID (e.g. RNGWHHD = Henry Hub spot, ELETPUS = US electricity total). EIA public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "series_id": {
            "type": "string",
            "description": "EIA series ID for the total-energy dataset (e.g. \"RNGWHHD\" Henry Hub spot, \"ELETPUS\" total US electricity, \"TETCBUS\" total energy consumption).",
            "minLength": 1
          },
          "frequency": {
            "type": "string",
            "enum": [
              "monthly",
              "annual"
            ],
            "description": "Time frequency (default \"monthly\")."
          },
          "length": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Number of recent observations (default 24, max 500)."
          }
        },
        "required": [
          "series_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.fec.candidates",
      "title": "FEC Candidates",
      "description": "Search 53K+ US federal election candidates by name/cycle/office (House/Senate/Presidential)/state/party. Returns FEC candidate ID + filing dates. FEC public disclosure",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Free-text candidate name search (e.g. \"Sanders\", \"Trump\")."
          },
          "cycle": {
            "type": "integer",
            "description": "Election cycle year \u2014 even number (e.g. 2024, 2022, 2020)."
          },
          "office": {
            "type": "string",
            "enum": [
              "H",
              "S",
              "P"
            ],
            "description": "Office: \"H\" House of Representatives, \"S\" Senate, \"P\" Presidential."
          },
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "2-letter state code (e.g. \"CA\", \"TX\")."
          },
          "party": {
            "type": "string",
            "description": "Party abbreviation (e.g. \"REP\", \"DEM\", \"LIB\", \"GRE\")."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Per-page count (default 20, max 100)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.fec.committee_totals",
      "title": "FEC Committee Totals",
      "description": "Receipts, disbursements, and cash-on-hand for US political committees (PACs, parties, candidate committees). Filter by cycle and committee type. FEC public disclosure",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cycle": {
            "type": "integer",
            "description": "Election cycle year (e.g. 2024)."
          },
          "committee_type": {
            "type": "string",
            "description": "Committee type code: \"P\" Presidential, \"H\" House, \"S\" Senate, \"X\" Party, \"Y\" Party-Qualified, \"N\" PAC, \"Q\" PAC-Qualified, \"O\" Super PAC."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Per-page count (default 20, max 100)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.fec.elections",
      "title": "FEC Election Totals",
      "description": "Aggregate election totals by cycle, office, and state \u2014 total receipts, disbursements, candidate count per race. FEC public disclosure",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cycle": {
            "type": "integer",
            "description": "Election cycle year (e.g. 2024)."
          },
          "office": {
            "type": "string",
            "enum": [
              "H",
              "S",
              "P"
            ],
            "description": "Office: \"H\" House, \"S\" Senate, \"P\" Presidential."
          },
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "2-letter state code."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Per-page count (default 20, max 100)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "gov.fec.super_pac_spending",
      "title": "Super PAC Independent Expenditures (FEC)",
      "description": "Schedule E independent expenditures \u2014 Super PAC spending supporting/opposing specific federal candidates. Filter by cycle, candidate ID, or support/oppose direction. FEC public disclosure",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cycle": {
            "type": "integer",
            "description": "Election cycle year (e.g. 2024)."
          },
          "candidate_id": {
            "type": "string",
            "description": "FEC candidate ID (from fec.candidates) \u2014 return only expenditures targeting this candidate."
          },
          "support_oppose": {
            "type": "string",
            "enum": [
              "S",
              "O"
            ],
            "description": "\"S\" support / \"O\" oppose. If omitted, both directions returned."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number (default 1)."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Per-page count (default 20, max 100)."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "travel.nps.alerts",
      "title": "NPS Park Alerts",
      "description": "Real-time alerts (closures, hazards, fire, flood, danger) for US national parks. Filter by state or park code. NPS public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state_code": {
            "type": "string",
            "description": "Optional 2-letter US state code (e.g. \"CA\", \"NY\", \"WY\"). Comma-separated for multiple (\"CA,WY\")."
          },
          "park_code": {
            "type": "string",
            "description": "Optional park code (e.g. \"yose\" Yosemite, \"yell\" Yellowstone, \"grca\" Grand Canyon). Comma-separated allowed."
          },
          "q": {
            "type": "string",
            "description": "Free-text keyword search."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max records to return (default 10, max 50)."
          },
          "start": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for stepping through results."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "travel.nps.campgrounds",
      "title": "NPS Campgrounds",
      "description": "NPS campgrounds with reservation info, accessibility, amenities, coords. NPS public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state_code": {
            "type": "string",
            "description": "Optional 2-letter US state code (e.g. \"CA\", \"NY\", \"WY\"). Comma-separated for multiple (\"CA,WY\")."
          },
          "park_code": {
            "type": "string",
            "description": "Optional park code (e.g. \"yose\" Yosemite, \"yell\" Yellowstone, \"grca\" Grand Canyon). Comma-separated allowed."
          },
          "q": {
            "type": "string",
            "description": "Free-text keyword search."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max records to return (default 10, max 50)."
          },
          "start": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for stepping through results."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "travel.nps.parks",
      "title": "US National Parks",
      "description": "Search the 474 US national parks with full metadata: coords, activities, entrance fees, operating hours, photos, designation. Filter by state code, park code, or keyword. NPS public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state_code": {
            "type": "string",
            "description": "Optional 2-letter US state code (e.g. \"CA\", \"NY\", \"WY\"). Comma-separated for multiple (\"CA,WY\")."
          },
          "park_code": {
            "type": "string",
            "description": "Optional park code (e.g. \"yose\" Yosemite, \"yell\" Yellowstone, \"grca\" Grand Canyon). Comma-separated allowed."
          },
          "q": {
            "type": "string",
            "description": "Free-text keyword search."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max records to return (default 10, max 50)."
          },
          "start": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for stepping through results."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "travel.nps.things_to_do",
      "title": "NPS Things To Do",
      "description": "Activities, programs, tours offered at US national parks (3,587 entries). Filter by park or state. NPS public domain",
      "inputSchema": {
        "type": "object",
        "properties": {
          "state_code": {
            "type": "string",
            "description": "Optional 2-letter US state code (e.g. \"CA\", \"NY\", \"WY\"). Comma-separated for multiple (\"CA,WY\")."
          },
          "park_code": {
            "type": "string",
            "description": "Optional park code (e.g. \"yose\" Yosemite, \"yell\" Yellowstone, \"grca\" Grand Canyon). Comma-separated allowed."
          },
          "q": {
            "type": "string",
            "description": "Free-text keyword search."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max records to return (default 10, max 50)."
          },
          "start": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset for stepping through results."
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "razorpay.ifsc.lookup",
      "title": "Razorpay IFSC Bank Lookup",
      "description": "Look up Indian bank branch details (name, address, IFSC capabilities like UPI/NEFT/RTGS/IMPS) by IFSC code. Free, MIT-licensed open data covering all Indian banks.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ifsc_code": {
            "type": "string",
            "description": "11-character IFSC code (e.g. SBIN0005943). Format: 4 letters (bank code) + 0 + 6 digits (branch code).",
            "minLength": 11,
            "maxLength": 11
          }
        },
        "required": [
          "ifsc_code"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "lichess.puzzle.daily",
      "title": "Lichess Daily Puzzle",
      "description": "Get today's Lichess daily puzzle \u2014 puzzle ID, FEN position, solution moves, theme, rating difficulty.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "_unused": {
            "type": "string",
            "description": "Reserved for future filtering \u2014 not currently used."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "lichess.players.top",
      "title": "Lichess Top Players",
      "description": "Top N players in a chess variant (bullet, blitz, rapid, classical, ultraBullet, chess960, crazyhouse, antichess, atomic, horde, kingOfTheHill, racingKings, threeCheck). Returns username, rating, country.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "nb": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Number of top players to return (1\u2013200). Defaults to 10.",
            "default": 10
          },
          "perf_type": {
            "type": "string",
            "enum": [
              "bullet",
              "blitz",
              "rapid",
              "classical",
              "ultraBullet",
              "chess960",
              "crazyhouse",
              "antichess",
              "atomic",
              "horde",
              "kingOfTheHill",
              "racingKings",
              "threeCheck"
            ],
            "description": "Chess variant to rank players by. One of: bullet, blitz, rapid, classical, ultraBullet, chess960, crazyhouse, antichess, atomic, horde, kingOfTheHill, racingKings, threeCheck."
          }
        },
        "required": [
          "perf_type"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "lichess.user.profile",
      "title": "Lichess User Profile",
      "description": "Get a Lichess user's profile \u2014 username, ratings across variants (bullet/blitz/rapid/classical/correspondence/puzzle), games played, online status, profile bio, country, language.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Lichess username (2\u201330 characters, lowercase letters, digits, and underscores). Example: \"DrNykterstein\".",
            "minLength": 2,
            "maxLength": 30
          }
        },
        "required": [
          "username"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "chesscom.player.profile",
      "title": "Chess.com Player Profile",
      "description": "Get a Chess.com player's profile \u2014 username, country, title (GM/IM/FM), join date, online status, followers, league. Distinct from Lichess: Chess.com is the world's largest chess platform with 100M+ users.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Chess.com username (3\u201325 characters; lowercase letters, digits, hyphens, and underscores only). Example: \"hikaru\", \"magnuscarlsen\".",
            "minLength": 3,
            "maxLength": 25
          }
        },
        "required": [
          "username"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "chesscom.player.stats",
      "title": "Chess.com Player Stats",
      "description": "Get a Chess.com player's rating + record across all time controls (rapid, blitz, bullet, daily, daily960, tactics, lessons, puzzle_rush). Returns highest rating, current rating, win/loss/draw counts.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Chess.com username (3\u201325 characters; lowercase letters, digits, hyphens, and underscores only). Example: \"hikaru\", \"magnuscarlsen\".",
            "minLength": 3,
            "maxLength": 25
          }
        },
        "required": [
          "username"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "chesscom.players.titled",
      "title": "Chess.com Titled Players List",
      "description": "List all titled players on Chess.com by title (GM, WGM, IM, WIM, FM, WFM, NM, WNM, CM, WCM). Returns array of usernames.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "enum": [
              "GM",
              "WGM",
              "IM",
              "WIM",
              "FM",
              "WFM",
              "NM",
              "WNM",
              "CM",
              "WCM"
            ],
            "description": "Official chess title to filter by. GM = Grandmaster, WGM = Woman Grandmaster, IM = International Master, WIM = Woman International Master, FM = FIDE Master, WFM = Woman FIDE Master, NM = National Master, WNM = Woman National Master, CM = Candidate Master, WCM = Woman Candidate Master."
          }
        },
        "required": [
          "title"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "aviation.metar.current",
      "title": "Aviation METAR Weather Report",
      "description": "Current METAR (METeorological Aerodrome Report) for one or more airports \u2014 official aviation weather observations (wind, visibility, sky condition, temperature, dewpoint, altimeter, remarks). Updates every 1 hour, more often when conditions change rapidly.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "icao_codes": {
            "type": "string",
            "description": "Comma-separated ICAO airport codes (uppercase, 4 letters each, e.g. 'KJFK,KLAX,EGLL,RJTT'). Max 20 per call. Examples: KJFK (New York JFK), EGLL (London Heathrow), RJTT (Tokyo Haneda)."
          },
          "hours": {
            "type": "integer",
            "minimum": 1,
            "maximum": 72,
            "description": "Hours of history to return (default 2, max 72)",
            "default": 2
          }
        },
        "required": [
          "icao_codes"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "aviation.sigmet.alerts",
      "title": "Aviation SIGMET / AIRMET Hazard Alerts",
      "description": "Active SIGMET (SIGnificant METeorological information) and AIRMET reports \u2014 flight safety hazards including thunderstorms, turbulence, icing, volcanic ash, dust storms, mountain obscuration. Used by pilots and dispatchers for go/no-go decisions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "_unused": {
            "type": "string",
            "description": "Reserved for future hazard-type filtering"
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "aviation.taf.forecast",
      "title": "Aviation TAF Terminal Forecast",
      "description": "TAF (Terminal Aerodrome Forecast) for an airport \u2014 aviation forecast valid for next 24-30 hours with wind, visibility, weather phenomena, and sky conditions in 6-hour windows. Updates 4\u00d7 daily.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "icao_codes": {
            "type": "string",
            "description": "Comma-separated ICAO airport codes. Max 20 per call. Examples: KJFK (New York JFK), EGLL (London Heathrow), OMDB (Dubai International), YSSY (Sydney Kingsford Smith)."
          }
        },
        "required": [
          "icao_codes"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "ukfsa.establishments.detail",
      "title": "UK FSA Food Business Details",
      "description": "Detailed record for one UK food premise by FSA ID \u2014 full scheme breakdown (hygiene/structural/management scores), confidence in management score, exact inspection date, local authority code, business type taxonomy.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "establishment_id": {
            "type": "integer",
            "description": "FSA establishment ID (positive integer, obtained from establishment_search results).",
            "minimum": 0
          }
        },
        "required": [
          "establishment_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "ukfsa.establishments.search",
      "title": "UK FSA Food Business Search",
      "description": "Search UK food businesses by name, address, postcode, or local authority. Returns the official Food Hygiene Rating Scheme score (0-5), business type, last inspection date, and full address. Covers 500K+ premises across England, Wales, Northern Ireland (Scotland has separate FHIS \u2014 pass/improvement required).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Business name fragment to search (e.g. 'Tesco', 'Pret', 'Wagamama'). Partial match supported."
          },
          "address": {
            "type": "string",
            "description": "Address or postcode fragment (e.g. 'SW1A 1AA', 'Manchester', 'Oxford Street')."
          },
          "latitude": {
            "type": "number",
            "description": "WGS84 latitude for location-based search (use with longitude + max_distance_miles)."
          },
          "longitude": {
            "type": "number",
            "description": "WGS84 longitude for location-based search."
          },
          "max_distance_miles": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "Search radius from lat/lon in miles (0-100, default 5).",
            "default": 5
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Results per page (1-50, default 20).",
            "default": 20
          },
          "page_number": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Page number for pagination (1-200, default 1).",
            "default": 1
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "ukfsa.authorities.list",
      "title": "UK FSA Local Authorities",
      "description": "List all UK local authorities that participate in the Food Hygiene Rating Scheme (or Scottish FHIS) \u2014 name, code, total establishments count, scheme type (FHRS=England/Wales/NI 0-5 rating, FHIS=Scotland pass/improvement).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "_unused": {
            "type": "string",
            "description": "Reserved for future filtering \u2014 not currently used."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "govuk.content.fetch",
      "title": "GOV.UK Document Content",
      "description": "Fetch full content of a GOV.UK page by its base path \u2014 title, publication date, organisation, full HTML body (or structured fields per content type), related documents.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "base_path": {
            "type": "string",
            "description": "GOV.UK URL path starting with /, e.g. '/income-tax-rates' or '/government/publications/spring-statement-2026'. Get from govuk.search results."
          }
        },
        "required": [
          "base_path"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "govuk.organisations.list",
      "title": "GOV.UK Organisations Directory",
      "description": "List or search UK government organisations (ministerial departments, executive agencies, NDPBs, public corporations) \u2014 name, web URL, parent department, child organisations. 1100+ entries from Cabinet Office to local agencies.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Page number (1-100, default 1, 20 organisations per page).",
            "default": 1
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "govuk.content.search",
      "title": "GOV.UK Content Search",
      "description": "Full-text search across all 700K+ GOV.UK documents \u2014 guidance pages, news articles, statistics releases, organisation pages, ministerial pages, statutory instruments. Filter by content type, organisation, topic. Distinct from UK FSA (food ratings only) \u2014 this covers ALL government publications.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query (free text). Examples: 'energy bill rebate', 'visa skilled worker', 'income tax allowance 2026'."
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Results per page (1-100, default 10).",
            "default": 10
          },
          "start": {
            "type": "integer",
            "minimum": 0,
            "description": "Offset for pagination (default 0).",
            "default": 0
          },
          "order": {
            "type": "string",
            "enum": [
              "-public_timestamp",
              "public_timestamp",
              "relevance",
              "-relevance"
            ],
            "description": "Sort order. Default is relevance. Use '-public_timestamp' for newest first, 'public_timestamp' for oldest first."
          }
        },
        "required": [
          "q"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "scb.catalog.browse",
      "title": "SCB Sweden Statistics Catalog",
      "description": "Browse the SCB statistics database tree by path. Top-level categories: BE (population), AM (labour market), HE (households), NR (national accounts), PR (prices/inflation), MI (environment), AA (general), BO (housing), EN (energy), FM (financial markets), HA (trade), JO (agriculture), LE (living conditions). Returns child nodes (subcategories, type=l) or table descriptors at leaf nodes (type=t). Use empty path '' to get top-level. Navigate hierarchically to find tables for scb.table_metadata.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Hierarchical path through SCB taxonomy. Empty '' gets top-level categories. Examples: 'BE' (population), 'BE/BE0101' (population statistics tables), 'AM' (labour market), 'NR' (national accounts), 'PR' (prices/inflation), 'MI' (environment), 'HE' (household finances). Use scb.catalog recursively to navigate until type=t (table leaf) nodes appear.",
            "default": ""
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "scb.tables.metadata",
      "title": "SCB Sweden Table Metadata",
      "description": "Get metadata for a specific SCB statistical table \u2014 title, dimensions (variables like Region, Alder/age, Kon/sex, Tid/year), valid value codes for each dimension, and latest update timestamp. Use this BEFORE scb.table_query to discover what filter values are accepted. Example path: 'BE/BE0101/BE0101A/BefolkningNy' (Sweden population by region/age/sex/year).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "table_path": {
            "type": "string",
            "description": "Full path to a leaf table (type='t' from scb.catalog), e.g. 'BE/BE0101/BE0101A/BefolkningNy' (Sweden population by region/age/sex/year). 'AM/AKU/AKU01/AKU01A' (labour market, employed persons). Returns title, dimension codes, and valid values to use in scb.table_query."
          }
        },
        "required": [
          "table_path"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "scb.tables.query",
      "title": "SCB Sweden Table Query",
      "description": "Run a statistical query against an SCB table \u2014 specify dimension filters to slice data by region, age, sex, year, etc. Returns JSON-stat2 format with labeled dimensions and numeric values. Always call scb.table_metadata first to discover valid dimension codes and value codes. Example: Sweden total population (Region='00', filter='vs:RegionRiket99'), latest year (Tid filter='top' values=['1']).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "table_path": {
            "type": "string",
            "description": "Full path to the leaf table to query \u2014 same as scb.table_metadata table_path. Example: 'BE/BE0101/BE0101A/BefolkningNy'."
          },
          "query": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "Dimension code from scb.table_metadata variables[].code. Examples: 'Region', 'Alder', 'Kon', 'Tid', 'ContentsCode'."
                },
                "selection": {
                  "type": "object",
                  "properties": {
                    "filter": {
                      "type": "string",
                      "description": "Filter type. Common values: 'item' (select by exact code), 'vs:RegionRiket99' (Sweden total), 'vs:RegionKommun07' (municipality level), 'top' (select N most recent \u2014 use with Tid/year dimensions), 'all' (all values). Use the valueSet codes from metadata."
                    },
                    "values": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Array of value codes to select. Get valid codes from scb.table_metadata variables[].values. For filter='item': list codes like ['00','01']. For filter='top': list count like ['3'] (3 most recent). For filter='all': use ['*']. Example: Region '00' = Sweden total, Kon '1'=men '2'=women."
                    }
                  },
                  "required": [
                    "filter",
                    "values"
                  ],
                  "description": "Selection criteria for this dimension."
                }
              },
              "required": [
                "code",
                "selection"
              ],
              "description": "Filter for one dimension (variable) in the table."
            },
            "description": "Array of dimension filters. Each filter selects which values to include for one dimension. Example: [{code:'Region',selection:{filter:'vs:RegionRiket99',values:['00']}}, {code:'ContentsCode',selection:{filter:'item',values:['BE0101N1']}}, {code:'Tid',selection:{filter:'top',values:['1']}}]. Response is JSON-stat2 format with dimension labels and numeric values array."
          }
        },
        "required": [
          "table_path",
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "irctc.stations.search",
      "title": "IRCTC Railway Station Lookup",
      "description": "Search Indian Railways stations by name or partial code. Returns station code, full name, state. Use this to discover station codes for irctc.train_search/status.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Station name fragment or partial station code to search for. Case-insensitive. Examples: \"Mumbai\" returns CSMT/BCT/LTT/etc., \"delhi\" returns NDLS/DLI/NZM, \"HWH\" returns Howrah. Returns up to 20 matches."
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "irctc.trains.search",
      "title": "IRCTC Train Search Between Stations",
      "description": "Search trains running between two Indian railway stations. Returns train number, name, departure/arrival time, distance, class availability (1A/2A/3A/SL/CC/EC), and running days (Mon-Sun).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from_station_code": {
            "type": "string",
            "description": "Origin station code (3-5 uppercase letters). Examples: NDLS (New Delhi), CSMT (Mumbai CST), HWH (Howrah Kolkata), MAS (Chennai Central), SBC (Bengaluru)."
          },
          "to_station_code": {
            "type": "string",
            "description": "Destination station code (3-5 uppercase letters, same format as from_station_code). Use irctc.station_search to discover codes by name."
          },
          "date_of_journey": {
            "type": "string",
            "description": "Journey date in YYYY-MM-DD format. Must be within the next 120 days from today. Example: 2026-05-15."
          }
        },
        "required": [
          "from_station_code",
          "to_station_code",
          "date_of_journey"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "irctc.trains.status",
      "title": "IRCTC Live Train Running Status",
      "description": "Get live running status of an Indian train for today or a specific date \u2014 current station, expected arrival/departure, delay in minutes, distance covered, full station-by-station schedule.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "train_number": {
            "type": "string",
            "description": "5-digit Indian Railways train number. Examples: '12951' (Mumbai Rajdhani Express), '12303' (Poorva Express), '22691' (Rajdhani Express Bangalore)."
          },
          "start_day": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4,
            "description": "Day offset for the train journey start relative to today (0=today, 1=yesterday, 2=two days ago, up to 4). Use non-zero for multi-day trains that departed before today.",
            "default": 0
          }
        },
        "required": [
          "train_number"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "nvd.cpes.search",
      "title": "NIST NVD CPE Product Lookup",
      "description": "Search the Common Platform Enumeration (CPE) dictionary for product identifiers used by CVEs. Returns CPE 2.3 URI (cpe:2.3:a:vendor:product:version:...), title, deprecation status. Use this to find the exact CPE string before searching CVEs by affected product.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Product keyword to search the CPE dictionary. Examples: 'openssl', 'apache tomcat', 'nginx 1.18'. Returns CPE 2.3 URIs used to identify affected products in CVE records."
          },
          "results_per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Number of CPE records to return per page. Range: 1\u20131000. Default: 20."
          },
          "start_index": {
            "type": "integer",
            "minimum": 0,
            "description": "Zero-based offset for pagination. Use with results_per_page to page through large result sets. Default: 0."
          }
        },
        "required": [
          "keyword"
        ],
        "description": "Search the CPE dictionary to find product identifiers used in CVE configurations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "nvd.cves.detail",
      "title": "NIST NVD CVE Detail",
      "description": "Fetch the canonical NVD record for a specific CVE-ID \u2014 full English description, CVSS v3 + v2 vectors and scores, weakness types (CWE), affected CPE configurations with version ranges, and all references with tags. Example: CVE-2021-44228 for Log4Shell.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cve_id": {
            "type": "string",
            "description": "Full CVE identifier in canonical form (e.g. 'CVE-2021-44228' for Log4Shell). Format: CVE-YYYY-NNNN+ where YYYY is the year and NNNN+ is a sequence number of four or more digits."
          }
        },
        "required": [
          "cve_id"
        ],
        "description": "Fetch the canonical NVD record for a single CVE by its ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "nvd.cves.search",
      "title": "NIST NVD CVE Search",
      "description": "Search the National Vulnerability Database for CVE records by keyword, vendor, product, CVSS severity, or publication date range. Returns CVE-ID, summary, CVSS v3 base score, severity (LOW/MEDIUM/HIGH/CRITICAL), affected CPE configurations, references. Distinct from OSV: NVD provides canonical NIST records with CVSS v3 scores, CWE weakness types, and CPE configurations.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Free-text keyword to search CVE records. Examples: 'log4j', 'OpenSSL CVE-2023', 'Linux kernel use-after-free'. Combined with other filters using AND logic."
          },
          "cvss_v3_severity": {
            "type": "string",
            "enum": [
              "LOW",
              "MEDIUM",
              "HIGH",
              "CRITICAL"
            ],
            "description": "Filter by CVSS v3 base severity. LOW = 0.1\u20133.9, MEDIUM = 4.0\u20136.9, HIGH = 7.0\u20138.9, CRITICAL = 9.0\u201310.0. Omit to return all severities."
          },
          "pub_start_date": {
            "type": "string",
            "description": "Earliest CVE publication date in ISO 8601 extended format with timezone offset (e.g. '2024-01-01T00:00:00.000+00:00'). Maximum 120-day window per request when combined with pub_end_date."
          },
          "pub_end_date": {
            "type": "string",
            "description": "Latest CVE publication date in ISO 8601 extended format with timezone offset (e.g. '2024-12-31T23:59:59.999+00:00'). Must be paired with pub_start_date. Maximum 120-day window."
          },
          "results_per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2000,
            "description": "Number of CVE records to return per page. Range: 1\u20132000. Default: 20."
          },
          "start_index": {
            "type": "integer",
            "minimum": 0,
            "description": "Zero-based offset for pagination. Use with results_per_page to page through large result sets. Default: 0."
          }
        },
        "description": "Search NVD CVE records by keyword, severity, or date range."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "usajobs.codes.list",
      "title": "USAJOBS Reference Code Lists",
      "description": "Fetch reference code lists used by USAJOBS \u2014 agency codes, pay grades, hiring paths, occupational series, security clearance levels, work schedules. Use to discover valid values for search filters.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "code_list": {
            "type": "string",
            "enum": [
              "agencysubelements",
              "occupationalseries",
              "hiringpaths",
              "securityclearances",
              "applicantsuppliers",
              "geoloccodes",
              "postalcodes",
              "cyberworkroles"
            ],
            "description": "Reference code list name. Options: agencysubelements (all federal agencies and sub-orgs), occupationalseries (4-digit job-family codes, e.g. 2210=IT Specialist), hiringpaths (public/veteran/student/disability/internal), securityclearances (Public Trust to TS/SCI), applicantsuppliers (hiring authority types), geoloccodes (geographic location codes), postalcodes (ZIP code lookup), cyberworkroles (NICE Cybersecurity Workforce Framework roles)."
          }
        },
        "required": [
          "code_list"
        ],
        "description": "Fetch reference code lists used by USAJOBS \u2014 agency codes, pay grades, hiring paths, occupational series, and more."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "usajobs.positions.detail",
      "title": "USAJOBS Position Detail",
      "description": "Get full detail for a specific federal job posting by control number (PositionID) \u2014 full description, qualifications, duties, benefits summary, application instructions, security clearance level, telework eligibility.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "control_number": {
            "type": "string",
            "description": "PositionID from a search result (digits-only string, e.g. \"856924100\"). Found in the MatchedObjectId field."
          }
        },
        "required": [
          "control_number"
        ],
        "description": "Fetch full detail for a specific federal job posting by control number."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "usajobs.jobs.search",
      "title": "USAJOBS Federal Job Search",
      "description": "Search US federal civil-service job postings \u2014 by keyword, location, pay grade (GS-1 to GS-15, SES), agency, position type. Returns position title, agency, location, salary range, grade, open period, application URL. USAJOBS is the ONLY source for US federal civil-service postings, distinct from BLS, ESCO, CareerJet, Adzuna, Reed, Jooble, Arbeitnow, Remotive, and TheirStack.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Free-text search across job title + description. Examples: 'software engineer', 'cybersecurity analyst', 'data scientist'."
          },
          "location_name": {
            "type": "string",
            "description": "Location filter. City + state, ZIP, or state name. Examples: 'Washington, DC', 'San Francisco, CA', '94102'."
          },
          "pay_grade_low": {
            "type": "string",
            "description": "Minimum federal pay grade. Format: 'GS01'-'GS15', 'SES', or 'EX-V'. Default: any."
          },
          "pay_grade_high": {
            "type": "string",
            "description": "Maximum federal pay grade (same format as pay_grade_low)."
          },
          "organization": {
            "type": "string",
            "description": "Agency code or name fragment. Examples: 'DOD' (Defense), 'VA' (Veterans Affairs), 'HHS' (Health and Human Services)."
          },
          "position_title": {
            "type": "string",
            "description": "Strict position-title filter. Use keyword for fuzzy match."
          },
          "results_per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Results per page (1-500, default 25).",
            "default": 25
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Page number for pagination (default 1).",
            "default": 1
          }
        },
        "description": "Search US federal civil-service job postings by keyword, location, pay grade, agency, or position title."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "nrel.afdc.detail",
      "title": "NREL AFDC Station Detail",
      "description": "Get detailed record for one specific alt-fuel station by its AFDC station ID \u2014 operator info, full address, hours per day-of-week, EV charging speed breakdown (Level 1/2/DC Fast outlet counts), accepted payment methods, access restrictions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "station_id": {
            "type": "integer",
            "description": "AFDC station ID (positive integer). Obtained from afdc_stations_nearest or afdc_stations_search results.",
            "minimum": 0
          }
        },
        "required": [
          "station_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "nrel.afdc.nearest",
      "title": "NREL AFDC Nearest Alt-Fuel Stations",
      "description": "Find the nearest alternative fuel stations to a given US location (latitude/longitude). Includes EV charging (Level 1/2/DC Fast), CNG, LNG, propane, biodiesel, hydrogen. Returns station name, address, network, plug types, hours, last verified date. US-specific; for global EV stations use openchargemap.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "WGS84 latitude (US territory only). Example: 37.7749 for San Francisco."
          },
          "longitude": {
            "type": "number",
            "description": "WGS84 longitude (US territory only). Example: -122.4194 for San Francisco."
          },
          "fuel_type": {
            "type": "string",
            "description": "Comma-separated fuel codes: ELEC (electric), CNG, LNG, LPG (propane), BD (biodiesel), E85, HY (hydrogen). Default ELEC.",
            "default": "ELEC"
          },
          "status": {
            "type": "string",
            "enum": [
              "E",
              "P",
              "T"
            ],
            "description": "Station status: E=available (open), P=planned (future), T=temporarily unavailable. Default E.",
            "default": "E"
          },
          "radius": {
            "type": "number",
            "description": "Search radius in miles (max 500). Default 5.",
            "default": 5
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Max stations to return (1-200). Default 20.",
            "default": 20
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "nrel.afdc.search",
      "title": "NREL AFDC Alt-Fuel Stations Search",
      "description": "Search US alt-fuel stations by ZIP, state, or city. Filterable by fuel type, EV network, connector type, and access level. Use for state-level analytics or city-wide EV infrastructure surveys; use afdc_stations_nearest for proximity search to a coordinate.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "zip": {
            "type": "string",
            "description": "5-digit US ZIP code to search within. Example: '94102'."
          },
          "state": {
            "type": "string",
            "description": "2-letter US state code. Example: 'CA', 'TX', 'NY'."
          },
          "city": {
            "type": "string",
            "description": "City name. Use with state for disambiguation. Example: Oakland."
          },
          "fuel_type": {
            "type": "string",
            "description": "Comma-separated fuel codes: ELEC (electric), CNG, LNG, LPG (propane), BD (biodiesel), E85, HY (hydrogen). Default ELEC.",
            "default": "ELEC"
          },
          "ev_connector_type": {
            "type": "string",
            "description": "EV connector codes (comma-separated): J1772 (Level 2), J1772COMBO (CCS), CHADEMO, TESLA, NEMA1450, NEMA515."
          },
          "access": {
            "type": "string",
            "enum": [
              "public",
              "private"
            ],
            "description": "Filter by access type: 'public' for open-access stations, 'private' for fleet-only."
          },
          "status": {
            "type": "string",
            "enum": [
              "E",
              "P",
              "T"
            ],
            "description": "Station status: E=available (open), P=planned (future), T=temporarily unavailable. Default E.",
            "default": "E"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Results per page (1-200). Default 50.",
            "default": 50
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Pagination offset \u2014 number of results to skip. Default 0.",
            "default": 0
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "nrel.pvwatts.estimate",
      "title": "NREL PVWatts Solar PV Production Estimate",
      "description": "Calculate monthly and annual AC energy production (kWh) for a residential or commercial solar PV system at any global location. Uses NSRDB satellite-derived solar resource data. Returns monthly AC/DC energy, capacity factor, plane-of-array irradiance, and solar radiation. Unique \u2014 no other tool in this catalog estimates solar PV output.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "Site latitude in decimal degrees (global, WGS84). Example: 37.7749 (San Francisco), 51.5074 (London)."
          },
          "longitude": {
            "type": "number",
            "description": "Site longitude in decimal degrees (global, WGS84). Example: -122.4194 (San Francisco), -0.1278 (London)."
          },
          "system_capacity": {
            "type": "number",
            "description": "System DC nameplate capacity in kilowatts (kW). Example: 5 for a typical residential system, 100 for commercial.",
            "minimum": 0
          },
          "module_type": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2,
            "description": "Solar module type: 0=Standard (polycrystalline), 1=Premium (monocrystalline, default), 2=Thin Film.",
            "default": 1
          },
          "losses": {
            "type": "number",
            "minimum": 0,
            "maximum": 99,
            "description": "System losses percentage (0-99). Accounts for wiring, soiling, shading. Default 14 (NREL recommended).",
            "default": 14
          },
          "array_type": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4,
            "description": "Array mount type: 0=Fixed open rack, 1=Fixed roof mount (default), 2=1-axis tracking, 3=1-axis backtracking, 4=2-axis tracking.",
            "default": 1
          },
          "tilt": {
            "type": "number",
            "minimum": 0,
            "maximum": 90,
            "description": "Module tilt angle in degrees from horizontal (0=flat/horizontal, 90=vertical). Default 20.",
            "default": 20
          },
          "azimuth": {
            "type": "number",
            "minimum": 0,
            "maximum": 360,
            "description": "Array azimuth angle: 0=north, 90=east, 180=south (default, optimal in Northern Hemisphere), 270=west.",
            "default": 180
          }
        },
        "required": [
          "latitude",
          "longitude",
          "system_capacity"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "opendota.matches.detail",
      "title": "OpenDota Match Detail",
      "description": "Full detail of one Dota 2 match \u2014 all 10 players with hero, items, K/D/A, gold/XP per minute, ability picks, team composition, game duration, winner. Heavy parse but rich data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "match_id": {
            "type": "integer",
            "description": "Dota 2 match ID (64-bit integer from player_matches)."
          }
        },
        "required": [
          "match_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "opendota.players.matches",
      "title": "OpenDota Player Match History",
      "description": "Recent match history for a Dota 2 player \u2014 array of matches with match_id, hero, kills/deaths/assists, duration, win/loss, party_size, game_mode, lobby_type. Sortable by date.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "integer",
            "description": "Steam account ID (Dota 2 32-bit). Get from /api/search?q=playername. Example: 105248644 (Dendi)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Max matches to return (1-100, default 20).",
            "default": 20
          }
        },
        "required": [
          "account_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "opendota.players.summary",
      "title": "OpenDota Player Summary",
      "description": "Get a Dota 2 player's profile + summary stats by Steam Account ID \u2014 name, avatar, MMR estimate, total wins/losses, rank tier, last match time. Profile may be private (returns minimal info).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "integer",
            "description": "Steam account ID (Dota 2 32-bit). Get from /api/search?q=playername. Example: 105248644 (Dendi)."
          }
        },
        "required": [
          "account_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "opendota.proteams.list",
      "title": "OpenDota Pro Teams",
      "description": "List professional Dota 2 teams with rating, wins/losses, last match time, logo URL, team_id, sponsor. Sorted by rating descending.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "_unused": {
            "type": "string",
            "description": "Reserved for future filtering \u2014 not currently used."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "checkwx.metar.decoded",
      "title": "CheckWX Decoded METAR",
      "description": "Get current METAR for one or more airports as fully decoded JSON \u2014 wind (direction/speed/gust as separate fields), visibility (in SM and meters), sky conditions (cloud coverage + altitude as objects), temperature/dewpoint (\u00b0C and \u00b0F), altimeter (inHg and hPa), flight category (VFR/MVFR/IFR/LIFR). Saves agents from parsing raw METAR text.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "icao_codes": {
            "type": "string",
            "description": "Comma-separated ICAO airport codes (uppercase 4 letters). Max 25 per call. Examples: 'KJFK,EGLL,RJTT', 'KSFO', 'EDDF'."
          }
        },
        "required": [
          "icao_codes"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "checkwx.stations.info",
      "title": "CheckWX Station Information",
      "description": "Airport/weather-station metadata by ICAO \u2014 name, IATA, latitude/longitude/elevation, country, city, time zone, runway info (count, longest length, surface).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "icao_code": {
            "type": "string",
            "description": "Single ICAO airport/station code (4-letter uppercase). Examples: 'KJFK', 'EGLL', 'RJTT'."
          }
        },
        "required": [
          "icao_code"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "checkwx.taf.decoded",
      "title": "CheckWX Decoded TAF",
      "description": "Decoded TAF forecast for airports \u2014 issued time, valid window, per-period forecast objects (wind, visibility, weather conditions, sky). Each forecast change block parsed into structured JSON.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "icao_codes": {
            "type": "string",
            "description": "Comma-separated ICAO airport codes (uppercase 4 letters). Max 25 per call. Examples: 'KJFK,EGLL,RJTT', 'KSFO', 'EDDF'."
          }
        },
        "required": [
          "icao_codes"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "avwx.notams.list",
      "title": "AVWX Parsed NOTAMs",
      "description": "Active NOTAMs (Notice to Airmen) for one or more airports, parsed into structured fields \u2014 NOTAM ID, classification (FDC/D/U), type (runway closure, navaid out, airspace restriction, obstacle), effective period, summary text. Critical for flight planning. UNIQUE to AVWX \u2014 NOAA and CheckWX do NOT return parsed NOTAMs.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "icao_code": {
            "type": "string",
            "description": "Single ICAO airport code (4-letter uppercase). Examples: KJFK, EGLL, RJTT, OMDB."
          },
          "distance": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "Include NOTAMs within this nautical-mile radius (0-100, default 10). Use 0 for airport-specific only."
          }
        },
        "required": [
          "icao_code"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "avwx.pireps.list",
      "title": "AVWX Parsed PIREPs",
      "description": "Pilot Reports (PIREPs) near an airport, parsed \u2014 aircraft type, altitude, time, location, sky condition observed, turbulence, icing, weather. Source: pilots reporting in-flight conditions. Useful for hazard awareness.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "icao_code": {
            "type": "string",
            "description": "Single ICAO airport code (4-letter uppercase). Examples: KJFK, EGLL, KSFO."
          }
        },
        "required": [
          "icao_code"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "avwx.stations.summary",
      "title": "AVWX Station Summary",
      "description": "Composite report for one airport \u2014 latest parsed METAR + TAF + station info (name, lat/lon/elev, type) in one call. Cheaper than three separate calls if you need the full picture.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "icao_code": {
            "type": "string",
            "description": "Single ICAO airport code (4-letter uppercase). Examples: KJFK, EGLL, KSFO."
          }
        },
        "required": [
          "icao_code"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Tool response payload. Shape varies per tool \u2014 consult the tool description and inputSchema."
          },
          "error": {
            "type": "object",
            "description": "Present only when the call failed. Includes error code, message, request_id."
          }
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    }
  ],
  "prompts": [
    {
      "name": "discover-tools",
      "description": "Find the right APIbase tools for a task. Describes available categories, search strategies, and tool selection criteria.",
      "arguments": [
        {
          "name": "task",
          "description": "What you want to accomplish (e.g. \"find flights from NYC to London\")",
          "required": true
        }
      ]
    },
    {
      "name": "api-workflow",
      "description": "Design a multi-step API workflow combining multiple APIbase tools. Returns execution plan with tool sequence, data flow, and error handling.",
      "arguments": [
        {
          "name": "goal",
          "description": "End-to-end goal (e.g. \"plan a trip to Tokyo with flights, weather, and local events\")",
          "required": true
        },
        {
          "name": "budget",
          "description": "Optional USDC budget constraint for the workflow",
          "required": false
        }
      ]
    },
    {
      "name": "x402-payment-guide",
      "description": "Explains x402 USDC micropayment flow for APIbase. Covers wallet setup on Base, payment headers, escrow mechanics, and refund policy.",
      "arguments": [
        {
          "name": "topic",
          "description": "Specific payment topic (e.g. \"setup\", \"escrow\", \"refunds\", \"pricing\")",
          "required": false
        }
      ]
    }
  ],
  "resources": [
    {
      "name": "tool-catalog",
      "description": "Full tool catalog with schemas, pricing, and provider info",
      "uri": "https://apibase.pro/api/v1/tools"
    },
    {
      "name": "health-status",
      "description": "System health check",
      "uri": "https://apibase.pro/health/ready"
    }
  ]
}