{"servers":[{"mount_path":"/compose","name":"Compose","description":"Create and manage toolbelts — curated subsets of tools served as single MCP endpoints.","category":"Platform","source":"Internal registry","endpoint":"/mcp/compose/","tools":[{"name":"list_available_servers","description":"List all registered Gnist Context MCP servers.\n\nReturns server name, mount path, tool count, description, and category\nfor every upstream data server available for toolbelt composition.\n\nReturns:\n    Dict with a \"servers\" list. Each entry has:\n    - name: Display name (e.g. \"GLEIF (LEI)\")\n    - mount_path: Server path (e.g. \"/gleif\")\n    - tool_count: Number of tools in the server\n    - description: What the server provides\n    - category: Data category (e.g. \"Finance\", \"Science\")","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_tools","description":"Search all registered MCP tools by keyword or intent.\n\nResults include a colon-namespaced tool_ref (e.g. \"gleif:search_entities\")\nready for use with create_toolbelt.\n\nArgs:\n    query: Natural language or keyword search.\n    top_n: Max results (default 10, max 20).\n\nReturns:\n    Dict with matching tools, each including tool_ref for toolbelt use.","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"top_n":{"default":10,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"create_toolbelt","description":"Create a named toolbelt — a curated subset of tools served as one MCP endpoint.\n\nThe toolbelt becomes available at /mcp/{name}/ as a standard MCP server\ncontaining only the selected tools, namespaced with colons.\n\nArgs:\n    name: URL-safe slug (3-64 chars, lowercase alphanum + hyphens).\n    tools: Tool refs in colon format (e.g. [\"gleif:search_entities\", \"news:search_news\"]).\n           Use search_tools to discover available refs.\n    description: Optional human-readable description.\n    validate: Check coupling dependencies (default true).\n    auto_complete: Automatically add hard dependencies (default false).\n    ttl_days: Auto-expire after N days. Null = no expiry.\n\nReturns:\n    Created toolbelt with url, tool_count, warnings, and auto_added tools.","input_schema":{"additionalProperties":false,"properties":{"name":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"description":{"default":"","type":"string"},"validate":{"default":true,"type":"boolean"},"auto_complete":{"default":false,"type":"boolean"},"ttl_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null}},"required":["name","tools"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_toolbelts","description":"List all saved toolbelts with name, url, tool count, and timestamps.\n\nReturns:\n    Dict with count and toolbelts list.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_toolbelt","description":"Get the full definition of a named toolbelt.\n\nArgs:\n    name: Toolbelt slug.\n\nReturns:\n    Full toolbelt definition including tools, url, and coupling warnings.","input_schema":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"update_toolbelt","description":"Add or remove tools from an existing toolbelt. The URL stays stable.\n\nArgs:\n    name: Toolbelt slug.\n    add_tools: Tool refs to add (colon format).\n    remove_tools: Tool refs to remove.\n    validate: Re-check coupling after changes (default true).\n\nReturns:\n    Updated toolbelt definition, or error if not found.","input_schema":{"additionalProperties":false,"properties":{"name":{"type":"string"},"add_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null},"remove_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null},"validate":{"default":true,"type":"boolean"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"delete_toolbelt","description":"Soft-delete a toolbelt. The endpoint stops serving immediately.\n\nArgs:\n    name: Toolbelt slug to delete.\n\nReturns:\n    Confirmation or error.","input_schema":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_presets","description":"List curated preset toolbelts — ready-to-use bundles for common use cases.\n\nPresets are pre-configured toolbelts covering domains like Norwegian data,\nfinancial research, academic research, business intelligence, and more.\nEach preset is immediately available as an MCP endpoint at /mcp/{name}/.\n\nReturns:\n    Dict with count and presets list. Each entry has name, description,\n    url, tool_count, and included servers.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"preview_toolbelt","description":"Preview a toolbelt without saving. Estimates token cost and checks coupling.\n\nUse this to evaluate a tool selection before committing to create_toolbelt.\n\nArgs:\n    tools: Tool refs in colon format.\n\nReturns:\n    Tool count, estimated schema tokens, coupling warnings, and suggestions.","input_schema":{"additionalProperties":false,"properties":{"tools":{"items":{"type":"string"},"type":"array"}},"required":["tools"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/company-intelligence","name":"Company Intelligence","description":"Norwegian company due diligence — registry data, leadership, procurement history, court hearings, and job listings from multiple government sources.","category":"Finance","source":"Brreg, Doffin, Domstol, NAV Arbeidsplassen","endpoint":"/mcp/company-intelligence/","tools":[{"name":"company_profile","description":"Comprehensive Norwegian company profile — registry, leadership, procurement, court, jobs, compliance, public records, and legislation.\n\nFetches company details from Brønnøysund Register (brreg), then enriches\nwith procurement (Doffin), court hearings (Domstol), job listings (NAV),\ncompliance screening (sanctions/offshore), public journal (eInnsyn),\nand relevant legislation (Lovdata) in parallel.\n\nReturns partial results if any enrichment source is unavailable.\n\nExamples:\n    company_profile(org_number=\"923609016\")  # Equinor ASA\n    company_profile(org_number=\"985399077\")  # Vipps AS","input_schema":{"additionalProperties":false,"properties":{"org_number":{"description":"Norwegian 9-digit organisation number (e.g. '923609016').","type":"string"}},"required":["org_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"company_360","description":"Alias for company_profile — comprehensive Norwegian company due diligence.\n\nSame as company_profile(). Kept for backward compatibility with existing\ncomposite tool users.\n\nExamples:\n    company_360(org_number=\"923609016\")","input_schema":{"additionalProperties":false,"properties":{"org_number":{"description":"Norwegian 9-digit organisation number (e.g. '923609016').","type":"string"}},"required":["org_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/academic-research","name":"Academic Research","description":"Unified academic paper search across Crossref, OpenAlex, PubMed, and Semantic Scholar — deduplicated by DOI with merged metadata.","category":"Science","source":"Crossref, OpenAlex, PubMed, Semantic Scholar","endpoint":"/mcp/academic-research/","tools":[{"name":"search_papers","description":"Search for academic papers across Crossref, OpenAlex, PubMed, and Semantic Scholar.\n\nResults are deduplicated by DOI and enriched with metadata from all sources\nthat found a match. Sorted by citation count (most cited first).\n\nExamples:\n    search_papers(query=\"transformer attention mechanism\")\n    search_papers(query=\"CRISPR gene editing\", year_from=2020, max_results=20)\n    search_papers(query=\"climate change economic impact\", year_from=2018, year_to=2024)","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords, title, topic, or author name.","type":"string"},"max_results":{"default":10,"description":"Maximum number of results.","type":"integer"},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Earliest publication year."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Latest publication year."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_paper","description":"Resolve a DOI across all four academic sources and return merged metadata.\n\nQueries Crossref, OpenAlex, PubMed, and Semantic Scholar in parallel,\nthen merges the results into a single enriched paper object with the\nbest available data from each source.\n\nExamples:\n    get_paper(doi=\"10.1038/nature12373\")\n    get_paper(doi=\"10.1126/science.aax2342\")","input_schema":{"additionalProperties":false,"properties":{"doi":{"description":"Digital Object Identifier (e.g. '10.1038/nature12373').","type":"string"}},"required":["doi"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_academic_sources","description":"List all registered academic data sources and their status.\n\nShows which sources are available and whether they are currently enabled.\n\nExamples:\n    list_academic_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/country-intelligence","name":"Country Intelligence","description":"Multi-source country profiles — economics, statistics, and knowledge base from World Bank, Eurostat, and Wikidata.","category":"Government","source":"World Bank, Eurostat, Wikidata","endpoint":"/mcp/country-intelligence/","tools":[{"name":"country_overview","description":"Multi-source country profile — economics, trade, news, crises, and environment.\n\nQueries World Bank, Eurostat, Wikidata, UN Comtrade, GDELT, Crisis Intelligence,\nand Environmental Monitoring for a unified country overview from 7 data sources.\n\nReturns partial results if any source is unavailable.\n\nArgs:\n    country_code: ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').\n\nReturns:\n    Merged data with keys: worldbank, eurostat, wikidata, trade, news, crises, environment.\n    Each key contains the upstream response or null if that source failed.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').","type":"string"}},"required":["country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/compliance-screening","name":"Compliance Screening","description":"Unified entity due diligence across OFAC/EU/UN/UK sanctions, ICIJ offshore leaks, and GLEIF corporate registry — parallel screening with risk assessment.","category":"Legal","source":"OFAC, EU, UN, UK OFSI, ICIJ Offshore Leaks, GLEIF","endpoint":"/mcp/compliance-screening/","tools":[{"name":"screen_entity","description":"Screen an entity for sanctions, offshore leaks, and corporate registry hits.\n\nQueries OFAC/EU/UN/UK sanctions lists, ICIJ Offshore Leaks (Panama/Paradise/Pandora\nPapers), and GLEIF corporate registry in parallel. Returns a unified risk assessment.\n\nThe risk_level field summarizes the findings:\n- clear: no matches found in any database\n- low: minor signals only\n- medium: possible matches requiring review\n- high: probable matches in sanctions or offshore leaks\n- critical: high-confidence sanctions match\n\nExamples:\n    screen_entity(name=\"Gazprom\")\n    screen_entity(name=\"Kim Jong Un\", entity_type=\"individual\")\n    screen_entity(name=\"Evrofinance Mosnarbank\", country=\"Russia\")","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Entity name to screen — person, company, or organization.","type":"string"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter: 'individual', 'entity', or 'vessel'."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by country name or code."},"threshold":{"default":80.0,"description":"Sanctions fuzzy-match threshold (50-100). Lower = more results.","type":"number"},"limit":{"default":10,"description":"Max results per source.","type":"integer"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_compliance_sources","description":"List all compliance data sources, their coverage, and data types.\n\nShows which sanctions lists, leak databases, and corporate registries\nare searched during screening.\n\nExamples:\n    list_compliance_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nordic-registry","name":"Nordic Registry","description":"Pan-Nordic company lookup across Norway, Sweden, Finland, and Denmark — search by name or look up by national ID with automatic country detection.","category":"Business","source":"Brønnøysundregistrene, Bolagsverket, PRH, CVR","endpoint":"/mcp/nordic-registry/","tools":[{"name":"search_nordic_companies","description":"Search for companies across all Nordic registries in parallel.\n\nQueries Norway (Brønnøysundregistrene), Sweden (Bolagsverket), Finland (PRH),\nand Denmark (CVR) simultaneously. Returns unified company records with name,\nnational ID, status, legal form, industry, address, and source registry.\n\nExamples:\n    search_nordic_companies(query=\"Equinor\")\n    search_nordic_companies(query=\"Volvo\", country=\"SE\")\n    search_nordic_companies(query=\"Nokia\", country=\"FI\", limit=5)","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Company name to search.","type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter: 'NO' (Norway), 'SE' (Sweden), 'FI' (Finland), 'DK' (Denmark). Omit for all."},"limit":{"default":10,"description":"Max results per registry.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"lookup_nordic_company","description":"Look up a specific company by national ID across Nordic registries.\n\nAutomatically detects the country from the ID format and queries the correct\nregistry. Returns a unified company record.\n\nID formats:\n- Norway: 9 digits (e.g. 923609016)\n- Sweden: 10 digits with optional dash (e.g. 556000-4615)\n- Finland: 7+1 digits with dash (e.g. 0112038-9)\n- Denmark: 8 digits (e.g. 10150817)\n\nExamples:\n    lookup_nordic_company(national_id=\"923609016\")  # Equinor (Norway)\n    lookup_nordic_company(national_id=\"556000-4615\")  # Volvo (Sweden)\n    lookup_nordic_company(national_id=\"0112038-9\")  # Nokia (Finland)","input_schema":{"additionalProperties":false,"properties":{"national_id":{"description":"National business ID. Auto-detected: 9 digits (NO), XXXXXX-XXXX (SE), XXXXXXX-X (FI), 8 digits (DK).","type":"string"}},"required":["national_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_nordic_registry_sources","description":"List all Nordic company registry sources and their coverage.\n\nShows which registries are available and their country coverage.\n\nExamples:\n    list_nordic_registry_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/crisis-intelligence","name":"Crisis Intelligence","description":"Unified crisis monitoring combining GDACS disaster alerts (earthquakes, floods, cyclones, volcanoes, droughts, wildfires) with GDELT global news coverage.","category":"Government","source":"GDACS, GDELT","endpoint":"/mcp/crisis-intelligence/","tools":[{"name":"search_crises","description":"Search for crises combining GDACS disaster alerts, USGS earthquakes, NOAA weather alerts, and GDELT news.\n\nReturns structured disaster events, seismic data, active weather alerts, and\nrelated news articles from global media. All eight sources are queried in parallel\nfor fast response.\n\nSources:\n- GDACS: UN/EU disaster alerts (earthquakes, floods, cyclones, volcanoes, droughts, wildfires)\n- USGS: Real-time seismic events with magnitude, depth, and location\n- NOAA NWS: Active US weather alerts (severe storms, floods, fire weather)\n- NVE: Norwegian flood warnings with regional activity levels\n- SMHI: Swedish weather warnings (fire risk, storms, floods, extreme weather)\n- DMI: Danish weather warnings (storms, rain, wind, snow, fog, ice)\n- FMI: Finnish weather warnings via MeteoAlarm (fire risk, storms, wind, rain, flooding)\n- GDELT: Global news media coverage and sentiment\n\nExamples:\n    search_crises(query=\"earthquake\")\n    search_crises(query=\"flood\", country=\"Bangladesh\", alert_levels=\"Orange,Red\")\n    search_crises(query=\"wildfire California\", event_types=\"WF\", news_timespan=\"24h\")","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term — crisis type, country, or topic (e.g. 'earthquake Turkey', 'flood Bangladesh').","type":"string"},"from_date":{"default":"","description":"Start date (YYYY-MM-DD). Defaults to 90 days ago.","type":"string"},"to_date":{"default":"","description":"End date (YYYY-MM-DD). Defaults to today.","type":"string"},"event_types":{"default":"","description":"Comma-separated: EQ (earthquake), TC (tropical cyclone), FL (flood), VO (volcano), DR (drought), WF (wildfire).","type":"string"},"alert_levels":{"default":"","description":"Comma-separated: Green, Orange, Red.","type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by country name."},"news_timespan":{"default":"7d","description":"GDELT news lookback: 24h, 7d, 1m.","type":"string"},"max_events":{"default":25,"description":"Max disaster events.","type":"integer"},"max_articles":{"default":10,"description":"Max news articles.","type":"integer"},"min_magnitude":{"default":4.5,"description":"Minimum earthquake magnitude for USGS data.","type":"number"},"max_earthquakes":{"default":10,"description":"Max USGS earthquake results.","type":"integer"},"max_weather_alerts":{"default":10,"description":"Max NOAA weather alerts.","type":"integer"},"max_flood_warnings":{"default":10,"description":"Max NVE flood warnings (Norway).","type":"integer"},"max_smhi_warnings":{"default":10,"description":"Max SMHI weather warnings (Sweden).","type":"integer"},"max_dmi_warnings":{"default":10,"description":"Max DMI weather warnings (Denmark).","type":"integer"},"max_fmi_warnings":{"default":10,"description":"Max FMI weather warnings (Finland).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_active_crises","description":"Get currently active disaster events worldwide from GDACS.\n\nReturns ongoing crises from the last 90 days. Defaults to Orange and Red\nalert levels — the most significant events requiring attention.\n\nEvent types:\n- EQ: Earthquake\n- TC: Tropical Cyclone\n- FL: Flood\n- VO: Volcano\n- DR: Drought\n- WF: Wildfire\n\nExamples:\n    get_active_crises()\n    get_active_crises(alert_levels=\"Red\")\n    get_active_crises(event_types=\"EQ,VO\", country=\"Japan\")","input_schema":{"additionalProperties":false,"properties":{"event_types":{"default":"","description":"Comma-separated: EQ, TC, FL, VO, DR, WF. Empty = all types.","type":"string"},"alert_levels":{"default":"","description":"Comma-separated: Green, Orange, Red. Default: Orange,Red.","type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by country name."},"limit":{"default":50,"description":"Max events to return.","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_crisis_sources","description":"List all crisis intelligence data sources and their coverage.\n\nShows which disaster monitoring systems and news sources are queried\nduring crisis searches.\n\nExamples:\n    list_crisis_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/economic-indicators","name":"Economic Indicators","description":"Economic indicators — unified access to World Bank development data, OECD statistics, Eurostat European data, and BLS labor statistics.","category":"Economics","source":"World Bank, OECD, Eurostat, BLS","endpoint":"/mcp/economic-indicators/","tools":[{"name":"search_economic_indicators","description":"Search for economic indicators across World Bank, OECD, Eurostat, and BLS.\n\nReturns matching indicators from all sources with their source-specific IDs.\nUse the returned source_id with get_economic_data to fetch time series data.\n\nExamples:\n    search_economic_indicators(query=\"GDP growth\")\n    search_economic_indicators(query=\"unemployment rate\", limit=5)\n    search_economic_indicators(query=\"consumer price index\")","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — topic, indicator name, or keyword (e.g. 'GDP growth', 'unemployment rate', 'inflation').","type":"string"},"limit":{"default":10,"description":"Maximum results per source.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_economic_data","description":"Fetch time series data for an economic indicator from one or all sources.\n\nFirst use search_economic_indicators to find indicator IDs, then use this\ntool to fetch the actual data. Specify a source for targeted queries or\nomit it to query all sources in parallel.\n\nExamples:\n    get_economic_data(indicator=\"NY.GDP.MKTP.CD\", country=\"NOR\", source=\"worldbank\")\n    get_economic_data(indicator=\"nama_10_gdp\", country=\"DE\", source=\"eurostat\", year_from=2015)\n    get_economic_data(indicator=\"LNS14000000\", country=\"US\", source=\"bls\")","input_schema":{"additionalProperties":false,"properties":{"indicator":{"description":"Indicator ID from a source (e.g. 'NY.GDP.MKTP.CD' for World Bank GDP).","type":"string"},"country":{"description":"ISO country code (e.g. 'USA', 'NOR', 'DEU', 'GBR').","type":"string"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Source name: worldbank, oecd, eurostat, or bls. Omit to try all."},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year (e.g. 2010)."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year (e.g. 2024)."}},"required":["indicator","country"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_economic_sources","description":"List all registered economic data sources and their coverage.\n\nShows available sources (World Bank, OECD, Eurostat, BLS) with geographic\ncoverage and status information.\n\nExamples:\n    list_economic_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/health-research","name":"Health Research","description":"Unified health research across ClinicalTrials.gov, OpenFDA drug safety, and WHO Global Health Observatory — trials, adverse events, and global health indicators.","category":"Science","source":"ClinicalTrials.gov, OpenFDA, WHO GHO","endpoint":"/mcp/health-research/","tools":[{"name":"search_health_data","description":"Search across clinical trials, drug safety, biomedical literature, drug interactions, and global health indicators.\n\nQueries five health data sources in parallel:\n- ClinicalTrials.gov — active and completed clinical trials worldwide\n- OpenFDA — drug adverse events and drug label information\n- WHO GHO — global health indicators (mortality, disease burden, risk factors)\n- PubMed — biomedical research articles and citations (36M+ records)\n- Interaksjoner.no — Norwegian drug interaction severity checks\n\nReturns clinical trials, adverse events, drug labels, health indicators,\nPubMed literature, and drug interaction data for the given topic.\n\nExamples:\n    search_health_data(query=\"aspirin\")\n    search_health_data(query=\"diabetes\", limit=5)\n    search_health_data(query=\"COVID-19 vaccine\")","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Health topic, drug name, condition, or disease to search.","type":"string"},"limit":{"default":10,"description":"Max results per source.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_health_sources","description":"List all health research data sources, their coverage, and data types.\n\nShows which clinical trial registries, drug safety databases, and global\nhealth observatories are searched during a health research query.\n\nExamples:\n    list_health_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/financial-markets","name":"Financial Markets","description":"Unified financial market intelligence across ECB/Norges Bank exchange rates, FRED commodity prices, SEC EDGAR ETF holdings, and SEC Form 4 insider trading.","category":"Finance","source":"ECB, Norges Bank, FRED, SEC EDGAR","endpoint":"/mcp/financial-markets/","tools":[{"name":"search_financial_markets","description":"Search across exchange rates, commodities, ETF holdings, and insider trading.\n\nQueries five financial data sources in parallel:\n- ECB exchange rates (30+ currencies, uses query as base currency if 3-letter code)\n- ECB & Norges Bank policy rates (latest monetary policy decisions)\n- Commodity prices via FRED (energy, metals, agriculture — matches by name/category)\n- ETF holdings via SEC EDGAR (interprets query as fund ticker)\n- Insider trading via SEC Form 4 (interprets query as company ticker)\n\nExamples:\n    search_financial_markets(query=\"USD\")        # USD exchange rates + policy rates\n    search_financial_markets(query=\"gold\")        # gold + precious metals prices\n    search_financial_markets(query=\"AAPL\")        # Apple insider trading + ETF exposure\n    search_financial_markets(query=\"SPY\")         # SPY ETF holdings + insider activity","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Currency code (e.g. 'USD'), commodity name (e.g. 'gold'), stock ticker (e.g. 'AAPL'), or general term.","type":"string"},"limit":{"default":10,"description":"Max results per source.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_financial_sources","description":"List all financial market data sources, their coverage, and data types.\n\nShows which exchange rate providers, commodity databases, and SEC filing\nsources are queried during a financial markets search.\n\nExamples:\n    list_financial_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/environmental-monitoring","name":"Environmental Monitoring","description":"Unified environmental monitoring across Open-Meteo weather, NOAA alerts, USGS earthquakes, and Climate TRACE emissions — location-based parallel queries.","category":"Science","source":"Open-Meteo, NOAA NWS, USGS, Climate TRACE","endpoint":"/mcp/environmental-monitoring/","tools":[{"name":"search_environmental_data","description":"Search environmental data for a location across weather, alerts, earthquakes, and emissions.\n\nGeocodes the location, then queries four sources in parallel:\n- Open-Meteo — current weather conditions and air quality\n- NOAA NWS — active weather alerts (US locations)\n- USGS — recent earthquakes within 500km\n- Climate TRACE — country-level greenhouse gas emissions\n\nExamples:\n    search_environmental_data(location=\"Oslo\")\n    search_environmental_data(location=\"San Francisco\", limit=5)\n    search_environmental_data(location=\"Tokyo\")","input_schema":{"additionalProperties":false,"properties":{"location":{"description":"Location name — city, region, or country (e.g. 'Oslo', 'Tokyo', 'California').","type":"string"},"limit":{"default":10,"description":"Max results per source.","type":"integer"}},"required":["location"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_environmental_sources","description":"List all environmental monitoring data sources, their coverage, and data types.\n\nShows which weather services, alert systems, seismic networks, and emissions\ndatabases are queried during an environmental monitoring search.\n\nExamples:\n    list_environmental_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/legislation","name":"Legislation","description":"Unified legislative search across US Congress, EU EUR-Lex, Finnish Finlex, Norwegian Stortinget, and Swedish Riksdagen — bills, regulations, directives, and parliamentary cases.","category":"Government","source":"Congress.gov, EUR-Lex, Finlex, Stortinget, Riksdagen","endpoint":"/mcp/legislation/","tools":[{"name":"search_legislation","description":"Search legislation across US Congress, EU EUR-Lex, Finnish Finlex, Norwegian Stortinget, and Swedish Riksdagen.\n\nQueries all legislative databases in parallel and returns unified results\nsorted by date (most recent first). Each result includes the jurisdiction,\nidentifier, title, status, and a link to the original source.\n\nExamples:\n    search_legislation(query=\"climate change\")\n    search_legislation(query=\"artificial intelligence\", jurisdiction=\"EU\")\n    search_legislation(query=\"tax reform\", year=2025, jurisdiction=\"US\")","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords, bill name, or topic.","type":"string"},"max_results":{"default":10,"description":"Maximum number of results per source.","type":"integer"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by year."},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by jurisdiction: US, EU, FI, NO, or SE. Omit to search all."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_recent_legislation","description":"Get recent legislative activity across all jurisdictions.\n\nReturns the most recent bills, regulations, and parliamentary cases\nfrom US Congress, EU EUR-Lex, Finnish Finlex, Norwegian Stortinget, and Swedish Riksdagen.\n\nExamples:\n    get_recent_legislation()\n    get_recent_legislation(jurisdiction=\"NO\", max_results=5)","input_schema":{"additionalProperties":false,"properties":{"max_results":{"default":10,"description":"Maximum results per source.","type":"integer"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by jurisdiction: US, EU, FI, NO, or SE. Omit for all."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_legislation_sources","description":"List all registered legislative data sources and their status.\n\nExamples:\n    list_legislation_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/public-procurement","name":"Public Procurement","description":"Public procurement — unified search across Doffin (Norwegian) and TED (EU/EEA) tender databases.","category":"Government","source":"Doffin, TED","endpoint":"/mcp/public-procurement/","tools":[{"name":"search_tenders","description":"Search for public procurement tenders across Doffin (Norway) and TED (EU/EEA).\n\nResults are deduplicated when the same tender appears on both platforms.\nSorted by publication date (most recent first).\n\nExamples:\n    search_tenders(query=\"software development\")\n    search_tenders(query=\"construction\", country=\"NOR\", cpv_code=\"45000000\")\n    search_tenders(query=\"IT consulting\", published_after=\"2026-01-01\", max_results=10)","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords, buyer name, or topic.","type":"string"},"max_results":{"default":20,"description":"Maximum number of results.","type":"integer"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-3 country code (e.g. NOR, DEU, FRA). Omit for all countries."},"cpv_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"CPV code to filter by sector (8 digits, e.g. 72000000 for IT)."},"published_after":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only tenders published after this date (YYYY-MM-DD)."},"published_before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only tenders published before this date (YYYY-MM-DD)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_tender","description":"Look up a specific procurement notice by ID across all sources.\n\nAccepts either a Doffin notice ID (e.g. '2026-105515') or a TED\npublication number (e.g. '555-2026'). If the tender exists on both\nplatforms, the results are merged into a single enriched record.\n\nExamples:\n    get_tender(notice_id=\"2026-105515\")\n    get_tender(notice_id=\"555-2026\")","input_schema":{"additionalProperties":false,"properties":{"notice_id":{"description":"Notice ID — Doffin format (YYYY-NNNNNN) or TED format (NNNN-YYYY).","type":"string"}},"required":["notice_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_procurement_sources","description":"List all registered procurement data sources and their status.\n\nShows which sources are available and whether they are currently enabled.\n\nExamples:\n    list_procurement_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/research-funding","name":"Research Funding","description":"Unified research grant search across NIH Reporter, NSF Awards, and EU CORDIS — US and European government funding for scientific research.","category":"Science","source":"NIH Reporter, NSF Awards, CORDIS","endpoint":"/mcp/research-funding/","tools":[{"name":"search_grants","description":"Search for research grants across NIH Reporter, NSF Awards, and EU CORDIS.\n\nQueries all three funding agencies in parallel and returns combined results\nsorted by award amount (largest grants first). Each result includes the\nfunding source, award amount, principal investigators, and institution.\n\nExamples:\n    search_grants(query=\"machine learning\")\n    search_grants(query=\"cancer immunotherapy\", source=\"nih\", max_results=20)\n    search_grants(query=\"renewable energy\", source=\"cordis\")","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords, topic, PI name, or institution.","type":"string"},"max_results":{"default":10,"description":"Maximum number of results.","type":"integer"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by source: nih, nsf, cordis. Omit to search all."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_grant","description":"Look up a specific research grant by its ID.\n\nIf the source is known, specify it to get faster results. Otherwise,\nall three sources are queried in parallel.\n\nExamples:\n    get_grant(grant_id=\"5R01CA123456-05\", source=\"nih\")\n    get_grant(grant_id=\"2548201\", source=\"nsf\")\n    get_grant(grant_id=\"101057437\", source=\"cordis\")","input_schema":{"additionalProperties":false,"properties":{"grant_id":{"description":"Grant ID (e.g. NIH project number, NSF award ID, or CORDIS reference).","type":"string"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Source: nih, nsf, cordis. Specify to avoid searching all sources."}},"required":["grant_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_funding_sources","description":"List all registered research funding data sources and their status.\n\nShows which funding agencies are available and whether they are enabled.\n\nExamples:\n    list_funding_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/resolver","name":"Resolver","description":"Cross-server entity resolution — resolve names to canonical identifiers across all data servers.","category":"Platform","source":"Internal registry","endpoint":"/mcp/resolver/","tools":[{"name":"resolve_entity","description":"Resolve an entity name to canonical identifiers across all relevant Gnist Context servers.\n\nGiven a name and type, queries multiple upstream servers in parallel and returns\na unified identity card with native identifiers per source. Results are cached\nfor 24 hours.\n\nArgs:\n    name: Entity name to resolve.\n          Examples: \"Equinor\", \"Albert Einstein\", \"Norway\", \"machine learning\"\n    entity_type: Type of entity. One of: company, person, country, research_topic.\n    hints: Optional dict of hints to narrow resolution.\n           For company: {\"country\": \"NO\"} to include Norwegian registry (Brreg).\n           For country: {\"code\": \"NO\"} to query economic databases by code.\n\nReturns:\n    Identity card with:\n    - canonical_name: Best-match canonical name\n    - entity_type: The resolved type\n    - identifiers: Dict keyed by source (brreg, gleif, wikidata, etc.),\n      each containing the source's native identifiers\n    - sources_ok / sources_failed: Resolution success counts\n    - cached: Whether result came from cache","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Entity name to resolve.","type":"string"},"entity_type":{"type":"string"},"hints":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null}},"required":["name","entity_type"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_entity_types","description":"List all entity types available for resolution.\n\nReturns the type name, description, and which upstream resolvers are\nconfigured for each type.\n\nReturns:\n    Dict with count and entity_types list.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"resolver_cache_stats","description":"Return statistics about the entity resolution cache.\n\nReturns:\n    Dict with entries, valid, expired, max_size, and ttl_seconds.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/openaq","name":"OpenAQ (Air Quality)","description":"Real-time and forecast air quality data including AQI, PM2.5, and pollutant levels.","category":"Environment","source":"OpenAQ","endpoint":"/mcp/openaq/","tools":[{"name":"get_air_quality","description":"Get current air quality at the nearest monitoring station.\n\nReturns readings for PM2.5, PM10, O3, NO2, and other available pollutants,\nalong with a derived US EPA AQI score and category.\n\nArgs:\n    lat: Latitude of the location (-90 to 90).\n    lon: Longitude of the location (-180 to 180).\n\nReturns:\n    Station details, per-pollutant measurements, AQI, and dominant pollutant.\n    AQI is derived from PM2.5 using the US EPA formula. Returns null if the\n    nearest station does not report PM2.5.","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the location (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the location (-180 to 180).","type":"number"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_aqi_summary","description":"Get city-level AQI summary with dominant pollutant.\n\nFinds the most recently updated monitoring station matching the city name\nand returns its current readings. Useful when you know the city but not\nthe exact coordinates.\n\nArgs:\n    city: City name (e.g. \"Oslo\", \"London\", \"New York\").\n\nReturns:\n    Station name, AQI score, category, and per-pollutant measurements.","input_schema":{"additionalProperties":false,"properties":{"city":{"description":"City name (e.g. \"Oslo\", \"London\", \"New York\").","type":"string"}},"required":["city"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_air_quality_history","description":"Get PM2.5 readings from the nearest station over the last N hours.\n\nUseful for trend analysis — is air quality improving or worsening?\n\nArgs:\n    lat: Latitude of the location (-90 to 90).\n    lon: Longitude of the location (-180 to 180).\n    hours: Number of hours of history to retrieve (1–72, default 24).\n\nReturns:\n    Station name, parameter, unit, and a time-series of PM2.5 readings.\n    Returns an empty entries list if the nearest station has no PM2.5 sensor.","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the location (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the location (-180 to 180).","type":"number"},"hours":{"default":24,"description":"Number of hours of history to retrieve (1–72, default 24).","type":"integer"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/opendata","name":"Open Data (Government Portals)","description":"Search 460K+ government datasets across US (data.gov), UK (data.gov.uk), and Canada (open.canada.ca) open data portals — find datasets by topic, organization, or keyword.","category":"Government","source":"CKAN Open Data Portals","endpoint":"/mcp/opendata/","tools":[{"name":"search_datasets","description":"Search government open data datasets across US (data.gov), UK (data.gov.uk), or Canada (open.canada.ca).\n\nCovers 460K+ datasets published by government agencies — CSV, JSON, GeoJSON, and API\nendpoints for climate, transportation, health, economics, geospatial, and more. All free,\nno API key required. Each result includes download links, formats, and organization info.\n\nArgs:\n    query: Keyword or topic to search for.\n    portal: Which country portal to search.\n    limit: Number of results (1-50, default 20).\n    offset: Pagination offset.\n\nReturns:\n    List of matching datasets with title, description, organization, resources (download links),\n    tags, and license. Use get_dataset for full details on a specific result.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query for datasets (e.g. \"climate change\", \"transportation safety\", \"public health spending\").","type":"string"},"portal":{"default":"us","description":"Portal to search: 'us' (data.gov, 290K+ datasets), 'uk' (data.gov.uk, 55K+), 'ca' (open.canada.ca, 115K+). Default 'us'.","type":"string"},"limit":{"default":20,"description":"Number of results (1-50, default 20).","type":"integer"},"offset":{"default":0,"description":"Result offset for pagination (default 0).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_dataset","description":"Get full details for a single government dataset by its name or ID.\n\nReturns complete metadata including all download resources (CSV, JSON, API endpoints),\ndescription, organization, tags, license, and last-modified date.\n\nArgs:\n    dataset_id: Dataset name or UUID from search results.\n    portal: Which country portal.\n\nReturns:\n    Full dataset record with resources, or found=false if not found.","input_schema":{"additionalProperties":false,"properties":{"dataset_id":{"description":"Dataset name or ID (e.g. 'annual-enterprise-survey-2021'). Found in search_datasets results.","type":"string"},"portal":{"default":"us","description":"Portal: 'us', 'uk', or 'ca'. Default 'us'.","type":"string"}},"required":["dataset_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_organizations","description":"List government organizations that publish open data on a portal.\n\nBrowse the publishing organizations (agencies, departments, offices) on a specific\nportal. Each entry shows the organization name, description, and number of datasets published.\n\nArgs:\n    portal: Which country portal.\n    limit: Number of results (1-50, default 20).\n\nReturns:\n    List of organizations with name, description, and dataset count.","input_schema":{"additionalProperties":false,"properties":{"portal":{"default":"us","description":"Portal: 'us', 'uk', or 'ca'. Default 'us'.","type":"string"},"limit":{"default":20,"description":"Number of results (1-50, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_organization","description":"Get details for a specific government data-publishing organization.\n\nReturns organization metadata including description, logo, and total dataset count.\n\nArgs:\n    org_id: Organization name or UUID.\n    portal: Which country portal.\n\nReturns:\n    Organization details with dataset count, or found=false if not found.","input_schema":{"additionalProperties":false,"properties":{"org_id":{"description":"Organization name or ID (e.g. 'nasa-gov', 'department-of-energy'). Found in list_organizations results.","type":"string"},"portal":{"default":"us","description":"Portal: 'us', 'uk', or 'ca'. Default 'us'.","type":"string"}},"required":["org_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/arxiv","name":"arXiv","description":"Search and retrieve academic preprints across physics, math, CS, and more.","category":"Science","source":"arXiv.org","endpoint":"/mcp/arxiv/","tools":[{"name":"search_arxiv_papers","description":"Search scientific papers on arXiv by keyword, category, and date range.\n\nArgs:\n    query: Search terms (e.g. \"attention mechanism transformer\", \"CRISPR gene editing\").\n           Searches across title, abstract, and author fields.\n    category: arXiv subject category code (e.g. \"cs.AI\", \"q-fin.TR\"). Optional.\n    date_from: Only return papers submitted from this date onward (YYYY-MM-DD). Optional.\n    date_to: Only return papers submitted up to this date (YYYY-MM-DD). Optional.\n    max_results: Number of results to return (1–25, default 10).\n\nReturns:\n    Dictionary with 'count' and 'papers' list. Each paper has arxiv_id, title,\n    authors, abstract, categories, primary_category, published, updated, pdf_url, doi.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms (e.g. \"attention mechanism transformer\", \"CRISPR gene editing\"). Searches across title, abstract, and author fields.","type":"string"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"arXiv subject category code (e.g. \"cs.AI\", \"q-fin.TR\"). Optional."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only return papers submitted from this date onward (YYYY-MM-DD). Optional."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only return papers submitted up to this date (YYYY-MM-DD). Optional."},"max_results":{"default":10,"description":"Number of results to return (1–25, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_arxiv_paper","description":"Get full details for a specific arXiv paper by ID.\n\nArgs:\n    arxiv_id: arXiv ID (e.g. \"2106.09685\", \"2106.09685v1\", or\n              \"http://arxiv.org/abs/2106.09685\").\n\nReturns:\n    Full paper record: arxiv_id, title, authors, abstract, categories,\n    primary_category, published, updated, pdf_url, doi.","input_schema":{"additionalProperties":false,"properties":{"arxiv_id":{"description":"arXiv ID (e.g. \"2106.09685\", \"2106.09685v1\", or \"http://arxiv.org/abs/2106.09685\").","type":"string"}},"required":["arxiv_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_arxiv_author_papers","description":"Search papers by a specific arXiv author, sorted by submission date (newest first).\n\nArgs:\n    author_name: Author's name as it appears on arXiv (e.g. \"Yann LeCun\", \"Hinton\").\n                 Partial last names work; full names improve precision.\n    max_results: Number of results to return (1–25, default 10).\n\nReturns:\n    Dictionary with 'count' and 'papers' list.","input_schema":{"additionalProperties":false,"properties":{"author_name":{"description":"Author's name as it appears on arXiv (e.g. \"Yann LeCun\", \"Hinton\"). Partial last names work; full names improve precision.","type":"string"},"max_results":{"default":10,"description":"Number of results to return (1–25, default 10).","type":"integer"}},"required":["author_name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_arxiv_recent","description":"Get the most recently submitted papers in an arXiv subject category.\n\nArgs:\n    category: arXiv category code (e.g. \"cs.LG\", \"q-fin.TR\").\n              Use list_arxiv_categories() to see all supported codes.\n    max_results: Number of results to return (1–25, default 10).\n\nReturns:\n    Dictionary with 'count' and 'papers' list.","input_schema":{"additionalProperties":false,"properties":{"category":{"description":"arXiv category code (e.g. \"cs.LG\", \"q-fin.TR\"). Use list_arxiv_categories() to see all supported codes.","type":"string"},"max_results":{"default":10,"description":"Number of results to return (1–25, default 10).","type":"integer"}},"required":["category"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_arxiv_categories","description":"Return all supported arXiv subject categories with descriptions.\n\nReturns:\n    Dict mapping category code (e.g. \"cs.AI\") to description.\n    Use these codes in search_arxiv_papers(category=...) and get_arxiv_recent(category=...).","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/bis","name":"BIS (Bank for International Settlements)","description":"BIS financial statistics — credit/debt, derivatives, banking, property prices, exchange rates, and central bank policy rates.","category":"Finance","source":"BIS SDMX REST API","endpoint":"/mcp/bis/","tools":[{"name":"search_datasets","description":"Search the BIS dataset catalog by keyword.\n\nReturns matching datasets with their dataflow IDs needed for\nget_data, get_dataset_structure, and compare_countries calls.\nBIS covers credit/debt, derivatives, banking, property prices,\nexchange rates, and other financial statistics from central banks worldwide.\n\nArgs:\n    query: Search term (e.g. \"credit\", \"exchange rates\", \"property prices\").\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of matching datasets with id, name, agency, and description.\n    Use the 'id' field as the dataflow parameter in other tools.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for BIS datasets (e.g. \"credit\", \"exchange rates\", \"property prices\", \"banking\", \"derivatives\").","type":"string"},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_datasets","description":"List available BIS datasets, optionally filtered by topic.\n\nBrowse the full BIS data catalog. Use this to discover what\ndatasets exist before querying specific data.\n\nArgs:\n    topic: Optional topic filter keyword. Omit to list all datasets.\n    limit: Maximum datasets to return (1-100, default 50).\n\nReturns:\n    List of datasets with id, name, and description.","input_schema":{"additionalProperties":false,"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional topic filter (e.g. \"banking\", \"credit\", \"exchange\", \"derivatives\"). Omit to list all."},"limit":{"default":50,"description":"Maximum datasets to return (1-100, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_dataset_structure","description":"Get the dimension structure of a BIS dataset.\n\nShows what dimensions (filters) are available for a dataset and their\nvalid values. Use this before get_data to understand what country codes,\nfrequencies, and other parameters are accepted.\n\nArgs:\n    dataflow: BIS dataflow identifier from search_datasets.\n\nReturns:\n    List of dimensions with their valid codes/values. Each dimension\n    shows its position in the SDMX key and sample values.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"BIS dataflow identifier from search_datasets (e.g. \"WS_CBPOL\", \"WS_SPP\", \"WS_CREDIT_GAP\").","type":"string"}},"required":["dataflow"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Fetch data from a BIS dataset.\n\nQuery any BIS dataset by country and time period. Covers central bank\npolicy rates, credit statistics, property prices, exchange rates,\nderivatives, and banking statistics worldwide.\n\nArgs:\n    dataflow: BIS dataflow identifier. Use search_datasets to find IDs.\n    countries: ISO alpha-2 country codes. Omit for all countries.\n    start_period: Start period filter (e.g. \"2015\").\n    end_period: End period filter (e.g. \"2023\").\n    dimension_filter: Advanced SDMX dimension key. Overrides countries.\n    limit: Maximum observations to return (1-1000, default 200).\n\nReturns:\n    Observations with all dimension labels and values.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"BIS dataflow identifier (e.g. \"WS_CBPOL\", \"WS_SPP\"). Use search_datasets to find IDs.","type":"string"},"countries":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"ISO alpha-2 country codes (e.g. [\"US\", \"DE\", \"NO\"]). Omit for all countries."},"start_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start period (e.g. \"2015\", \"2020-Q1\", \"2020-01\")."},"end_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End period (e.g. \"2023\", \"2023-Q4\", \"2023-12\")."},"dimension_filter":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Advanced: SDMX dimension key filter (dot-separated, e.g. \"M.US+DE\"). Overrides countries param. Use get_dataset_structure to find valid dimension values."},"limit":{"default":200,"description":"Maximum observations to return (1-1000, default 200).","type":"integer"}},"required":["dataflow"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_countries","description":"Compare data across countries for a given BIS dataset.\n\nFetches the same indicator for multiple countries side by side.\nUseful for cross-country analysis of policy rates, credit growth,\nproperty prices, and other BIS financial statistics.\n\nArgs:\n    dataflow: BIS dataflow identifier.\n    country_codes: ISO alpha-2 country codes to compare. Maximum 20.\n    start_period: Start period. Omit for most recent data.\n    end_period: End period. Omit for most recent data.\n\nReturns:\n    Data grouped by country for easy comparison.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"BIS dataflow identifier (e.g. \"WS_CBPOL\", \"WS_SPP\").","type":"string"},"country_codes":{"description":"ISO alpha-2 country codes to compare (e.g. [\"US\", \"DE\", \"JP\", \"NO\"]). Maximum 20.","items":{"type":"string"},"type":"array"},"start_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start period (e.g. \"2020\"). Omit for most recent data."},"end_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End period (e.g. \"2023\"). Omit for most recent data."}},"required":["dataflow","country_codes"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/bls","name":"BLS (Bureau of Labor Statistics)","description":"U.S. labor statistics including employment, CPI, wages, and unemployment data.","category":"Economics","source":"Bureau of Labor Statistics","endpoint":"/mcp/bls/","tools":[{"name":"get_series","description":"Get time series data from the Bureau of Labor Statistics.\n\nBLS publishes official US government data on employment, unemployment,\nconsumer prices (CPI), producer prices (PPI), productivity, wages, and\noccupational statistics. This tool fetches observations when you know\nthe series ID.\n\nCommon series IDs:\n- LNS14000000 — Unemployment Rate (monthly, seasonally adjusted)\n- CES0000000001 — Total Nonfarm Payrolls (monthly, seasonally adjusted)\n- CUUR0000SA0 — CPI-U All Items (monthly, not seasonally adjusted)\n- CUSR0000SA0 — CPI-U All Items (monthly, seasonally adjusted)\n- CUUR0000SA0L1E — CPI-U Core (less food and energy)\n- WPU00000000 — PPI All Commodities\n- CES0500000003 — Average Hourly Earnings, Total Private\n- PRS85006092 — Nonfarm Business Labor Productivity\n\nUse get_popular_series() to browse curated series by category, or check\nhttps://data.bls.gov/dataQuery/find for the full BLS series catalog.\n\nArgs:\n    series_id: BLS series identifier (e.g. \"CUUR0000SA0\", \"LNS14000000\").\n    start_year: Start year (YYYY). If omitted, BLS returns the latest 3 years\n                (10 years without API key).\n    end_year: End year (YYYY). If omitted, fetches to the latest available.\n    calculations: Include net changes and percent changes (1, 3, 6, 12 month).\n                  Requires API key.\n    annual_averages: Include annual average values alongside monthly data.\n                     Requires API key.\n\nReturns:\n    series_id, observation_count, and observations list with year, period,\n    period_name, value, and optional latest flag and calculations.","input_schema":{"additionalProperties":false,"properties":{"series_id":{"description":"BLS series identifier (e.g. \"CUUR0000SA0\", \"LNS14000000\").","type":"string"},"start_year":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start year (YYYY). If omitted, BLS returns the latest 3 years (10 years without API key)."},"end_year":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End year (YYYY). If omitted, fetches to the latest available."},"calculations":{"default":false,"description":"Include net changes and percent changes (1, 3, 6, 12 month). Requires API key.","type":"boolean"},"annual_averages":{"default":false,"description":"Include annual average values alongside monthly data. Requires API key.","type":"boolean"}},"required":["series_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_latest","description":"Get the most recent observation for a BLS series.\n\nConvenience wrapper that fetches a series and returns only the latest\ndata point. Useful for quick lookups like \"what is the current\nunemployment rate?\" or \"what is the latest CPI reading?\".\n\nArgs:\n    series_id: BLS series identifier (e.g. \"LNS14000000\" for unemployment rate).\n\nReturns:\n    series_id, year, period, period_name, and value of the most recent observation.","input_schema":{"additionalProperties":false,"properties":{"series_id":{"description":"BLS series identifier (e.g. \"LNS14000000\" for unemployment rate).","type":"string"}},"required":["series_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_multiple_series","description":"Fetch multiple BLS series in a single request.\n\nRetrieves data for up to 50 series at once (25 without API key).\nUseful for comparing indicators side by side, e.g. unemployment rate\nalongside CPI and nonfarm payrolls.\n\nArgs:\n    series_ids: List of BLS series IDs (max 50 with key, 25 without).\n    start_year: Start year (YYYY).\n    end_year: End year (YYYY).\n\nReturns:\n    count and list of series, each with series_id, observation_count, and observations.","input_schema":{"additionalProperties":false,"properties":{"series_ids":{"description":"List of BLS series IDs (max 50 with key, 25 without).","items":{"type":"string"},"type":"array"},"start_year":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start year (YYYY)."},"end_year":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End year (YYYY)."}},"required":["series_ids"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_popular_series","description":"Browse curated popular BLS series organized by category.\n\nReturns well-known, commonly-referenced BLS series IDs with titles.\nUse this when you need to find the right series ID for employment,\nprices, productivity, or wages data.\n\nAvailable categories:\n- employment — unemployment rate, nonfarm payrolls, labor force, JOLTS\n- prices — CPI-U (all items, core, food, shelter, gasoline), PPI\n- productivity — labor productivity, unit labor costs, real compensation\n- wages — employment cost index, average hourly earnings, median weekly earnings\n\nArgs:\n    category: Filter to a specific category. If omitted, returns all categories.\n\nReturns:\n    If category specified: category name and list of series (series_id, title).\n    If omitted: list of category names and all series grouped by category.","input_schema":{"additionalProperties":false,"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter to a specific category. If omitted, returns all categories."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/bluesky","name":"Bluesky","description":"Bluesky social network — search posts, view profiles, browse feeds via the AT Protocol public API.","category":"Media","source":"Bluesky (AT Protocol)","endpoint":"/mcp/bluesky/","tools":[{"name":"search_posts","description":"Search Bluesky posts by keyword.\n\nReturns matching posts with author handles, text content, timestamps,\nand engagement counts (replies, reposts, likes). Use sort=\"top\" for\nmost popular results.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query for Bluesky posts (e.g. \"AI agents\", \"climate change\").","type":"string"},"limit":{"default":10,"description":"Max results to return (1-100). Default 10.","type":"integer"},"sort":{"default":"latest","description":"Sort order: \"latest\" or \"top\". Default \"latest\".","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_profile","description":"Get a Bluesky user profile by handle or DID.\n\nReturns display name, description, avatar URL, follower/following counts,\npost count, and account creation date.","input_schema":{"additionalProperties":false,"properties":{"actor":{"description":"Bluesky handle (e.g. \"bsky.app\") or DID (e.g. \"did:plc:z72i7hdynmk6r22z27h6tvur\").","type":"string"}},"required":["actor"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_author_feed","description":"Get recent posts from a Bluesky user.\n\nReturns the user's latest posts with text content, timestamps, and\nengagement counts. Use get_profile() first to verify the handle exists.","input_schema":{"additionalProperties":false,"properties":{"actor":{"description":"Bluesky handle (e.g. \"bsky.app\") or DID.","type":"string"},"limit":{"default":10,"description":"Max posts to return (1-100). Default 10.","type":"integer"}},"required":["actor"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_post_thread","description":"Get a post thread by AT URI, including replies.\n\nReturns the root post and a flattened list of replies. Use URIs from\nsearch_posts() or get_author_feed() results.","input_schema":{"additionalProperties":false,"properties":{"uri":{"description":"AT Protocol URI of the post (e.g. \"at://did:plc:.../app.bsky.feed.post/abc123\").","type":"string"},"depth":{"default":6,"description":"Max reply depth to fetch (0-100). Default 6.","type":"integer"}},"required":["uri"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_actors","description":"Search Bluesky users by name or handle.\n\nReturns matching user profiles with handles, display names, descriptions,\nand follower counts.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query for Bluesky users (e.g. \"bluesky\", \"journalist\").","type":"string"},"limit":{"default":10,"description":"Max results to return (1-100). Default 10.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/brreg","name":"Brønnøysund (Brreg)","description":"Norwegian business registry — company details, roles, and financial filings.","category":"Legal","source":"Brønnøysundregistrene","endpoint":"/mcp/brreg/","tools":[{"name":"lookup_brreg_company","description":"Look up a Norwegian company by its 9-digit organisation number.\n\nReturns full company record including legal form, industry code, address,\nemployee count, registration date, and VAT/bankruptcy status.\n\nArgs:\n    org_number: Norwegian org number — 9 digits, with or without spaces/dashes\n                (e.g. \"923609016\", \"923 609 016\").\n\nReturns:\n    Company record, or {\"error\": \"not_found\"} if the org number is unknown.","input_schema":{"additionalProperties":false,"properties":{"org_number":{"description":"Norwegian org number — 9 digits, with or without spaces/dashes (e.g. \"923609016\", \"923 609 016\").","type":"string"}},"required":["org_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_brreg_companies","description":"Search the Norwegian Business Registry by name and/or attributes.\n\nAt least one filter parameter must be provided.\n\nArgs:\n    name: Company name or partial name to search for (case-insensitive).\n    municipality_code: 4-digit Norwegian municipality code (kommunenummer),\n                       e.g. \"0301\" for Oslo.\n    industry_code: NACE industry code, e.g. \"62.010\" for software development.\n    legal_form: Legal form code, e.g. \"AS\" (private limited), \"ASA\" (public limited),\n                \"ENK\" (sole trader), \"DA\" (general partnership).\n    max_results: Maximum number of results to return (1–50, default 10).\n\nReturns:\n    Object with count and list of matching company records.","input_schema":{"additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Company name or partial name to search for (case-insensitive)."},"municipality_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"4-digit Norwegian municipality code (kommunenummer), e.g. \"0301\" for Oslo."},"industry_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"NACE industry code, e.g. \"62.010\" for software development."},"legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Legal form code, e.g. \"AS\" (private limited), \"ASA\" (public limited), \"ENK\" (sole trader), \"DA\" (general partnership)."},"max_results":{"default":10,"description":"Maximum number of results to return (1–50, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_brreg_company_roles","description":"Get the leadership roles for a Norwegian company.\n\nReturns board members, CEO, signatories, and other registered roles\nwith person names and role types.\n\nArgs:\n    org_number: Norwegian org number — 9 digits, with or without spaces/dashes.\n\nReturns:\n    Object with count and list of roles, each with role_type, person_name,\n    birth_year (if available), and entity details for corporate roles.","input_schema":{"additionalProperties":false,"properties":{"org_number":{"description":"Norwegian org number — 9 digits, with or without spaces/dashes.","type":"string"}},"required":["org_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_brreg_subsidiaries","description":"Get direct subsidiaries of a Norwegian company.\n\nFinds all companies registered with the given org number as their\nparent entity (overordnetEnhet).\n\nArgs:\n    org_number: Norwegian org number of the parent company.\n    max_results: Maximum number of subsidiaries to return (1–50, default 50).\n\nReturns:\n    Object with count and list of subsidiary company records.","input_schema":{"additionalProperties":false,"properties":{"org_number":{"description":"Norwegian org number of the parent company.","type":"string"},"max_results":{"default":50,"description":"Maximum number of subsidiaries to return (1–50, default 50).","type":"integer"}},"required":["org_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_brreg_recent_changes","description":"Get recent changes to monitored Norwegian companies.\n\nReturns field-level diffs (before/after values) for companies whose\nregistry data changed since the given timestamp. Only companies on the\nconfigured watchlist are tracked.\n\nArgs:\n    since: ISO 8601 timestamp — return changes captured after this time.\n    limit: Maximum number of changes to return (1–100, default 50).\n\nReturns:\n    Object with count and list of change records, each containing\n    entity_id, changed_at timestamp, and a list of field changes\n    with before/after values.","input_schema":{"additionalProperties":false,"properties":{"since":{"description":"ISO 8601 timestamp — return changes captured after this time (e.g. \"2026-04-01T00:00:00Z\").","type":"string"},"limit":{"default":50,"description":"Maximum number of changes to return (1–100, default 50).","maximum":100,"minimum":1,"type":"integer"}},"required":["since"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/climate-trace","name":"Climate TRACE (Carbon Emissions)","description":"Global greenhouse gas emissions data — country rankings, facility-level sources, sector breakdowns for CO2, CH4, N2O and 60+ gases covering 252 countries.","category":"Environment","source":"Climate TRACE (climatetrace.org)","endpoint":"/mcp/climate-trace/","tools":[{"name":"rank_countries_by_emissions","description":"Rank countries by greenhouse gas emissions.\n\nUses Climate TRACE data covering 252 countries and 60+ greenhouse gases.\nReturns country rankings with total emissions and optional sector breakdowns.\n\nArgs:\n    gas: Gas type to rank by (default co2e_100yr).\n    start: Start year filter.\n    end: End year filter.\n    sectors: Comma-separated sector filter.\n    continent: Continent filter.\n\nReturns:\n    Ranked list of countries with emissions totals.","input_schema":{"additionalProperties":false,"properties":{"gas":{"default":"co2e_100yr","description":"Gas type: 'co2', 'co2e_20yr', 'co2e_100yr', 'ch4', 'n2o'. Default 'co2e_100yr'.","type":"string"},"start":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year (inclusive). Omit for all available years."},"end":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year (inclusive). Omit for all available years."},"sectors":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated sectors (e.g. 'power,transportation'). Omit for all sectors."},"continent":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Continent filter: 'Africa', 'Asia', 'Europe', 'North America', 'Oceania', 'South America'."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_emission_sources","description":"Search for top emission sources (facilities, power plants, etc.).\n\nReturns ranked emission sources with location, sector, and emissions data.\nSources include power plants, factories, oil/gas facilities, and more.\n\nArgs:\n    year: Filter by emissions year.\n    gas: Gas type (default co2e_100yr).\n    sectors: Comma-separated sector filter.\n    country: ISO country code filter.\n    limit: Max results (1-100, default 20).\n\nReturns:\n    List of emission sources with name, location, sector, and emissions.","input_schema":{"additionalProperties":false,"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Emissions year (e.g. 2022). Omit for latest."},"gas":{"default":"co2e_100yr","description":"Gas type (default 'co2e_100yr').","type":"string"},"sectors":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated sectors (e.g. 'power,manufacturing')."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code (e.g. 'US', 'CHN', 'NOR')."},"limit":{"default":20,"description":"Number of results (1-100, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_emission_source","description":"Get detailed information for a specific emission source.\n\nReturns full details including time series emissions data for a single\nfacility or source identified by its Climate TRACE source ID.\n\nArgs:\n    source_id: Climate TRACE source ID.\n\nReturns:\n    Source details with name, location, sector, and emissions time series.","input_schema":{"additionalProperties":false,"properties":{"source_id":{"description":"Climate TRACE source ID. Use search_emission_sources to find IDs.","type":"string"}},"required":["source_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_aggregate_emissions","description":"Get aggregate greenhouse gas emissions data.\n\nReturns total emissions aggregated by the specified filters — useful for\ncomparing sectors, countries, or tracking emissions over time.\n\nArgs:\n    year: Filter by emissions year.\n    gas: Gas type (default co2e_100yr).\n    sectors: Comma-separated sector filter.\n    country: ISO country code filter.\n\nReturns:\n    Aggregated emissions data for the specified filters.","input_schema":{"additionalProperties":false,"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Emissions year (e.g. 2022). Omit for latest."},"gas":{"default":"co2e_100yr","description":"Gas type (default 'co2e_100yr').","type":"string"},"sectors":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated sectors (e.g. 'power,transportation')."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code (e.g. 'US', 'CHN', 'DEU')."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_emission_sectors","description":"List all available emission sectors in Climate TRACE.\n\nReturns the complete list of sectors used to categorize emission sources,\nsuch as power, transportation, manufacturing, agriculture, etc.\n\nReturns:\n    List of all sector definitions.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_emission_countries","description":"List all countries tracked by Climate TRACE.\n\nReturns the full list of 252 countries with emissions data available.\n\nReturns:\n    List of all country definitions.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/clinicaltrials","name":"ClinicalTrials.gov","description":"Search clinical trial registrations — study details, conditions, interventions, and status.","category":"Science","source":"ClinicalTrials.gov","endpoint":"/mcp/clinicaltrials/","tools":[{"name":"search_trials","description":"Search ClinicalTrials.gov for clinical trials with flexible filters.\n\nCovers 500K+ registered clinical trials worldwide. Returns trial summaries\nincluding NCT ID, title, status, phase, conditions, interventions, and sponsor.\n\nArgs:\n    query: General search term (searches all fields). Examples: \"aspirin heart\",\n        \"mRNA vaccine\", \"CRISPR gene therapy\".\n    condition: Filter by condition or disease. Examples: \"diabetes\",\n        \"breast cancer\", \"Alzheimer's disease\", \"COVID-19\".\n    intervention: Filter by intervention/treatment. Examples: \"pembrolizumab\",\n        \"cognitive behavioral therapy\", \"radiation\".\n    status: Filter by trial status. One of: RECRUITING, NOT_YET_RECRUITING,\n        ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, SUSPENDED,\n        ENROLLING_BY_INVITATION, UNKNOWN.\n    phase: Filter by trial phase. One of: EARLY_PHASE1, PHASE1, PHASE2,\n        PHASE3, PHASE4, NA.\n    sponsor: Filter by sponsor organization. Examples: \"Pfizer\", \"NIH\",\n        \"Mayo Clinic\".\n    max_results: Number of results to return (1-50, default 10).\n\nReturns:\n    List of trial summaries with nct_id, brief_title, overall_status, phase,\n    conditions, interventions, sponsor, start_date, enrollment.","input_schema":{"additionalProperties":false,"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"General search term (searches all fields). Examples: \"aspirin heart\", \"mRNA vaccine\", \"CRISPR gene therapy\"."},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by condition or disease. Examples: \"diabetes\", \"breast cancer\", \"Alzheimer's disease\", \"COVID-19\"."},"intervention":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by intervention/treatment. Examples: \"pembrolizumab\", \"cognitive behavioral therapy\", \"radiation\"."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by trial status. One of: RECRUITING, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, SUSPENDED, ENROLLING_BY_INVITATION, UNKNOWN."},"phase":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by trial phase. One of: EARLY_PHASE1, PHASE1, PHASE2, PHASE3, PHASE4, NA."},"sponsor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by sponsor organization. Examples: \"Pfizer\", \"NIH\", \"Mayo Clinic\"."},"max_results":{"default":10,"description":"Number of results to return (1-50, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trial","description":"Get detailed information about a specific clinical trial by NCT ID.\n\nReturns comprehensive trial details including title, summary, status, phase,\nconditions, interventions, sponsor, eligibility criteria, outcomes, and locations.\n\nArgs:\n    nct_id: ClinicalTrials.gov NCT identifier (e.g., \"NCT03367897\", \"NCT04368728\").\n        Found in search_trials results or on clinicaltrials.gov.\n\nReturns:\n    Full trial record with nct_id, brief_title, official_title, brief_summary,\n    overall_status, phase, study_type, conditions, interventions (name/type/description),\n    sponsor, collaborators, start_date, completion_date, enrollment,\n    eligibility_criteria, primary_outcomes, locations.","input_schema":{"additionalProperties":false,"properties":{"nct_id":{"description":"ClinicalTrials.gov NCT identifier (e.g., \"NCT03367897\", \"NCT04368728\"). Found in search_trials results or on clinicaltrials.gov.","type":"string"}},"required":["nct_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trials_by_condition","description":"Find clinical trials studying a specific condition or disease.\n\nShortcut for search_trials with condition filter pre-set. Useful for\nquickly finding all trials for a disease.\n\nArgs:\n    condition: The condition or disease to search for. Examples: \"lung cancer\",\n        \"type 2 diabetes\", \"major depressive disorder\", \"rheumatoid arthritis\".\n    status: Optional status filter. One of: RECRUITING, NOT_YET_RECRUITING,\n        ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, SUSPENDED,\n        ENROLLING_BY_INVITATION, UNKNOWN.\n    max_results: Number of results to return (1-50, default 10).\n\nReturns:\n    List of trial summaries matching the condition.","input_schema":{"additionalProperties":false,"properties":{"condition":{"description":"The condition or disease to search for. Examples: \"lung cancer\", \"type 2 diabetes\", \"major depressive disorder\", \"rheumatoid arthritis\".","type":"string"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional status filter. One of: RECRUITING, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, SUSPENDED, ENROLLING_BY_INVITATION, UNKNOWN."},"max_results":{"default":10,"description":"Number of results to return (1-50, default 10).","type":"integer"}},"required":["condition"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trials_by_sponsor","description":"Find clinical trials run by a specific sponsor organization.\n\nUseful for investigating a company's drug pipeline or an institution's\nresearch portfolio.\n\nArgs:\n    sponsor: Sponsor organization name. Examples: \"Pfizer\", \"Novartis\",\n        \"National Cancer Institute\", \"Mayo Clinic\", \"Roche\".\n    status: Optional status filter. One of: RECRUITING, NOT_YET_RECRUITING,\n        ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, SUSPENDED,\n        ENROLLING_BY_INVITATION, UNKNOWN.\n    max_results: Number of results to return (1-50, default 10).\n\nReturns:\n    List of trial summaries from the specified sponsor.","input_schema":{"additionalProperties":false,"properties":{"sponsor":{"description":"Sponsor organization name. Examples: \"Pfizer\", \"Novartis\", \"National Cancer Institute\", \"Mayo Clinic\", \"Roche\".","type":"string"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional status filter. One of: RECRUITING, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, SUSPENDED, ENROLLING_BY_INVITATION, UNKNOWN."},"max_results":{"default":10,"description":"Number of results to return (1-50, default 10).","type":"integer"}},"required":["sponsor"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/cms","name":"CMS Open Data (Medicare & Medicaid)","description":"US hospital quality ratings, provider/clinician search, and Medicare spending data from the CMS Provider Data Catalog — search hospitals by name or state, get quality measures, find Medicare-enrolled doctors, and compare spending per beneficiary.","category":"Health","source":"CMS Provider Data Catalog (data.cms.gov)","endpoint":"/mcp/cms/","tools":[{"name":"search_hospitals","description":"Search US hospitals by name, city, or state using CMS General Information data.\n\nReturns hospital name, address, type, ownership, emergency services availability,\nand overall CMS star rating. Data is sourced from the CMS Provider Data Catalog\nand is updated quarterly.\n\nArgs:\n    query: Free-text search matched against hospital name and city.\n    state: Two-letter US state code to filter results.\n    limit: Maximum hospitals to return (1-50, default 10).\n\nReturns:\n    List of hospitals with name, location, type, ownership, and star rating.","input_schema":{"additionalProperties":false,"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search string matched against hospital name and city (e.g. \"Mayo Clinic\", \"Houston\")."},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter US state code to filter results (e.g. \"CA\", \"NY\", \"TX\")."},"limit":{"default":10,"description":"Maximum number of hospitals to return (1-50, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_hospital_quality","description":"Get quality measures for a specific hospital by its CMS facility ID.\n\nReturns clinical quality scores, patient safety measures, patient experience\nratings, and how each measure compares to national benchmarks. Includes\nmeasure start/end dates and any applicable footnotes.\n\nArgs:\n    facility_id: 6-digit CMS facility ID (e.g. \"050324\").\n\nReturns:\n    Quality measures with scores, national comparison, and date ranges.","input_schema":{"additionalProperties":false,"properties":{"facility_id":{"description":"6-digit CMS facility ID for the hospital (e.g. \"050324\"). Use search_hospitals to find IDs.","type":"string"}},"required":["facility_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_providers","description":"Search doctors and clinicians in the NPPES NPI Registry.\n\nReturns provider name, credentials, NPI number, primary specialty, practice\naddress, and phone number. At least name or specialty must be provided;\nstate alone is not sufficient.\n\nArgs:\n    name: Provider last name.\n    state: Two-letter US state code.\n    specialty: Medical specialty (e.g. \"Internal Medicine\", \"Cardiology\").\n    limit: Maximum providers to return (1-50, default 10).\n\nReturns:\n    Provider list with NPI, name, specialty, credentials, and location.","input_schema":{"additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Provider last name or organization name to search (e.g. \"Smith\", \"Cleveland Clinic\")."},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter US state code (e.g. \"OH\", \"FL\")."},"specialty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Medical specialty to filter by (e.g. \"Internal Medicine\", \"Cardiology\")."},"limit":{"default":10,"description":"Maximum number of providers to return (1-50, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_spending","description":"Get Medicare spending per beneficiary for a hospital.\n\nReturns average Medicare spending per patient episode for the facility\ncompared to the national average. This metric reflects total payments\nacross the care episode — hospital, post-acute, and other services.\n\nArgs:\n    facility_id: 6-digit CMS facility ID (e.g. \"050324\").\n\nReturns:\n    Spending per beneficiary, national average, and measurement period.","input_schema":{"additionalProperties":false,"properties":{"facility_id":{"description":"6-digit CMS facility ID for the hospital (e.g. \"050324\"). Use search_hospitals to find IDs.","type":"string"}},"required":["facility_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/congress","name":"US Congress","description":"US congressional bill search, bill details (sponsors, subjects, summaries), member lookup, and recent legislation from Congress.gov — covers all bill types (HR, S, joint/concurrent resolutions) across all congresses.","category":"Government","source":"Congress.gov API (api.congress.gov)","endpoint":"/mcp/congress/","tools":[{"name":"search_bills","description":"Search US congressional bills by keyword.\n\nArgs:\n    query: Search keywords for bill text or title.\n    congress: Congress number (e.g. 118 for the 118th Congress).\n    bill_type: Bill type filter: hr, s, hjres, sjres, hconres, sconres, hres, sres.\n    limit: Maximum results to return (1-250, default 20).\n\nReturns:\n    Dictionary with count and list of matching bills including title, sponsor, and latest action.","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"congress":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null},"bill_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_bill","description":"Get detailed information about a specific US congressional bill.\n\nArgs:\n    congress: Congress number (e.g. 118).\n    bill_type: Bill type: hr, s, hjres, sjres, hconres, sconres, hres, sres.\n    bill_number: Bill number (e.g. \"1\" for H.R. 1).\n\nReturns:\n    Dictionary with full bill details including sponsor, subjects, policy area, and summaries.","input_schema":{"additionalProperties":false,"properties":{"congress":{"type":"integer"},"bill_type":{"type":"string"},"bill_number":{"type":"string"}},"required":["congress","bill_type","bill_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_recent_bills","description":"Get recently updated bills from a specific congress.\n\nArgs:\n    congress: Congress number (default: 118 for the 118th Congress, 2023-2025).\n    limit: Maximum results to return (1-250, default 20).\n\nReturns:\n    Dictionary with count and list of recently updated bills.","input_schema":{"additionalProperties":false,"properties":{"congress":{"default":118,"type":"integer"},"limit":{"default":20,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_members","description":"Search members of Congress with optional filters.\n\nNote: State, party, and chamber filters are applied client-side after fetching results.\nThe returned count reflects filtered results only. For unfiltered queries, pagination\nworks normally. When filters are active, increase limit for more complete results.\n\nArgs:\n    state: Filter by US state abbreviation (e.g. CA, NY, TX).\n    party: Filter by party name (Democratic, Republican).\n    chamber: Filter by chamber (House of Representatives, Senate).\n    limit: Maximum results to fetch from API before filtering (1-250, default 20).\n\nReturns:\n    Dictionary with count and list of matching members including party, state, and chamber.","input_schema":{"additionalProperties":false,"properties":{"state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"party":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"chamber":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"limit":{"default":20,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ecb-norgesbank","name":"ECB & Norges Bank","description":"Comprehensive central bank data — official ECB and Norges Bank exchange rates, policy rates, and historical series.","category":"Finance","source":"ECB, Norges Bank","endpoint":"/mcp/ecb-norgesbank/","tools":[{"name":"get_ecb_exchange_rate","description":"Get the ECB official reference rate for a currency vs EUR.\n\nThe ECB publishes reference rates at ~16:00 CET each business day\nfor ~30 currencies. The rate is expressed as units of EUR per 1 unit\nof the foreign currency (e.g. EUR/USD = 1.08 means 1 EUR buys 1.08 USD).\n\nArgs:\n    currency: ISO 4217 currency code (e.g. \"USD\", \"GBP\", \"JPY\", \"NOK\").\n    date: Optional date in ISO 8601 format (YYYY-MM-DD). If omitted,\n          returns the most recent available rate.\n\nReturns:\n    currency, base_currency (\"EUR\"), rate, date, source.","input_schema":{"additionalProperties":false,"properties":{"currency":{"description":"ISO 4217 currency code (e.g. \"USD\", \"GBP\", \"JPY\", \"NOK\").","type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional date in ISO 8601 format (YYYY-MM-DD). If omitted, returns the most recent available rate."}},"required":["currency"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_ecb_exchange_rates","description":"List all ECB official reference exchange rates for a given date.\n\nThe ECB publishes ~30 currency pairs vs EUR each business day.\nUseful when you need a full forex snapshot to price international\ntransactions or convert between multiple currencies via EUR.\n\nArgs:\n    date: Optional date in ISO 8601 format (YYYY-MM-DD). If omitted,\n          returns the most recent available rates.\n\nReturns:\n    List of exchange rates with currency, rate, and date.","input_schema":{"additionalProperties":false,"properties":{"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional date in ISO 8601 format (YYYY-MM-DD). If omitted, returns the most recent available rates."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_ecb_policy_rate","description":"Get ECB key interest rate history.\n\nThe ECB sets three key interest rates at Governing Council meetings\n(held every 6–8 weeks). The deposit facility rate is the primary\npolicy instrument since the 2022 hiking cycle.\n\nArgs:\n    rate_type: Which ECB rate to fetch:\n        - \"deposit_facility\" (default) — rate on bank deposits at ECB overnight\n        - \"main_refinancing\" — rate on main refinancing operations (MRO)\n        - \"marginal_lending\" — rate on overnight marginal lending facility\n    date_from: Optional start date (YYYY-MM-DD). Defaults to last 10 changes.\n    date_to: Optional end date (YYYY-MM-DD).\n\nReturns:\n    List of rate changes with date and rate_pct, most recent last.","input_schema":{"additionalProperties":false,"properties":{"rate_type":{"default":"deposit_facility","description":"Which ECB rate to fetch: - \"deposit_facility\" (default) — rate on bank deposits at ECB overnight - \"main_refinancing\" — rate on main refinancing operations (MRO) - \"marginal_lending\" — rate o...","type":"string"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional start date (YYYY-MM-DD). Defaults to last 10 changes."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional end date (YYYY-MM-DD)."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_norges_bank_exchange_rate","description":"Get Norges Bank official exchange rate for a currency vs NOK.\n\nNorges Bank publishes exchange rates each business day for ~40\ncurrencies. Rates are expressed as NOK per 1 unit of foreign currency\n(e.g. EUR/NOK = 11.8 means 1 EUR = 11.8 NOK).\n\nArgs:\n    currency: ISO 4217 currency code (e.g. \"EUR\", \"USD\", \"GBP\", \"SEK\").\n    date_from: Optional start date (YYYY-MM-DD). If neither date is given,\n               returns the most recent available rate.\n    date_to: Optional end date (YYYY-MM-DD).\n\nReturns:\n    List of (date, rate) pairs, oldest first.","input_schema":{"additionalProperties":false,"properties":{"currency":{"description":"ISO 4217 currency code (e.g. \"EUR\", \"USD\", \"GBP\", \"SEK\").","type":"string"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional start date (YYYY-MM-DD). If neither date is given, returns the most recent available rate."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional end date (YYYY-MM-DD)."}},"required":["currency"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_norges_bank_exchange_rates","description":"List all Norges Bank exchange rates for a given date (or latest).\n\nNorges Bank publishes ~40 NOK cross rates each business day.\n\nArgs:\n    date: Optional date (YYYY-MM-DD). If omitted, returns the latest available.\n\nReturns:\n    List of currencies and their NOK rates.","input_schema":{"additionalProperties":false,"properties":{"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional date (YYYY-MM-DD). If omitted, returns the latest available."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_norges_bank_policy_rate","description":"Get Norges Bank key policy rate (styringsrente) history.\n\nNorges Bank sets the key policy rate at scheduled meetings (~8 per year).\nThe rate directly influences mortgage rates and the Norwegian economy.\n\nArgs:\n    date_from: Optional start date (YYYY-MM-DD). Defaults to last 10 decisions.\n    date_to: Optional end date (YYYY-MM-DD).\n\nReturns:\n    List of rate decisions with date and rate_pct, most recent last.","input_schema":{"additionalProperties":false,"properties":{"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional start date (YYYY-MM-DD). Defaults to last 10 decisions."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional end date (YYYY-MM-DD)."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/cordis","name":"CORDIS (EU Research Projects)","description":"EU-funded research projects and grants — search Horizon Europe, Horizon 2020, and earlier framework programmes covering 1M+ projects with funding details, participants, and results.","category":"Science","source":"CORDIS (cordis.europa.eu)","endpoint":"/mcp/cordis/","tools":[{"name":"search_projects","description":"Search EU-funded research projects by keyword.\n\nSearches over 1 million projects funded by the European Union through\nHorizon Europe, Horizon 2020, FP7, and earlier framework programmes.\nReturns project details including title, acronym, funding, dates,\nand coordinating country.\n\nArgs:\n    query: Search term to match against project titles and descriptions.\n    programme: Optional filter for EU framework programme.\n    country: Optional filter for coordinating country.\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of matching projects with reference, title, funding, and link.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for EU research projects (e.g. \"quantum computing\", \"climate adaptation\", \"cancer biomarkers\", \"smart cities\").","type":"string"},"programme":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by EU framework programme: \"horizon-europe\", \"horizon-2020\", \"fp7\", \"fp6\", \"fp5\". Omit for all."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by coordinating country (e.g. \"Germany\", \"France\", \"Norway\")."},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_project","description":"Get an EU research project by its grant reference number.\n\nReturns detailed information about a specific EU-funded research\nproject including title, abstract, funding amounts, participants,\nprogramme, dates, and a link to the CORDIS page.\n\nArgs:\n    reference: Grant agreement reference number.\n\nReturns:\n    Project details including title, acronym, funding, and CORDIS URL.","input_schema":{"additionalProperties":false,"properties":{"reference":{"description":"EU project grant reference number (e.g. \"101057437\", \"964363\").","type":"string"}},"required":["reference"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_by_programme","description":"List projects from a specific EU framework programme.\n\nBrowse the latest projects funded under Horizon Europe, Horizon 2020,\nFP7, or earlier framework programmes. Returns the most recently\nstarted projects by default.\n\nArgs:\n    programme: EU framework programme identifier.\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of projects from the specified programme.","input_schema":{"additionalProperties":false,"properties":{"programme":{"description":"EU framework programme: \"horizon-europe\", \"horizon-2020\", \"fp7\", \"fp6\", \"fp5\".","type":"string"},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["programme"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_recent_projects","description":"Get the most recently started EU research projects.\n\nReturns the latest EU-funded research projects across all framework\nprogrammes, sorted by start date. Useful for monitoring new EU\nresearch initiatives and funding trends.\n\nArgs:\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of recent projects with reference, title, funding, and link.","input_schema":{"additionalProperties":false,"properties":{"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/crossref","name":"Crossref","description":"Academic publication metadata — DOI lookup, citation data, and journal articles.","category":"Science","source":"Crossref","endpoint":"/mcp/crossref/","tools":[{"name":"resolve_doi","description":"Resolve a DOI to full bibliographic metadata via Crossref.\n\nCrossref is the authoritative DOI registry covering ~140M scholarly works:\njournal articles, books, conference papers, datasets, and preprints.\n\nArgs:\n    doi: The DOI to resolve. Accepts bare DOI (e.g. \"10.1038/nature12373\")\n         or full URL form (e.g. \"https://doi.org/10.1038/nature12373\").\n\nReturns:\n    Dict with doi, title, authors (given/family/orcid/affiliation), publication_date,\n    type, journal, issn, publisher, abstract (JATS tags stripped), citation_count,\n    reference_count, url, and subject list.","input_schema":{"additionalProperties":false,"properties":{"doi":{"description":"The DOI to resolve. Accepts bare DOI (e.g. \"10.1038/nature12373\") or full URL form (e.g. \"https://doi.org/10.1038/nature12373\").","type":"string"}},"required":["doi"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_works","description":"Search Crossref for scholarly publications by keyword.\n\nArgs:\n    query: Full-text search query (e.g. \"CRISPR gene editing\", \"climate change tipping points\").\n    filter_type: Limit to a Crossref work type. Common values: \"journal-article\",\n                 \"book-chapter\", \"proceedings-article\", \"dataset\", \"posted-content\" (preprints).\n    filter_issn: Limit to a specific journal by ISSN (e.g. \"0028-0836\" for Nature).\n    filter_funder: Limit to works funded by a Crossref Funder ID (e.g. \"10.13039/100000001\" for NSF).\n    date_from: Only include works published on or after this date (YYYY-MM-DD or YYYY).\n    date_to: Only include works published on or before this date (YYYY-MM-DD or YYYY).\n    limit: Number of results to return (1–50, default 10).\n\nReturns:\n    Dict with 'count' (returned), 'total_results' (total matches), and 'works' list.\n    Each work includes doi, title, authors, publication_date, type, journal,\n    citation_count, and abstract where available.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Full-text search query (e.g. \"CRISPR gene editing\", \"climate change tipping points\").","type":"string"},"filter_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Limit to a Crossref work type. Common values: \"journal-article\", \"book-chapter\", \"proceedings-article\", \"dataset\", \"posted-content\" (preprints)."},"filter_issn":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Limit to a specific journal by ISSN (e.g. \"0028-0836\" for Nature)."},"filter_funder":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Limit to works funded by a Crossref Funder ID (e.g. \"10.13039/100000001\" for NSF)."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only include works published on or after this date (YYYY-MM-DD or YYYY)."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only include works published on or before this date (YYYY-MM-DD or YYYY)."},"limit":{"default":10,"description":"Number of results to return (1–50, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_journal","description":"Fetch metadata for a journal by ISSN.\n\nArgs:\n    issn: The journal ISSN (e.g. \"0028-0836\" for Nature, \"1476-4687\" for Nature online).\n\nReturns:\n    Dict with issn list, title, publisher, subjects, works_count (total DOIs indexed),\n    and coverage_from (earliest year in Crossref index).","input_schema":{"additionalProperties":false,"properties":{"issn":{"description":"The journal ISSN (e.g. \"0028-0836\" for Nature, \"1476-4687\" for Nature online).","type":"string"}},"required":["issn"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_funder","description":"Fetch metadata for a research funder by Crossref Funder ID.\n\nCommon funder IDs:\n- \"10.13039/100000001\" — US National Science Foundation (NSF)\n- \"10.13039/100000002\" — US National Institutes of Health (NIH)\n- \"10.13039/501100000269\" — UK Research and Innovation (UKRI)\n- \"10.13039/501100000780\" — European Commission\n\nUse search_works with filter_funder to find works funded by a specific funder.\n\nArgs:\n    funder_id: Crossref Funder Registry ID (e.g. \"10.13039/100000001\").\n\nReturns:\n    Dict with id, name, alt_names, location, and works_count.","input_schema":{"additionalProperties":false,"properties":{"funder_id":{"description":"Crossref Funder Registry ID (e.g. \"10.13039/100000001\").","type":"string"}},"required":["funder_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ecb-stats","name":"ECB Statistics","description":"ECB Statistical Data Warehouse — 150+ datasets covering monetary policy, interest rates, inflation, bank lending, exchange rates, and financial markets for the euro area.","category":"Finance","source":"ECB Data API (SDMX 2.1)","endpoint":"/mcp/ecb-stats/","tools":[{"name":"search_datasets","description":"Search the ECB dataset catalog by keyword.\n\nReturns matching datasets with their dataflow IDs needed for\nget_data, get_dataset_structure, and compare_series calls.\nECB covers monetary policy, interest rates, inflation, bank lending,\nexchange rates, financial markets, and balance of payments for the\neuro area and EU member states.\n\nArgs:\n    query: Search term (e.g. \"interest rate\", \"inflation\", \"lending\").\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of matching datasets with id, name, agency, and description.\n    Use the 'id' field as the dataflow parameter in other tools.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for ECB datasets (e.g. \"interest rate\", \"inflation\", \"bank lending\", \"money supply\", \"exchange\").","type":"string"},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_datasets","description":"List available ECB datasets, optionally filtered by topic.\n\nBrowse the full ECB data catalog (150+ dataflows). Use this to\ndiscover what datasets exist before querying specific data.\n\nArgs:\n    topic: Optional topic filter keyword. Omit to list all datasets.\n    limit: Maximum datasets to return (1-200, default 50).\n\nReturns:\n    List of datasets with id, name, and description.","input_schema":{"additionalProperties":false,"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional topic filter (e.g. \"monetary\", \"exchange\", \"lending\", \"balance\"). Omit to list all."},"limit":{"default":50,"description":"Maximum datasets to return (1-200, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_dataset_structure","description":"Get the dimension structure of an ECB dataset.\n\nShows what dimensions (filters) are available for a dataset and their\nvalid values. Use this before get_data to understand what currencies,\nfrequencies, and other parameters are accepted.\n\nArgs:\n    dataflow: ECB dataflow identifier from search_datasets.\n\nReturns:\n    List of dimensions with their valid codes/values. Each dimension\n    shows its position in the SDMX key and sample values.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"ECB dataflow identifier from search_datasets (e.g. \"EXR\", \"IRS\", \"ICP\", \"BLS\", \"FM\").","type":"string"}},"required":["dataflow"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Fetch data from an ECB dataset.\n\nQuery any ECB dataset using SDMX key filters. Covers exchange rates,\ninterest rates, inflation, money supply, bank lending, and 150+ more\ndata series for the euro area and EU member states.\n\nArgs:\n    dataflow: ECB dataflow identifier. Use search_datasets to find IDs.\n    key_filter: SDMX key filter. Use get_dataset_structure for valid values.\n    start_period: Start period filter (e.g. \"2015\").\n    end_period: End period filter (e.g. \"2023\").\n    limit: Maximum observations to return (1-1000, default 200).\n\nReturns:\n    Observations with all dimension labels and values.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"ECB dataflow identifier (e.g. \"EXR\", \"IRS\", \"ICP\"). Use search_datasets to find IDs.","type":"string"},"key_filter":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"SDMX key filter (e.g. \"M.USD.EUR.SP00.A\" for monthly USD/EUR spot rate). Dot-separated dimension values. Use get_dataset_structure to find valid values. Omit for all data."},"start_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start period (e.g. \"2015\", \"2020-Q1\", \"2020-01\")."},"end_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End period (e.g. \"2023\", \"2023-Q4\", \"2023-12\")."},"limit":{"default":200,"description":"Maximum observations to return (1-1000, default 200).","type":"integer"}},"required":["dataflow"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_series","description":"Compare multiple data series from the same ECB dataset.\n\nFetches multiple series side by side for comparison. Useful for\ncomparing exchange rates, interest rates across countries, or\ndifferent inflation measures.\n\nArgs:\n    dataflow: ECB dataflow identifier.\n    keys: SDMX key filters to compare. Maximum 10.\n    start_period: Start period. Omit for most recent data.\n    end_period: End period. Omit for most recent data.\n\nReturns:\n    Data grouped by series key for easy comparison.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"ECB dataflow identifier (e.g. \"EXR\", \"IRS\").","type":"string"},"keys":{"description":"SDMX key filters to compare (e.g. [\"M.USD.EUR.SP00.A\", \"M.GBP.EUR.SP00.A\"]). Maximum 10.","items":{"type":"string"},"type":"array"},"start_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start period (e.g. \"2020\"). Omit for most recent data."},"end_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End period (e.g. \"2023\"). Omit for most recent data."}},"required":["dataflow","keys"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ecb-fx","name":"ECB FX Rates","description":"Simple currency conversion — quick FX lookups with auto-detected latest ECB reference rates.","category":"Finance","source":"European Central Bank","endpoint":"/mcp/ecb-fx/","tools":[{"name":"get_rate","description":"Get the current exchange rate between two currencies.\n\nUses ECB daily reference rates (updated ~16:00 CET). EUR is used as pivot\nfor cross-currency conversions.\n\nArgs:\n    base: ISO 4217 currency code for the base currency (e.g. \"USD\", \"EUR\", \"NOK\").\n    target: ISO 4217 currency code for the target currency (e.g. \"GBP\", \"JPY\").\n\nReturns:\n    Exchange rate: 1 unit of base = rate units of target, plus the ECB publication date.","input_schema":{"additionalProperties":false,"properties":{"base":{"description":"ISO 4217 currency code for the base currency (e.g. \"USD\", \"EUR\", \"NOK\").","type":"string"},"target":{"description":"ISO 4217 currency code for the target currency (e.g. \"GBP\", \"JPY\").","type":"string"}},"required":["base","target"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_rates","description":"Get current exchange rates for all ECB-covered currencies against a base currency.\n\nUses ECB daily reference rates (updated ~16:00 CET). Covers ~30 major currencies.\n\nArgs:\n    base: ISO 4217 currency code (e.g. \"USD\", \"EUR\", \"NOK\").\n\nReturns:\n    Dictionary of all available currencies and their rates against the base,\n    plus the ECB publication date.","input_schema":{"additionalProperties":false,"properties":{"base":{"description":"ISO 4217 currency code (e.g. \"USD\", \"EUR\", \"NOK\").","type":"string"}},"required":["base"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_history","description":"Get daily exchange rates for a currency pair over the past N days (up to 90).\n\nUses ECB 90-day historical reference rates.\n\nArgs:\n    base: ISO 4217 currency code for the base currency (e.g. \"USD\", \"EUR\").\n    target: ISO 4217 currency code for the target currency (e.g. \"NOK\", \"GBP\").\n    days: Number of days of history to return (1–90, default 30).\n\nReturns:\n    Time series of daily exchange rates, newest first.","input_schema":{"additionalProperties":false,"properties":{"base":{"description":"ISO 4217 currency code for the base currency (e.g. \"USD\", \"EUR\").","type":"string"},"target":{"description":"ISO 4217 currency code for the target currency (e.g. \"NOK\", \"GBP\").","type":"string"},"days":{"default":30,"description":"Number of days of history to return (1–90, default 30).","type":"integer"}},"required":["base","target"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/court-listener","name":"Court Listener","description":"U.S. court opinions, oral arguments, and judicial records.","category":"Legal","source":"CourtListener / Free Law Project","endpoint":"/mcp/court-listener/","tools":[{"name":"search_opinions","description":"Search US court opinions by keyword, phrase, or party name.\n\nSearches 60M+ published federal and state court opinions via CourtListener.\n\nArgs:\n    query: Search query — keyword, phrase, party name, or legal concept\n           (e.g. \"Apple Samsung patent\", \"qualified immunity\", \"securities fraud\").\n           Use quotes for exact phrase matching (e.g. '\"tortious interference\"').\n    court: Jurisdiction filter — CourtListener court code. Common values:\n           \"scotus\" (Supreme Court), \"ca9\" (9th Circuit), \"ca2\" (2nd Circuit),\n           \"cadc\" (DC Circuit), \"dcd\" (DC District), \"nysd\" (SDNY), \"cand\" (ND Cal).\n           If omitted, searches all federal and state courts.\n    date_from: Return only opinions filed on or after this date (YYYY-MM-DD).\n    date_to: Return only opinions filed on or before this date (YYYY-MM-DD).\n    limit: Maximum results to return (1–100, default 20).\n\nReturns:\n    List of matching opinion clusters with case name, court, date, citation, and text snippet.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keyword, phrase, party name, or legal concept (e.g. \"Apple Samsung patent\", \"qualified immunity\", \"securities fraud\"). Use quotes for exact phrase matching (e.g. '\"tortious in...","type":"string"},"court":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Jurisdiction filter — CourtListener court code. Common values: \"scotus\" (Supreme Court), \"ca9\" (9th Circuit), \"ca2\" (2nd Circuit), \"cadc\" (DC Circuit), \"dcd\" (DC District), \"nysd\" (SDNY..."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Return only opinions filed on or after this date (YYYY-MM-DD)."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Return only opinions filed on or before this date (YYYY-MM-DD)."},"limit":{"default":20,"description":"Maximum results to return (1–100, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_opinion","description":"Retrieve full details for a court opinion cluster by ID.\n\nReturns the full opinion text, citation data, judge, and case metadata.\nUse cluster_id from search_opinions results.\n\nArgs:\n    cluster_id: CourtListener opinion cluster ID (from search_opinions results).\n\nReturns:\n    Full opinion record with case metadata and opinion text (capped at 2000 chars each).\n    Returns an error dict if the opinion is not found.","input_schema":{"additionalProperties":false,"properties":{"cluster_id":{"description":"CourtListener opinion cluster ID (from search_opinions results).","type":"integer"}},"required":["cluster_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_dockets","description":"Search court dockets by party name to find litigation history.\n\nSearches PACER/RECAP dockets for cases where a named entity appears as a party.\nUseful for due diligence: mapping a company's full litigation history.\n\nArgs:\n    party_name: Party name to search for — company, person, or organization\n                (e.g. \"Theranos\", \"Elizabeth Holmes\", \"Meta Platforms\").\n                Exact phrase matching is applied automatically.\n    court: Jurisdiction filter — CourtListener court code (e.g. \"ca9\", \"nysd\").\n           If omitted, searches all courts.\n    year_from: Include only cases filed in this year or later.\n    year_to: Include only cases filed in this year or earlier.\n    limit: Maximum results to return (1–100, default 20).\n\nReturns:\n    List of matching dockets with case name, court, date, docket number, and cause.","input_schema":{"additionalProperties":false,"properties":{"party_name":{"description":"Party name to search for — company, person, or organization (e.g. \"Theranos\", \"Elizabeth Holmes\", \"Meta Platforms\"). Exact phrase matching is applied automatically.","type":"string"},"court":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Jurisdiction filter — CourtListener court code (e.g. \"ca9\", \"nysd\"). If omitted, searches all courts."},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Include only cases filed in this year or later."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Include only cases filed in this year or earlier."},"limit":{"default":20,"description":"Maximum results to return (1–100, default 20).","type":"integer"}},"required":["party_name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_docket","description":"Retrieve full details for a court docket by ID.\n\nReturns case metadata, parties (plaintiffs and defendants), and filing info.\nUse docket_id from search_dockets results.\n\nArgs:\n    docket_id: CourtListener docket ID (from search_dockets results).\n\nReturns:\n    Full docket record with parties, cause, nature of suit, and key dates.\n    Returns an error dict if the docket is not found.","input_schema":{"additionalProperties":false,"properties":{"docket_id":{"description":"CourtListener docket ID (from search_dockets results).","type":"integer"}},"required":["docket_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_citations","description":"Retrieve the citation graph for a court opinion.\n\nReturns two lists:\n- cites: opinions that this opinion cites (precedents relied upon)\n- cited_by: opinions that later cite this opinion (subsequent authority)\n\nUse cluster_id from search_opinions results. Results are capped at 50 per direction.\n\nArgs:\n    cluster_id: CourtListener opinion cluster ID.\n\nReturns:\n    Citation graph with outbound (cites) and inbound (cited_by) opinion references.","input_schema":{"additionalProperties":false,"properties":{"cluster_id":{"description":"CourtListener opinion cluster ID.","type":"integer"}},"required":["cluster_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/domstol","name":"domstol.no (Norwegian Courts)","description":"Norwegian court hearing schedules — search upcoming and recent hearings across all courts.","category":"Legal","source":"domstol.no (Norwegian Courts Administration)","endpoint":"/mcp/domstol/","tools":[{"name":"search_hearings","description":"Search Norwegian court hearing schedules (berammingslister).\n\nQuery upcoming and recent court hearings across all Norwegian courts.\nBoth date_from and date_to are required. Results include case details,\njudges, attorneys, and hearing intervals.\n\nArgs:\n    date_from: Start date (ISO format, e.g. '2026-03-17').\n    date_to: End date (ISO format, e.g. '2026-03-24').\n    query: Optional free-text search (e.g. court name, case subject).\n    page: Page number (1-indexed, default 1).\n    page_size: Results per page (1-100, default 25).\n    sort_by: Sort field: 'rettsmoeteDato' (hearing date) or 'rettsmoete'.\n    sort_ascending: Sort direction (default true = earliest first).\n\nReturns:\n    Dict with 'total' count, 'page', 'page_size', and 'hearings' list.\n    Each hearing has: id, court, case_number, subject, start_date, end_date,\n    judge, attorneys, parties, hearing_intervals.","input_schema":{"additionalProperties":false,"properties":{"date_from":{"description":"Start date (ISO format, e.g. '2026-03-17').","type":"string"},"date_to":{"description":"End date (ISO format, e.g. '2026-03-24').","type":"string"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional free-text search (e.g. court name, case subject)."},"page":{"default":1,"description":"Page number (1-indexed, default 1).","type":"integer"},"page_size":{"default":25,"description":"Results per page (1-100, default 25).","type":"integer"},"sort_by":{"default":"rettsmoeteDato","description":"Sort field: 'rettsmoeteDato' (hearing date) or 'rettsmoete'.","type":"string"},"sort_ascending":{"default":true,"description":"Sort direction (default true = earliest first).","type":"boolean"}},"required":["date_from","date_to"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_courts","description":"List all known Norwegian courts.\n\nReturns the full list of courts (tingretter, lagmannsretter, jordskifteretter,\nand Høyesterett) whose hearings appear in domstol.no schedules.\n\nReturns:\n    Dict with 'count' and 'courts' list. Each court has a 'name' field.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/dst","name":"DST (Statistics Denmark)","description":"Danish official statistics — population, employment, income, housing, trade, and economic data.","category":"Economics","source":"Statistics Denmark (Danmarks Statistik)","endpoint":"/mcp/dst/","tools":[{"name":"list_subjects","description":"List Statistics Denmark's top-level subject categories.\n\nReturns the main statistical subject areas (e.g. People, Labour and income,\nEconomy, Social conditions, Education, Business, Transport, Environment).\nUse the returned IDs with browse_subject or list_tables to explore further.\n\nArgs:\n    lang: Language — 'en' for English, 'da' for Danish (default 'en').\n\nReturns:\n    List of subject categories with id, text, and has_subjects flag.","input_schema":{"additionalProperties":false,"properties":{"lang":{"default":"en","description":"Language — 'en' for English, 'da' for Danish (default 'en').","type":"string"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"browse_subject","description":"Browse a subject area to find sub-subjects and tables.\n\nNavigate the Statistics Denmark hierarchy by providing a subject ID from\nlist_subjects or a previous browse_subject call. Returns both child subjects\nand tables available in this area.\n\nArgs:\n    subject_id: Subject ID (e.g. '1' for People, '2' for Labour).\n    lang: Language — 'en' or 'da'.\n\nReturns:\n    Sub-subjects and tables within this subject area.","input_schema":{"additionalProperties":false,"properties":{"subject_id":{"description":"Subject ID (e.g. '1' for People, '2' for Labour).","type":"string"},"lang":{"default":"en","description":"Language — 'en' or 'da'.","type":"string"}},"required":["subject_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_tables","description":"List available statistical tables, optionally filtered by subject.\n\nStatistics Denmark has 2000+ tables. Filter by subject_id to get a manageable\nlist. Each table shows its ID, description, time range, and variables.\n\nArgs:\n    subject_id: Subject ID to filter by (e.g. '1'). Omit for all tables.\n    lang: Language — 'en' or 'da'.\n\nReturns:\n    List of tables with table_id, text, time range, and variable names.","input_schema":{"additionalProperties":false,"properties":{"subject_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Subject ID to filter by (e.g. '1'). Omit for all tables."},"lang":{"default":"en","description":"Language — 'en' or 'da'.","type":"string"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_table_metadata","description":"Get the structure of a Statistics Denmark table — its dimensions, variables, and valid values.\n\nUse this before querying data to understand what filters are available.\nEach variable lists its valid codes and labels. Variables marked 'elimination: true'\ncan be omitted from queries to get aggregated totals.\n\nTime variables are flagged with 'time: true'. Time codes follow patterns:\n'2024' (annual), '2024K1' (quarterly), '2024M01' (monthly).\n\nArgs:\n    table_id: DST table ID (e.g. 'FOLK1A' for population, 'AKU100' for labour force).\n    lang: Language — 'en' or 'da'.\n\nReturns:\n    Table title, description, and list of variables with codes, labels, and valid values.","input_schema":{"additionalProperties":false,"properties":{"table_id":{"description":"DST table ID (e.g. 'FOLK1A' for population, 'AKU100' for labour force).","type":"string"},"lang":{"default":"en","description":"Language — 'en' or 'da'.","type":"string"}},"required":["table_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Query data from a Statistics Denmark statistical table.\n\nWithout filters, returns the latest top_n time periods with default selections\nfor other dimensions. With filters, you select specific variable values.\n\nEach filter dict needs: 'code' (variable ID from metadata) and 'values' list.\n\nExample — Denmark total population, last 3 quarters (table FOLK1A):\nfilters=[\n    {\"code\": \"KØN\", \"values\": [\"TOT\"]},\n    {\"code\": \"ALDER\", \"values\": [\"IALT\"]},\n    {\"code\": \"CIVILSTAND\", \"values\": [\"TOT\"]},\n    {\"code\": \"Tid\", \"values\": [\"2025K1\", \"2024K4\", \"2024K3\"]}\n]\n\nArgs:\n    table_id: DST table ID.\n    filters: List of variable filters. See get_table_metadata for valid codes.\n    top_n: If no filters given, fetch this many latest time periods (default 5).\n    lang: Language — 'en' or 'da'.\n\nReturns:\n    Parsed data with metadata (label, source, updated) and a list of records.\n    Each record has labeled dimension values and a 'value' field.","input_schema":{"additionalProperties":false,"properties":{"table_id":{"description":"DST table ID.","type":"string"},"filters":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"default":null,"description":"List of variable filters. See get_table_metadata for valid codes."},"top_n":{"default":5,"description":"If no filters given, fetch this many latest time periods (default 5).","type":"integer"},"lang":{"default":"en","description":"Language — 'en' or 'da'.","type":"string"}},"required":["table_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/earthquakes","name":"Earthquakes (USGS)","description":"Recent and historical earthquake data — magnitude, location, depth, and alerts.","category":"Environment","source":"USGS Earthquake Hazards","endpoint":"/mcp/earthquakes/","tools":[{"name":"search_earthquakes","description":"Search earthquakes from the USGS seismic event database.\n\nQuery by magnitude range, date range, geographic bounding box, and depth.\nData is sourced from the USGS Earthquake Hazards Program and updated every minute.\n\nArgs:\n    min_magnitude: Minimum magnitude (e.g. 4.5 for significant quakes).\n    max_magnitude: Maximum magnitude.\n    start_time: Start date/time in ISO 8601 (e.g. \"2024-01-01\" or \"2024-01-01T00:00:00\").\n    end_time: End date/time in ISO 8601.\n    min_latitude: Southern boundary (-90 to 90).\n    max_latitude: Northern boundary (-90 to 90).\n    min_longitude: Western boundary (-180 to 180).\n    max_longitude: Eastern boundary (-180 to 180).\n    min_depth: Minimum depth in km.\n    max_depth: Maximum depth in km.\n    limit: Maximum results to return (1-200, default 20).\n    order_by: Sort order — \"time\" (newest first), \"time-asc\", \"magnitude\", \"magnitude-asc\".\n\nReturns:\n    Dict with 'count' and 'results' list of earthquakes. Each earthquake includes\n    magnitude, location (place, lat/lon), depth, time, alert level, tsunami flag,\n    and a USGS detail URL.","input_schema":{"additionalProperties":false,"properties":{"min_magnitude":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Minimum magnitude (e.g. 4.5 for significant quakes)."},"max_magnitude":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Maximum magnitude."},"start_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date/time in ISO 8601 (e.g. \"2024-01-01\" or \"2024-01-01T00:00:00\")."},"end_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date/time in ISO 8601."},"min_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Southern boundary (-90 to 90)."},"max_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Northern boundary (-90 to 90)."},"min_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Western boundary (-180 to 180)."},"max_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Eastern boundary (-180 to 180)."},"min_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Minimum depth in km."},"max_depth":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Maximum depth in km."},"limit":{"default":20,"description":"Maximum results to return (1-200, default 20).","type":"integer"},"order_by":{"default":"time","description":"Sort order — \"time\" (newest first), \"time-asc\", \"magnitude\", \"magnitude-asc\".","type":"string"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_earthquake","description":"Get detailed information about a specific earthquake by its USGS event ID.\n\nArgs:\n    event_id: The USGS event identifier (e.g. \"us7000n7q6\").\n\nReturns:\n    Dict with earthquake details including magnitude, location, depth, time,\n    felt reports count, alert level (green/yellow/orange/red), tsunami flag,\n    and the USGS detail URL. Returns an error if the event is not found.","input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"The USGS event identifier (e.g. \"us7000n7q6\").","type":"string"}},"required":["event_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"latest_earthquakes","description":"Get the latest significant earthquakes globally or near a specific location.\n\nBy default returns recent M4.5+ earthquakes worldwide. Optionally filter\nto a specific area by providing a center point and radius.\n\nArgs:\n    min_magnitude: Minimum magnitude threshold (default 4.5).\n    limit: Maximum results to return (1-100, default 10).\n    latitude: Center latitude for geographic filter (-90 to 90). Requires longitude.\n    longitude: Center longitude for geographic filter (-180 to 180). Requires latitude.\n    max_radius_km: Search radius in kilometers from the center point (default 500 if lat/lon given).\n\nReturns:\n    Dict with 'count' and 'results' list of recent earthquakes sorted by time (newest first).","input_schema":{"additionalProperties":false,"properties":{"min_magnitude":{"default":4.5,"description":"Minimum magnitude threshold (default 4.5).","type":"number"},"limit":{"default":10,"description":"Maximum results to return (1-100, default 10).","type":"integer"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Center latitude for geographic filter (-90 to 90). Requires longitude."},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Center longitude for geographic filter (-180 to 180). Requires latitude."},"max_radius_km":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Search radius in kilometers from the center point (default 500 if lat/lon given)."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/esco","name":"ESCO (Skills & Occupations)","description":"European skills, competences, and occupations classification — 13,890 skills and 3,008 occupations linked to ISCO-08 codes in 28 languages.","category":"Economics","source":"ESCO API (European Commission)","endpoint":"/mcp/esco/","tools":[{"name":"esco_search_skills","description":"Search the European skills classification (ESCO).\n\nESCO is the EU's multilingual classification of Skills, Competences,\nQualifications and Occupations. It covers 13,890 skills and 3,008\noccupations with labels in 28 languages.\n\nUse this tool to find skills by keyword. Returns skill URIs that can be\npassed to esco_get_skill for full details including related occupations.\n\nArgs:\n    query: Search terms for skills.\n    language: Language code for results (default: en).\n    limit: Maximum results (1-50, default: 10).\n\nReturns:\n    List of matching skills with URI and title, plus total count.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query (e.g. \"python programming\", \"data analysis\", \"project management\").","type":"string"},"language":{"default":"en","description":"Language code for results (en, no, de, fr, etc.).","type":"string"},"limit":{"default":10,"description":"Maximum results to return (1-50).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"esco_search_occupations","description":"Search the European occupation classification (ESCO).\n\nFind occupations by keyword. Each occupation is linked to ISCO-08 codes\nand has associated essential and optional skills. Returns URIs that can\nbe passed to esco_get_occupation or esco_get_occupation_skills.\n\nArgs:\n    query: Search terms for occupations.\n    language: Language code for results (default: en).\n    limit: Maximum results (1-50, default: 10).\n\nReturns:\n    List of matching occupations with URI and title, plus total count.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query (e.g. \"software developer\", \"nurse\", \"electrician\").","type":"string"},"language":{"default":"en","description":"Language code for results.","type":"string"},"limit":{"default":10,"description":"Maximum results to return (1-50).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"esco_get_skill","description":"Get detailed information about an ESCO skill.\n\nReturns the skill description, alternative labels, broader/narrower skills\nin the hierarchy, and which occupations require this skill (essential vs optional).\n\nArgs:\n    uri: ESCO skill URI (e.g. \"http://data.europa.eu/esco/skill/...\").\n    language: Language code (default: en).\n\nReturns:\n    Skill details including description, related skills, and linked occupations.","input_schema":{"additionalProperties":false,"properties":{"uri":{"description":"ESCO skill URI (from search results).","type":"string"},"language":{"default":"en","description":"Language code.","type":"string"}},"required":["uri"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"esco_get_occupation","description":"Get detailed information about an ESCO occupation.\n\nReturns the occupation description, ISCO-08 code, alternative labels,\nand lists of essential and optional skills required for the role.\n\nArgs:\n    uri: ESCO occupation URI (e.g. \"http://data.europa.eu/esco/occupation/...\").\n    language: Language code (default: en).\n\nReturns:\n    Occupation details including description, ISCO code, and skill requirements.","input_schema":{"additionalProperties":false,"properties":{"uri":{"description":"ESCO occupation URI (from search results).","type":"string"},"language":{"default":"en","description":"Language code.","type":"string"}},"required":["uri"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"esco_get_occupation_skills","description":"List all skills required for an ESCO occupation.\n\nReturns the complete skill profile split into essential skills (must-have)\nand optional skills (nice-to-have), with totals. Useful for job matching,\ntraining gap analysis, and curriculum design.\n\nArgs:\n    uri: ESCO occupation URI.\n    language: Language code (default: en).\n\nReturns:\n    Essential and optional skill lists with counts.","input_schema":{"additionalProperties":false,"properties":{"uri":{"description":"ESCO occupation URI.","type":"string"},"language":{"default":"en","description":"Language code.","type":"string"}},"required":["uri"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/einnsyn","name":"eInnsyn (Norwegian Public Records)","description":"Norwegian public records — journal entries, case folders, and meeting documents from government agencies.","category":"Government","source":"eInnsyn (einnsyn.no)","endpoint":"/mcp/einnsyn/","tools":[{"name":"search_records","description":"Search Norwegian public records — journal entries, case folders, and meeting documents.\n\neInnsyn is Norway's official public records portal. All government agencies are required\nto publish their correspondence journals here. This tool searches across all agencies.\n\nArgs:\n    query: Free-text search. Supports exact match with quotes, exclusion with minus.\n    entity: Filter by type: 'Journalpost', 'Saksmappe', 'Moetemappe', or 'Moetesak'.\n    limit: Results per page (1-100, default 25).\n    journal_date_from: Filter by journal date start (ISO date, e.g. '2025-01-01').\n    journal_date_to: Filter by journal date end (ISO date).\n    journalpost_type: Filter journal type: 'inngaaende_dokument', 'utgaaende_dokument',\n        'organinternt_dokument_uten_oppfoelging', 'organinternt_dokument_for_oppfoelging'.\n    sort_by: Sort order (default 'score'). Options: 'score', 'journaldato', 'publisertDato',\n        'tittel', 'administrativEnhetNavn'.\n\nReturns:\n    Dict with 'count', 'items' list, and 'next' cursor for pagination.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Free-text search. Supports exact match with quotes, exclusion with minus.","type":"string"},"entity":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by type: 'Journalpost', 'Saksmappe', 'Moetemappe', or 'Moetesak'."},"limit":{"default":25,"description":"Results per page (1-100, default 25).","type":"integer"},"journal_date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by journal date start (ISO date, e.g. '2025-01-01')."},"journal_date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by journal date end (ISO date)."},"journalpost_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter journal type: 'inngaaende_dokument', 'utgaaende_dokument', 'organinternt_dokument_uten_oppfoelging', 'organinternt_dokument_for_oppfoelging'."},"sort_by":{"default":"score","description":"Sort order (default 'score'). Options: 'score', 'journaldato', 'publisertDato', 'tittel', 'administrativEnhetNavn'.","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_journal_entry","description":"Get a specific journal entry (journalpost) from eInnsyn.\n\nReturns the full entry with correspondents (senders/recipients) and attached\ndocument metadata. Use the ID from search_records results.\n\nArgs:\n    journalpost_id: The journal entry ID (e.g. 'jp_...' or a UUID).\n\nReturns:\n    Full journal entry with title, dates, correspondents, and documents.","input_schema":{"additionalProperties":false,"properties":{"journalpost_id":{"description":"The journal entry ID (e.g. 'jp_...' or a UUID).","type":"string"}},"required":["journalpost_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_case_folder","description":"Get a case folder (saksmappe) from eInnsyn.\n\nA case folder groups related journal entries for a government case.\nReturns the case metadata and list of associated journal entry IDs.\n\nArgs:\n    saksmappe_id: The case folder ID (e.g. 'sm_...' or a UUID).\n\nReturns:\n    Case folder with title, case number, and journal entry references.","input_schema":{"additionalProperties":false,"properties":{"saksmappe_id":{"description":"The case folder ID (e.g. 'sm_...' or a UUID).","type":"string"}},"required":["saksmappe_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_organizations","description":"List government organizations registered in eInnsyn.\n\nReturns organizational units (ministries, agencies, municipalities) that\npublish records to eInnsyn.\n\nArgs:\n    limit: Number of organizations to return (1-100, default 25).\n\nReturns:\n    Dict with 'count', 'units' list (id, name, parent), and 'next' cursor.","input_schema":{"additionalProperties":false,"properties":{"limit":{"default":25,"description":"Number of organizations to return (1-100, default 25).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_publication_statistics","description":"Get aggregate publication statistics for eInnsyn records.\n\nShows how many records have been published, how many include full text,\nand download counts. Useful for transparency reporting and trend analysis.\n\nArgs:\n    interval: Aggregation interval: 'hour', 'day', 'week', 'month', 'year'.\n    date_from: Start date (ISO, e.g. '2025-01-01'). Defaults to one year ago.\n    date_to: End date (ISO). Defaults to today.\n\nReturns:\n    Dict with 'summary' (totals) and 'time_series' (bucketed counts).","input_schema":{"additionalProperties":false,"properties":{"interval":{"default":"month","description":"Aggregation interval: 'hour', 'day', 'week', 'month', 'year'.","type":"string"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date (ISO, e.g. '2025-01-01'). Defaults to one year ago."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date (ISO). Defaults to today."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/hvakosterstrommen","name":"Hvakosterstrommen (Electricity Prices)","description":"Norwegian electricity spot prices and day-ahead market data.","category":"Finance","source":"hvakosterstrommen.no","endpoint":"/mcp/hvakosterstrommen/","tools":[{"name":"get_current_electricity_price","description":"Get the current hour's spot electricity price for a Nordpool price zone.\n\nArgs:\n    zone: Nordpool price zone (e.g. 'NO1' for Oslo/East Norway). Valid zones: NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4, DK1, DK2, FI.\n\nReturns:\n    Dictionary with time_start, time_end, nok_per_kwh, eur_per_kwh, and exchange_rate.","input_schema":{"additionalProperties":false,"properties":{"zone":{"description":"Nordpool price zone (e.g. 'NO1' for Oslo/East Norway). Valid zones: NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4, DK1, DK2, FI.","type":"string"}},"required":["zone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_electricity_prices_today","description":"Get all 24 hourly electricity spot prices for today in a Nordpool price zone.\n\nIncludes summary statistics: cheapest hour, most expensive hour, min/max/avg prices.\n\nArgs:\n    zone: Nordpool price zone (e.g. 'NO1' for Oslo/East Norway). Valid zones: NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4, DK1, DK2, FI.\n\nReturns:\n    Dictionary with date, count, cheapest_hour, most_expensive_hour, min/max/avg prices, and hourly prices list.","input_schema":{"additionalProperties":false,"properties":{"zone":{"description":"Nordpool price zone (e.g. 'NO1' for Oslo/East Norway). Valid zones: NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4, DK1, DK2, FI.","type":"string"}},"required":["zone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_electricity_prices_tomorrow","description":"Get day-ahead electricity spot prices for tomorrow in a Nordpool price zone.\n\nDay-ahead prices are published around 13:00 CET. Returns an error if not yet available.\n\nArgs:\n    zone: Nordpool price zone (e.g. 'NO1' for Oslo/East Norway). Valid zones: NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4, DK1, DK2, FI.\n\nReturns:\n    Dictionary with date, count, cheapest_hour, most_expensive_hour, min/max/avg prices, and hourly prices list.","input_schema":{"additionalProperties":false,"properties":{"zone":{"description":"Nordpool price zone (e.g. 'NO1' for Oslo/East Norway). Valid zones: NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4, DK1, DK2, FI.","type":"string"}},"required":["zone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_cheapest_electricity_window","description":"Find the cheapest consecutive block of hours for electricity across today and tomorrow.\n\nIdeal for scheduling EV charging, appliances, or heat pumps to minimize cost.\nTomorrow's prices are included if available (published ~13:00 CET).\n\nArgs:\n    zone: Nordpool price zone (e.g. 'NO1'). Valid zones: NO1–NO5, SE1–SE4, DK1–DK2, FI.\n    duration_hours: Number of consecutive hours needed (1–24).\n    not_before: ISO 8601 datetime — only consider hours at or after this time (e.g. '2026-03-13T22:00:00+01:00').\n    not_after: ISO 8601 datetime — only consider hours ending at or before this time (e.g. '2026-03-14T07:00:00+01:00').\n\nReturns:\n    Dictionary with window_start, window_end, avg_nok_per_kwh, total_nok_per_kwh, and individual hour prices.","input_schema":{"additionalProperties":false,"properties":{"zone":{"description":"Nordpool price zone (e.g. 'NO1'). Valid zones: NO1–NO5, SE1–SE4, DK1–DK2, FI.","type":"string"},"duration_hours":{"description":"Number of consecutive hours needed (1–24).","type":"integer"},"not_before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 datetime — only consider hours at or after this time (e.g. '2026-03-13T22:00:00+01:00')."},"not_after":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 datetime — only consider hours ending at or before this time (e.g. '2026-03-14T07:00:00+01:00')."}},"required":["zone","duration_hours"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_electricity_price_history","description":"Get historical hourly electricity spot prices for the past N days.\n\nArgs:\n    zone: Nordpool price zone (e.g. 'NO1'). Valid zones: NO1–NO5, SE1–SE4, DK1–DK2, FI.\n    days: Number of past days to include (1–30, default 7).\n\nReturns:\n    Dictionary with zone, days, count, and a flat list of all hourly prices in chronological order.","input_schema":{"additionalProperties":false,"properties":{"zone":{"description":"Nordpool price zone (e.g. 'NO1'). Valid zones: NO1–NO5, SE1–SE4, DK1–DK2, FI.","type":"string"},"days":{"default":7,"description":"Number of past days to include (1–30, default 7).","type":"integer"}},"required":["zone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_electricity_zone_for_location","description":"Resolve geographic coordinates to the nearest Nordpool electricity price zone.\n\nUses straight-line distance to approximate zone centers. Works for Norway, Sweden, Denmark, and Finland.\n\nArgs:\n    lat: Latitude (decimal degrees).\n    lon: Longitude (decimal degrees).\n\nReturns:\n    Dictionary with zone (e.g. 'NO1') and distance_km to the zone center.","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude (decimal degrees).","type":"number"},"lon":{"description":"Longitude (decimal degrees).","type":"number"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/electricity-maps","name":"Electricity Maps","description":"Real-time energy grid data — carbon intensity, generation mix, and power breakdown by zone.","category":"Environment","source":"Electricity Maps","endpoint":"/mcp/electricity-maps/","tools":[{"name":"get_carbon_intensity","description":"Get the carbon intensity of electricity production for a grid zone.\n\nCarbon intensity measures how much CO₂-equivalent is emitted per kWh of electricity\nconsumed, expressed in gCO₂eq/kWh. Lower is greener.\n\nArgs:\n    zone: Electricity Maps zone code (e.g. \"NO\", \"DE\", \"FR\", \"GB\", \"US-CAL-CISO\").\n          See https://app.electricitymaps.com for a full list of zone codes.\n    datetime: Optional ISO 8601 datetime string to look up historical intensity.\n              If omitted, returns the latest available value.\n              Historical data covers approximately the past 24 hours.\n\nReturns:\n    Carbon intensity in gCO₂eq/kWh with zone, timestamp, and estimation metadata.","input_schema":{"additionalProperties":false,"properties":{"zone":{"description":"Electricity Maps zone code (e.g. \"NO\", \"DE\", \"FR\", \"GB\", \"US-CAL-CISO\"). See https://app.electricitymaps.com for a full list of zone codes.","type":"string"},"datetime":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional ISO 8601 datetime string to look up historical intensity. If omitted, returns the latest available value. Historical data covers approximately the past 24 hours."}},"required":["zone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_grid_mix","description":"Get the current electricity production breakdown by energy source for a grid zone.\n\nShows how electricity is being generated right now — what percentage comes from\nrenewables, fossil fuels, nuclear, etc. Useful for understanding a region's\nenergy profile or for EU CSRD Scope 2 emissions reporting.\n\nArgs:\n    zone: Electricity Maps zone code (e.g. \"NO\", \"DE\", \"FR\", \"GB\", \"US-CAL-CISO\").\n\nReturns:\n    Production breakdown by source (MW), total production, renewable percentage,\n    fossil-free percentage, and IPCC lifecycle emission factor per source.","input_schema":{"additionalProperties":false,"properties":{"zone":{"description":"Electricity Maps zone code (e.g. \"NO\", \"DE\", \"FR\", \"GB\", \"US-CAL-CISO\").","type":"string"}},"required":["zone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"forecast_intensity","description":"Get predicted carbon intensity for a grid zone over the coming hours.\n\nForecasts are generated by Electricity Maps based on weather models and\nscheduled generation. Useful for scheduling compute workloads, EV charging,\nor other deferrable energy consumption to lower-carbon windows.\n\nArgs:\n    zone: Electricity Maps zone code (e.g. \"NO\", \"DE\", \"FR\", \"GB\", \"US-CAL-CISO\").\n    hours_ahead: How many hours of forecast to return (1–48, default 24).\n\nReturns:\n    Hourly forecast entries with predicted carbon intensity in gCO₂eq/kWh.","input_schema":{"additionalProperties":false,"properties":{"zone":{"description":"Electricity Maps zone code (e.g. \"NO\", \"DE\", \"FR\", \"GB\", \"US-CAL-CISO\").","type":"string"},"hours_ahead":{"default":24,"description":"How many hours of forecast to return (1–48, default 24).","type":"integer"}},"required":["zone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"find_greenest_region","description":"Compare carbon intensity across multiple grid zones and rank them by greenness.\n\nUseful for routing compute workloads, data center jobs, or EV charging to the\ncleanest available grid. Lower carbon intensity = greener electricity.\n\nArgs:\n    zones: List of Electricity Maps zone codes to compare\n           (e.g. [\"NO\", \"SE\", \"FI\", \"DE\", \"FR\"]).\n    window_hours: Averaging window in hours (1 = current value, default 1).\n                  Values > 1 average over recent history for a smoother signal.\n\nReturns:\n    Zones ranked from greenest to most carbon-intensive, with intensity values\n    and the recommended zone for low-carbon scheduling.","input_schema":{"additionalProperties":false,"properties":{"zones":{"description":"List of Electricity Maps zone codes to compare (e.g. [\"NO\", \"SE\", \"FI\", \"DE\", \"FR\"]).","items":{"type":"string"},"type":"array"},"window_hours":{"default":1,"description":"Averaging window in hours (1 = current value, default 1). Values > 1 average over recent history for a smoother signal.","type":"integer"}},"required":["zones"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/eurlex","name":"EUR-Lex (EU Legislation)","description":"EU legislation database — search regulations, directives, and decisions via CELLAR SPARQL. Covers the entire Official Journal corpus from founding treaties to present.","category":"Legal","source":"EUR-Lex CELLAR (publications.europa.eu)","endpoint":"/mcp/eurlex/","tools":[{"name":"search_legislation","description":"Search EU legislation by keyword.\n\nSearches titles of EU legal acts (regulations, directives, decisions)\npublished in the Official Journal. Covers the entire EUR-Lex corpus\nfrom the founding treaties to present-day legislation.\n\nArgs:\n    query: Search term to match against legislation titles.\n    doc_type: Optional filter for document type.\n    year: Optional filter for publication year.\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of matching legal acts with CELEX number, title, date, and link.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for EU legislation titles (e.g. \"artificial intelligence\", \"data protection\", \"climate\", \"digital markets\").","type":"string"},"doc_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by document type: \"regulation\", \"directive\", or \"decision\". Omit for all types."},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by year of publication (e.g. 2024)."},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_document","description":"Get an EU legal document by its CELEX number.\n\nReturns metadata for a specific EU legal act including title, date,\ndocument types, and a direct link to the full text on EUR-Lex.\n\nCELEX numbers follow the pattern: sector + year + type + number.\nCommon sectors: 3 = secondary legislation, 1 = treaties, 6 = case law.\n\nArgs:\n    celex: CELEX document identifier.\n\nReturns:\n    Document metadata including title, date, types, and EUR-Lex URL.","input_schema":{"additionalProperties":false,"properties":{"celex":{"description":"CELEX document number (e.g. \"32024R1689\" for the AI Act, \"32016R0679\" for GDPR).","type":"string"}},"required":["celex"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_recent","description":"Get recently published EU legislation.\n\nReturns the latest EU legal acts published within the specified\ntime window. Useful for monitoring new regulations, directives,\nand decisions from the European Union.\n\nArgs:\n    doc_type: Optional filter for document type.\n    days: Look back period in days (1-365, default 30).\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of recent legal acts with CELEX number, title, date, and link.","input_schema":{"additionalProperties":false,"properties":{"doc_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by type: \"regulation\", \"directive\", or \"decision\". Omit for all types."},"days":{"default":30,"description":"Look back period in days (1-365, default 30).","type":"integer"},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_by_subject","description":"Search EU legislation by EuroVoc subject matter.\n\nEuroVoc is the EU's multilingual thesaurus used to classify all\nlegal acts. This searches by subject descriptor rather than\ntitle keywords, which can find legislation that doesn't mention\na topic explicitly in its title.\n\nArgs:\n    subject: EuroVoc subject descriptor to search for.\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of matching legal acts with subject labels.","input_schema":{"additionalProperties":false,"properties":{"subject":{"description":"EuroVoc subject descriptor (e.g. \"environmental policy\", \"consumer protection\", \"competition\", \"transport\").","type":"string"},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["subject"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/eurostat","name":"Eurostat","description":"EU statistical data — demographics, trade, GDP, employment, and social indicators.","category":"Economics","source":"Eurostat","endpoint":"/mcp/eurostat/","tools":[{"name":"get_stat","description":"Fetch a time series from a Eurostat dataset filtered by geographic area.\n\nCovers economic, demographic, environmental, health, trade, and agricultural\nstatistics for EU/EEA countries. Data is free to use (CC-BY-4.0).\n\nArgs:\n    dataset_code: Eurostat dataset identifier (e.g. \"nama_10_gdp\" for national accounts,\n                  \"lfsi_emp_a\" for employment). Use search_datasets or list_datasets to discover codes.\n    geo: ISO 3166-1 alpha-2 country/region code (e.g. \"NO\", \"DE\", \"EU27_2020\").\n         Comma-separated for multiple geographies (e.g. \"NO,SE,DK\").\n    time_from: Start year (inclusive), e.g. 2015.\n    time_to: End year (inclusive), e.g. 2023.\n    unit: Unit filter code (e.g. \"CP_MEUR\" for current prices in millions of euros,\n          \"PC_GDP\" for percentage of GDP). Optional — omit to get all units.\n    freq: Frequency code: \"A\" (annual, default), \"Q\" (quarterly), \"M\" (monthly).\n\nReturns:\n    Dict with dataset_code, geo, count, and a list of {geo, time, value} records\n    sorted by time descending. Values may be null where data is unavailable.","input_schema":{"additionalProperties":false,"properties":{"dataset_code":{"description":"Eurostat dataset identifier (e.g. \"nama_10_gdp\" for national accounts, \"lfsi_emp_a\" for employment). Use search_datasets or list_datasets to discover codes.","type":"string"},"geo":{"description":"ISO 3166-1 alpha-2 country/region code (e.g. \"NO\", \"DE\", \"EU27_2020\"). Comma-separated for multiple geographies (e.g. \"NO,SE,DK\").","type":"string"},"time_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year (inclusive), e.g. 2015."},"time_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year (inclusive), e.g. 2023."},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Unit filter code (e.g. \"CP_MEUR\" for current prices in millions of euros, \"PC_GDP\" for percentage of GDP). Optional — omit to get all units."},"freq":{"default":"A","description":"Frequency code: \"A\" (annual, default), \"Q\" (quarterly), \"M\" (monthly).","type":"string"}},"required":["dataset_code","geo"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_datasets","description":"Search Eurostat dataset catalogue by keyword.\n\nCovers 6,000+ statistical datasets across economics, demographics, environment,\nhealth, trade, agriculture, and more from EU and European countries.\n\nArgs:\n    query: Search term (e.g. \"gdp\", \"unemployment\", \"greenhouse gas\").\n    limit: Maximum number of results to return (default 20).\n\nReturns:\n    Matching datasets with code, title, and data availability period.\n    Use the code field with get_stat or compare_countries.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term (e.g. \"gdp\", \"unemployment\", \"greenhouse gas\").","type":"string"},"limit":{"default":20,"description":"Maximum number of results to return (default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_datasets","description":"Browse all available Eurostat datasets, optionally filtered by topic keyword.\n\nArgs:\n    topic_filter: Optional keyword to filter dataset titles (e.g. \"trade\", \"energy\",\n                  \"migration\"). Case-insensitive substring match on title and code.\n                  If omitted, returns the first 50 datasets from the catalogue.\n\nReturns:\n    Up to 50 datasets with code, title, and data availability period.\n    Use the code field with get_stat, compare_countries, or search_datasets.","input_schema":{"additionalProperties":false,"properties":{"topic_filter":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional keyword to filter dataset titles (e.g. \"trade\", \"energy\", \"migration\"). Case-insensitive substring match on title and code. If omitted, returns the first 50 datasets from the catalogue."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_countries","description":"Compare one Eurostat dataset across multiple countries for a given year.\n\nArgs:\n    dataset_code: Eurostat dataset identifier (e.g. \"nama_10_gdp\").\n                  Use search_datasets to find the right code.\n    geo_codes: List of ISO 3166-1 alpha-2 or Eurostat geo codes\n               (e.g. [\"NO\", \"SE\", \"DE\", \"FR\"]).\n    year: The year to compare (e.g. 2022).\n    unit: Unit filter code (e.g. \"CP_MEUR\"). Optional.\n\nReturns:\n    Dict with dataset_code, year, and values mapping geo_code to numeric value.\n    Values may be null if data is unavailable for a country/year pair.","input_schema":{"additionalProperties":false,"properties":{"dataset_code":{"description":"Eurostat dataset identifier (e.g. \"nama_10_gdp\"). Use search_datasets to find the right code.","type":"string"},"geo_codes":{"description":"List of ISO 3166-1 alpha-2 or Eurostat geo codes (e.g. [\"NO\", \"SE\", \"DE\", \"FR\"]).","items":{"type":"string"},"type":"array"},"year":{"description":"The year to compare (e.g. 2022).","type":"integer"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Unit filter code (e.g. \"CP_MEUR\"). Optional."}},"required":["dataset_code","geo_codes","year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"country_profile","description":"Get a snapshot of key economic and demographic indicators for a European country.\n\nFetches GDP, employment rate, and population in parallel from Eurostat.\nData sourced from Eurostat (CC-BY-4.0), free to use.\n\nArgs:\n    geo_code: ISO 3166-1 alpha-2 country code (e.g. \"NO\", \"DE\", \"FR\", \"SE\").\n              Also accepts EU aggregates like \"EU27_2020\", \"EA20\".\n    year: Specific year to retrieve. Defaults to most recent available.\n\nReturns:\n    Country profile with GDP (million EUR), employment rate (%), and population.\n    Any field may be null if Eurostat has no data for that country/year combination.","input_schema":{"additionalProperties":false,"properties":{"geo_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. \"NO\", \"DE\", \"FR\", \"SE\"). Also accepts EU aggregates like \"EU27_2020\", \"EA20\".","type":"string"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Specific year to retrieve. Defaults to most recent available."}},"required":["geo_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/famous-quotes","name":"Famous Quotes","description":"Famous quotes collection — search by author, keyword, or category, get random quotes.","category":"Reference","source":"Curated public-domain collection","endpoint":"/mcp/famous-quotes/","tools":[{"name":"get_random_quote","description":"Get a random famous quote.\n\nReturns a quote with author name and category. Optionally filter by category.","input_schema":{"additionalProperties":false,"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category (e.g. wisdom, science, humor). Omit for any category."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_quotes","description":"Search for famous quotes by keyword.\n\nSearches across quote text, author names, and categories. Case-insensitive.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches quote text, author name, or category.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 10, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_quotes_by_author","description":"Get all quotes by a specific author.\n\nPartial name matching — e.g. \"einstein\" matches \"Albert Einstein\".","input_schema":{"additionalProperties":false,"properties":{"author":{"description":"Author name (case-insensitive, partial match).","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 10, max: 100)."}},"required":["author"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_categories","description":"List all available quote categories.\n\nReturns the category names that can be used to filter random quotes.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_authors","description":"List all authors in the quotes database.\n\nReturns author names that can be used to look up quotes by author.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/alpha-vantage","name":"Alpha Vantage (Finance)","description":"Stock quotes, historical OHLCV, FX rates, and crypto prices.","category":"Finance","source":"Alpha Vantage","endpoint":"/mcp/alpha-vantage/","tools":[{"name":"get_price","description":"Get the latest market quote for a stock or ETF.\n\nUses Alpha Vantage (requires ALPHA_VANTAGE_API_KEY env var).\n\nArgs:\n    ticker: Stock ticker symbol (e.g. \"AAPL\", \"TSLA\", \"SPY\").\n\nReturns:\n    Latest price, open/high/low, volume, previous close, and change %.","input_schema":{"additionalProperties":false,"properties":{"ticker":{"description":"Stock ticker symbol (e.g. \"AAPL\", \"TSLA\", \"SPY\").","type":"string"}},"required":["ticker"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_historical","description":"Get historical OHLCV data for a stock or ETF.\n\nArgs:\n    ticker: Stock ticker symbol (e.g. \"AAPL\", \"MSFT\").\n    start: Start date in YYYY-MM-DD format (inclusive).\n    end: End date in YYYY-MM-DD format (inclusive).\n    interval: Data interval — \"daily\", \"weekly\", or \"monthly\" (default: \"daily\").\n\nReturns:\n    Symbol, interval, count, and list of OHLCV entries (open, high, low, close, volume).","input_schema":{"additionalProperties":false,"properties":{"ticker":{"description":"Stock ticker symbol (e.g. \"AAPL\", \"MSFT\").","type":"string"},"start":{"description":"Start date in YYYY-MM-DD format (inclusive).","type":"string"},"end":{"description":"End date in YYYY-MM-DD format (inclusive).","type":"string"},"interval":{"default":"daily","description":"Data interval — \"daily\", \"weekly\", or \"monthly\" (default: \"daily\").","type":"string"}},"required":["ticker","start","end"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_fx_rate","description":"Get the daily exchange rate between two currencies.\n\nUses ECB reference rates (updated daily ~16:00 CET on business days).\nSupports all major currencies. Cross-rates are derived from EUR-based data.\n\nArgs:\n    base: Base currency ISO 4217 code (e.g. \"USD\", \"EUR\", \"GBP\").\n    quote: Quote currency ISO 4217 code (e.g. \"NOK\", \"JPY\", \"CHF\").\n\nReturns:\n    Exchange rate (1 base = N quote), with the ECB reference date.","input_schema":{"additionalProperties":false,"properties":{"base":{"description":"Base currency ISO 4217 code (e.g. \"USD\", \"EUR\", \"GBP\").","type":"string"},"quote":{"description":"Quote currency ISO 4217 code (e.g. \"NOK\", \"JPY\", \"CHF\").","type":"string"}},"required":["base","quote"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_crypto_price","description":"Get the current price and market data for a cryptocurrency.\n\nAccepts common ticker symbols (e.g. \"BTC\", \"ETH\", \"SOL\") or CoinGecko IDs\n(e.g. \"bitcoin\", \"ethereum\"). Prices are in USD via CoinGecko's free API.\n\nArgs:\n    symbol: Cryptocurrency symbol (e.g. \"BTC\") or CoinGecko ID (e.g. \"bitcoin\").\n\nReturns:\n    Current USD price, market cap, and 24-hour change percentage.","input_schema":{"additionalProperties":false,"properties":{"symbol":{"description":"Cryptocurrency symbol (e.g. \"BTC\") or CoinGecko ID (e.g. \"bitcoin\").","type":"string"}},"required":["symbol"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/aviationstack","name":"AviationStack (Flight Status)","description":"Live flight tracking — departures, arrivals, delays, and airport status.","category":"Transport","source":"AviationStack, OpenSky Network","endpoint":"/mcp/aviationstack/","tools":[{"name":"get_flight_status","description":"Get the current status of a flight by IATA flight number.\n\nArgs:\n    flight_iata: IATA flight number, e.g. \"BA123\" or \"SK451\".\n    date: Date in YYYY-MM-DD format. Defaults to today's flights.\n\nReturns:\n    List of matching flights with status, gate, delay, and times.\n    Requires AVIATIONSTACK_API_KEY to be configured.","input_schema":{"additionalProperties":false,"properties":{"flight_iata":{"description":"IATA flight number, e.g. \"BA123\" or \"SK451\".","type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date in YYYY-MM-DD format. Defaults to today's flights."}},"required":["flight_iata"],"type":"object"},"output_schema":{"properties":{"result":{"items":{"additionalProperties":true,"type":"object"},"type":"array"}},"required":["result"],"type":"object","x-fastmcp-wrap-result":true}},{"name":"search_flights","description":"Search scheduled flights between two airports.\n\nArgs:\n    origin: Departure airport IATA code, e.g. \"OSL\" (Oslo) or \"LHR\" (London Heathrow).\n    destination: Arrival airport IATA code, e.g. \"JFK\" (New York).\n    date: Date in YYYY-MM-DD format. Defaults to today's flights.\n\nReturns:\n    List of scheduled flights with flight numbers, times, and status.\n    Requires AVIATIONSTACK_API_KEY to be configured.","input_schema":{"additionalProperties":false,"properties":{"origin":{"description":"Departure airport IATA code, e.g. \"OSL\" (Oslo) or \"LHR\" (London Heathrow).","type":"string"},"destination":{"description":"Arrival airport IATA code, e.g. \"JFK\" (New York).","type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date in YYYY-MM-DD format. Defaults to today's flights."}},"required":["origin","destination"],"type":"object"},"output_schema":{"properties":{"result":{"items":{"additionalProperties":true,"type":"object"},"type":"array"}},"required":["result"],"type":"object","x-fastmcp-wrap-result":true}},{"name":"get_airport_departures","description":"Get the live departure board for an airport.\n\nArgs:\n    airport_iata: Airport IATA code, e.g. \"OSL\" (Oslo Gardermoen) or \"AMS\" (Amsterdam Schiphol).\n    window_hours: Hours ahead to include (1–12, default 2).\n\nReturns:\n    List of upcoming departures with flight, destination, times, gate, and delay.\n    Requires AVIATIONSTACK_API_KEY to be configured.","input_schema":{"additionalProperties":false,"properties":{"airport_iata":{"description":"Airport IATA code, e.g. \"OSL\" (Oslo Gardermoen) or \"AMS\" (Amsterdam Schiphol).","type":"string"},"window_hours":{"default":2,"description":"Hours ahead to include (1–12, default 2).","type":"integer"}},"required":["airport_iata"],"type":"object"},"output_schema":{"properties":{"result":{"items":{"additionalProperties":true,"type":"object"},"type":"array"}},"required":["result"],"type":"object","x-fastmcp-wrap-result":true}},{"name":"get_aircraft_position","description":"Get the live ADS-B position of an aircraft by ICAO 24-bit transponder address.\n\nThe ICAO24 address is a 6-character hexadecimal string unique to each aircraft\n(e.g. \"400f86\" for a British Airways 777). It can be found on sites like\nFlightradar24 or OpenSky Explorer.\n\nArgs:\n    icao24: 6-character hex transponder address, e.g. \"400f86\".\n\nReturns:\n    Live position with latitude, longitude, altitude, speed, and heading.\n    Returns not_found: true if the aircraft is not currently transmitting.\n    Uses OpenSky Network (free, no API key required).","input_schema":{"additionalProperties":false,"properties":{"icao24":{"description":"6-character hex transponder address, e.g. \"400f86\".","type":"string"}},"required":["icao24"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/companies-house","name":"Companies House (UK)","description":"UK Companies House — company search, profiles, officers, and filing history.","category":"Business","source":"UK Companies House","endpoint":"/mcp/companies-house/","tools":[{"name":"search_uk_companies","description":"Search for UK companies by name on Companies House.\n\nCompanies House is the UK's official company registry, covering 5+ million\ncompanies including PLCs, LTDs, LLPs, and foreign branches registered in\nEngland, Wales, Scotland, and Northern Ireland.\n\nArgs:\n    query: Company name to search for.\n    limit: Number of results (1–100, default 10).\n\nReturns:\n    Dict with 'count' and 'companies' list. Each result includes company_number,\n    title, company_status, company_type, date_of_creation, and address_snippet.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Company name to search for (e.g. \"Tesco\", \"Barclays\", \"Rolls-Royce\").","type":"string"},"limit":{"default":10,"description":"Number of results to return (1–100, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"lookup_uk_company","description":"Look up a UK company by its Companies House company number.\n\nReturns the full company profile including name, status, type, SIC codes,\nregistered address, jurisdiction, and previous names.\n\nCompany numbers are 8 characters — numeric for English/Welsh companies,\nprefixed with SC (Scotland), NI (Northern Ireland), or other codes.\n\nArgs:\n    company_number: The Companies House company number.\n\nReturns:\n    Dict with full company profile, or {\"error\": \"not_found\"} if not found.","input_schema":{"additionalProperties":false,"properties":{"company_number":{"description":"UK company number (e.g. \"00445790\" for Tesco PLC, \"SC123456\" for a Scottish company).","type":"string"}},"required":["company_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_uk_company_officers","description":"List directors, secretaries, and other officers for a UK company.\n\nReturns current and past officers with their roles, appointment dates,\nnationality, and occupation. Resigned officers include their resignation date.\n\nArgs:\n    company_number: The Companies House company number.\n    limit: Number of results (1–100, default 20).\n\nReturns:\n    Dict with 'company_number', 'count', and 'officers' list.","input_schema":{"additionalProperties":false,"properties":{"company_number":{"description":"UK company number.","type":"string"},"limit":{"default":20,"description":"Number of officers to return (1–100, default 20).","type":"integer"}},"required":["company_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_uk_company_filings","description":"List filing history for a UK company.\n\nReturns recent filings including accounts, annual returns, officer changes,\nand other regulatory submissions to Companies House.\n\nArgs:\n    company_number: The Companies House company number.\n    category: Optional filter by filing category.\n    limit: Number of results (1–100, default 20).\n\nReturns:\n    Dict with 'company_number', 'count', and 'filings' list.","input_schema":{"additionalProperties":false,"properties":{"company_number":{"description":"UK company number.","type":"string"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by filing category: \"accounts\", \"officers\", \"address\", \"annual-return\", \"capital\", \"change-of-name\", \"incorporation\", \"liquidation\", \"miscellaneous\", \"mortgage\", \"resolution\"."},"limit":{"default":20,"description":"Number of filings to return (1–100, default 20).","type":"integer"}},"required":["company_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/commodity-prices","name":"Commodity Prices","description":"Real-time and historical commodity prices — oil, gas, gold, silver, copper, wheat, and 20+ more.","category":"Economics","source":"Federal Reserve Economic Data (FRED)","endpoint":"/mcp/commodity-prices/","tools":[{"name":"get_commodity_price","description":"Get price data for a commodity.\n\nReturns historical price observations from FRED for the specified commodity.\nCovers energy (oil, gas), precious metals (gold, silver, platinum),\nindustrial metals (copper, aluminum, nickel), agricultural products\n(wheat, corn, coffee, cocoa), livestock, and forestry.\n\nCommon commodities:\n- crude-oil-wti — WTI Crude Oil (daily, USD/barrel)\n- crude-oil-brent — Brent Crude Oil (daily, USD/barrel)\n- natural-gas — Henry Hub Natural Gas (daily, USD/MMBtu)\n- gold — Gold London PM Fix (daily, USD/troy oz)\n- silver — Silver London Fix (daily, USD/troy oz)\n- copper — Copper (monthly, USD/metric ton)\n- wheat — Wheat (monthly, USD/metric ton)\n- corn — Corn/Maize (monthly, USD/metric ton)\n- coffee — Coffee Arabica (monthly, USD/kg)","input_schema":{"additionalProperties":false,"properties":{"commodity":{"description":"Commodity slug. Examples: \"gold\", \"crude-oil-wti\", \"crude-oil-brent\", \"natural-gas\", \"silver\", \"copper\", \"wheat\", \"corn\", \"coffee\". Use list_commodities to see all available options.","type":"string"},"observation_start":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date (YYYY-MM-DD). Omit to fetch from series start."},"observation_end":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date (YYYY-MM-DD). Omit to fetch to latest available."},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Aggregate to lower frequency: \"d\" (daily), \"w\" (weekly), \"m\" (monthly), \"q\" (quarterly), \"a\" (annual)."},"limit":{"default":100,"description":"Maximum observations to return (default 100, max 100000).","type":"integer"}},"required":["commodity"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_commodities","description":"List all available commodities.\n\nReturns the full catalog of commodities with their names, units,\ncategories, and underlying FRED series IDs. Use this to discover\nvalid commodity slugs for get_commodity_price.","input_schema":{"additionalProperties":false,"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category: \"energy\", \"precious-metals\", \"industrial-metals\", \"agricultural\", \"livestock\", \"forestry\". Omit for all."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_commodity_categories","description":"List commodity categories with counts.\n\nReturns the available categories (energy, precious-metals,\nindustrial-metals, agricultural, livestock, forestry) and how\nmany commodities each contains.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_commodity_prices","description":"Compare prices for multiple commodities aligned on a common time axis.\n\nFetches price data for all specified commodities and aligns observations\nby date — only dates where all commodities have values are included.\nUseful for correlation analysis and cross-commodity comparisons.\n\nExample: compare_commodity_prices([\"crude-oil-wti\", \"natural-gas\"], frequency=\"m\")","input_schema":{"additionalProperties":false,"properties":{"commodities":{"description":"List of 2-10 commodity slugs to compare (e.g. [\"gold\", \"silver\"]).","items":{"type":"string"},"type":"array"},"observation_start":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date (YYYY-MM-DD) applied to all commodities."},"observation_end":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date (YYYY-MM-DD) applied to all commodities."},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Aggregate to common frequency before aligning: \"m\" (monthly), \"q\" (quarterly), \"a\" (annual)."}},"required":["commodities"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/fred","name":"FRED (Federal Reserve)","description":"U.S. economic time series — GDP, inflation, interest rates, and 800k+ indicators.","category":"Economics","source":"Federal Reserve Economic Data","endpoint":"/mcp/fred/","tools":[{"name":"get_series","description":"Get economic time series observations from FRED.\n\nFRED (Federal Reserve Bank of St. Louis) hosts 800,000+ economic time\nseries from 100+ sources: BLS, BEA, Census, Federal Reserve, IMF, OECD,\nWorld Bank, and more. This is the primary tool for fetching data when\nyou already know the series ID.\n\nCommon series IDs:\n- FEDFUNDS — Federal Funds Rate (monthly, %)\n- CPIAUCSL — CPI All Urban Consumers (monthly, index)\n- UNRATE — Civilian Unemployment Rate (monthly, %)\n- GDP — Gross Domestic Product (quarterly, billions USD)\n- DGS10 — 10-Year Treasury Yield (daily, %)\n- DGS2 — 2-Year Treasury Yield (daily, %)\n- T10Y2Y — 10-Year minus 2-Year Treasury spread (daily, %)\n- M2SL — M2 Money Stock (monthly, billions USD)\n- MORTGAGE30US — 30-Year Fixed Mortgage Rate (weekly, %)\n- DEXUSEU — USD/EUR exchange rate (daily)\n- PAYEMS — Total Nonfarm Payrolls (monthly, thousands)\n\nArgs:\n    series_id: FRED series identifier (e.g. \"FEDFUNDS\", \"UNRATE\", \"GDP\").\n    observation_start: Start date (YYYY-MM-DD). If omitted, fetches from the series start.\n    observation_end: End date (YYYY-MM-DD). If omitted, fetches to the latest available observation.\n    frequency: Aggregate to lower frequency. Options: \"d\" (daily), \"w\" (weekly), \"bw\" (biweekly),\n               \"m\" (monthly), \"q\" (quarterly), \"sa\" (semiannual), \"a\" (annual).\n    aggregation_method: How to aggregate when changing frequency. Options: \"avg\" (default), \"sum\", \"eop\".\n    limit: Maximum observations to return (default 100, max 100000).\n\nReturns:\n    series_id, title, units, frequency, seasonal_adjustment, last_updated,\n    observation_count, and observations list of {\"date\": \"YYYY-MM-DD\", \"value\": float}.","input_schema":{"additionalProperties":false,"properties":{"series_id":{"description":"FRED series identifier (e.g. \"FEDFUNDS\", \"UNRATE\", \"GDP\").","type":"string"},"observation_start":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date (YYYY-MM-DD). If omitted, fetches from the series start."},"observation_end":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date (YYYY-MM-DD). If omitted, fetches to the latest available observation."},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Aggregate to lower frequency. Options: \"d\" (daily), \"w\" (weekly), \"bw\" (biweekly), \"m\" (monthly), \"q\" (quarterly), \"sa\" (semiannual), \"a\" (annual)."},"aggregation_method":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"How to aggregate when changing frequency. Options: \"avg\" (default), \"sum\", \"eop\"."},"limit":{"default":100,"description":"Maximum observations to return (default 100, max 100000).","type":"integer"}},"required":["series_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_series","description":"Search FRED for economic time series matching a query.\n\nSearches across series titles, notes, and tags. Returns ranked results\nsorted by relevance. Use this when you don't know the series ID — then\nuse get_series() or get_series_info() with the returned series_id.\n\nExample queries:\n- \"federal funds rate\"\n- \"consumer price index urban\"\n- \"unemployment rate\"\n- \"GDP quarterly\"\n- \"Norway GDP\" (FRED includes international series from IMF/OECD/World Bank)\n- \"yield curve spread\"\n- \"housing starts\"\n\nArgs:\n    query: Search terms to match against FRED series names and notes.\n    limit: Maximum results to return (default 20, max 1000).\n\nReturns:\n    count and list of matching series with series_id, title, frequency, units,\n    seasonal_adjustment, date range, last_updated, popularity, and a truncated notes field.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms to match against FRED series names and notes.","type":"string"},"limit":{"default":20,"description":"Maximum results to return (default 20, max 1000).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_series_info","description":"Get metadata for a FRED series without fetching observations.\n\nUseful for verifying a series ID and understanding its characteristics\nbefore fetching data: units, frequency, date range, and whether it is\nseasonally adjusted.\n\nArgs:\n    series_id: FRED series identifier (e.g. \"FEDFUNDS\", \"UNRATE\", \"GDP\").\n\nReturns:\n    Full metadata: series_id, title, frequency, units, seasonal_adjustment,\n    observation_start, observation_end, last_updated, popularity, and notes.","input_schema":{"additionalProperties":false,"properties":{"series_id":{"description":"FRED series identifier (e.g. \"FEDFUNDS\", \"UNRATE\", \"GDP\").","type":"string"}},"required":["series_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_category","description":"Browse FRED's category hierarchy.\n\nFRED organizes its 800,000+ series into a tree of categories covering\ndomains like Money, Banking & Finance; National Accounts; Prices; Labor\nMarket; International Data; and more. Use this tool to discover series\nby topic area. category_id=0 returns the top-level categories.\n\nArgs:\n    category_id: Integer category ID. Default 0 returns the root categories.\n                 Pass a child category ID to drill down. IDs for common\n                 top-level categories:\n                 - 32991: Money, Banking & Finance\n                 - 10: National Accounts\n                 - 9: Population, Employment, & Labor Markets\n                 - 22: Prices\n                 - 3008: U.S. Regional Data\n                 - 32263: Business Cycles\n\nReturns:\n    Category name, parent_id, children_count, and list of children each with id, name, parent_id.","input_schema":{"additionalProperties":false,"properties":{"category_id":{"default":0,"description":"Integer category ID. Default 0 returns the root categories. Pass a child category ID to drill down. IDs for common top-level categories: - 32991: Money, Banking & Finance - 10: National Accounts - ...","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_series","description":"Fetch multiple FRED series aligned to a common time axis.\n\nRetrieves all requested series and returns their observations aligned\nby date — only dates where all series have a value are included.\nIdeal for correlation analysis, charting, and comparing economic indicators.\n\nExample use cases:\n- compare_series([\"FEDFUNDS\", \"DGS10\", \"DGS2\"]) — Fed Funds vs. yield curve\n- compare_series([\"UNRATE\", \"CPIAUCSL\"], frequency=\"q\") — unemployment vs. CPI quarterly\n- compare_series([\"GDP\", \"PAYEMS\"], observation_start=\"2020-01-01\") — GDP vs. payrolls post-COVID\n\nArgs:\n    series_ids: List of 2–10 FRED series IDs to compare.\n    observation_start: Start date (YYYY-MM-DD) applied to all series.\n    observation_end: End date (YYYY-MM-DD) applied to all series.\n    frequency: Aggregate all series to this frequency before aligning (e.g. \"q\" for quarterly, \"a\" for annual).\n\nReturns:\n    series metadata dict (title, units, frequency per series), aligned_observation_count,\n    and observations list where each row is {\"date\": \"YYYY-MM-DD\", \"<series_id>\": float, ...}.","input_schema":{"additionalProperties":false,"properties":{"series_ids":{"description":"List of 2–10 FRED series IDs to compare.","items":{"type":"string"},"type":"array"},"observation_start":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date (YYYY-MM-DD) applied to all series."},"observation_end":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date (YYYY-MM-DD) applied to all series."},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Aggregate all series to this frequency before aligning (e.g. \"q\" for quarterly, \"a\" for annual)."}},"required":["series_ids"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/gbfs","name":"GBFS Bikeshare","description":"Real-time bike and scooter sharing availability across 30+ city systems worldwide — stations, bikes available, docks, and system info via the open GBFS standard.","category":"Transport","source":"GBFS (General Bikeshare Feed Specification) — city operators","endpoint":"/mcp/gbfs/","tools":[{"name":"list_systems","description":"List available bikeshare/scooter systems from the catalog.\n\nReturns a curated list of 30+ major city bike/scooter sharing systems\nworldwide that publish GBFS (General Bikeshare Feed Specification) data.\nFilter by country or search by name/city/operator.\n\nUse this first to discover system_ids, then call get_stations or\nget_system_info with the chosen system_id.\n\nArgs:\n    country: 2-letter ISO country code filter (e.g. \"NO\" for Norway).\n    query: Search text matching name, city, or operator name.\n    limit: Maximum systems to return (1-100).\n\nReturns:\n    List of systems with system_id, name, city, country, operator.","input_schema":{"additionalProperties":false,"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code to filter systems (e.g. \"NO\", \"US\", \"GB\", \"FR\")."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Text search across system name, city, and operator (e.g. 'Oslo', 'Lime', 'Citi Bike')."},"limit":{"default":50,"description":"Maximum systems to return (1-100, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_system_info","description":"Get metadata for a specific bikeshare system.\n\nFetches the system_information.json GBFS feed for the system and\nreturns operator details, timezone, contact info, and available feeds.\n\nArgs:\n    system_id: System identifier from list_systems (e.g. \"oslobysykkel\").\n\nReturns:\n    System metadata including name, operator, URL, timezone, and\n    a list of available GBFS feed names.","input_schema":{"additionalProperties":false,"properties":{"system_id":{"description":"System identifier from list_systems (e.g. \"oslobysykkel\", \"lyft_nyc\", \"divvy\").","type":"string"}},"required":["system_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_stations","description":"Get stations with real-time bike/dock availability for a bikeshare system.\n\nMerges static station info (name, location, capacity) with live status\n(bikes available, docks available, vehicle types). Returns all stations\nor filters by name/address text search.\n\nUse get_station_status for detailed info on a single station.\n\nArgs:\n    system_id: System identifier (e.g. \"oslobysykkel\").\n    query: Optional text filter on station name or address.\n    limit: Maximum stations to return (1-100, default 50).\n\nReturns:\n    Stations with name, lat/lon, capacity, bikes_available, docks_available,\n    is_renting, is_returning, last_reported timestamp.","input_schema":{"additionalProperties":false,"properties":{"system_id":{"description":"System identifier from list_systems (e.g. \"oslobysykkel\", \"lyft_nyc\").","type":"string"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Text filter on station name or address (e.g. 'Central Station', 'Main St')."},"limit":{"default":50,"description":"Maximum stations to return (1-100, default 50).","type":"integer"}},"required":["system_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_station_status","description":"Get real-time availability for a specific bikeshare station.\n\nReturns live data including bikes available, docks available,\noperational status (is_renting, is_returning), and last update timestamp.\nAlso includes static info (name, address, coordinates, capacity).\n\nArgs:\n    system_id: System identifier (e.g. \"oslobysykkel\").\n    station_id: Station identifier from get_stations results.\n\nReturns:\n    Station details with name, address, lat/lon, capacity, bikes_available,\n    docks_available, is_installed, is_renting, is_returning, last_reported.","input_schema":{"additionalProperties":false,"properties":{"system_id":{"description":"System identifier from list_systems (e.g. \"oslobysykkel\", \"lyft_nyc\").","type":"string"},"station_id":{"description":"Station identifier from get_stations results.","type":"string"}},"required":["system_id","station_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/gbif","name":"GBIF Biodiversity","description":"Global biodiversity data — species occurrences, taxonomy, and datasets from the Global Biodiversity Information Facility.","category":"Science","source":"GBIF (Global Biodiversity Information Facility)","endpoint":"/mcp/gbif/","tools":[{"name":"search_species","description":"Search the GBIF taxonomy backbone for species, genera, families, or higher taxa.\n\nCovers 2.4M+ species from the GBIF backbone taxonomy — the most comprehensive\nglobal species catalogue. Returns scientific names, common names, taxonomic hierarchy,\nand occurrence counts. Data aggregated from 2,100+ institutions worldwide.\n\nArgs:\n    query: Species name or keyword to search.\n    rank: Taxonomic rank filter.\n    habitat: Habitat filter.\n    limit: Number of results (1–50, default 20).\n\nReturns:\n    List of matching taxa with scientific name, common name, classification, and\n    occurrence count. Use the key with get_species or search_occurrences for details.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Species name or keyword (e.g. \"Panthera leo\", \"orchid\", \"Atlantic salmon\", \"pine\").","type":"string"},"rank":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Taxonomic rank filter: SPECIES, GENUS, FAMILY, ORDER, CLASS, PHYLUM, KINGDOM. Omit for all."},"habitat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Habitat filter: MARINE, FRESHWATER, TERRESTRIAL. Omit for all."},"limit":{"default":20,"description":"Number of results (1–50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_species","description":"Get full taxonomic details for a species by its GBIF taxon key.\n\nReturns the complete classification hierarchy from kingdom to species,\nplus status and occurrence count.\n\nArgs:\n    taxon_key: GBIF taxon key (numeric).\n\nReturns:\n    Full taxonomic record. Returns found=false if key not found.","input_schema":{"additionalProperties":false,"properties":{"taxon_key":{"description":"GBIF taxon key (numeric). Found in search_species results.","type":"string"}},"required":["taxon_key"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_occurrences","description":"Search 2.4B+ biodiversity occurrence records — species sightings, specimens, and observations.\n\nEach record is a documented observation of a species at a specific place and time.\nSources include museum specimens, citizen science (eBird, iNaturalist), research surveys,\nand automated monitoring. Covers all of life — animals, plants, fungi, bacteria.\n\nArgs:\n    taxon_key: GBIF taxon key. Use search_species to find it.\n    scientific_name: Scientific name as alternative to taxon_key.\n    country: ISO country code to filter by location.\n    year_range: Year or year range filter.\n    basis_of_record: Filter by observation type.\n    has_coordinate: Only records with GPS coordinates.\n    limit: Number of results (1–50, default 20).\n\nReturns:\n    List of occurrence records with species, location, date, observer, and source dataset.","input_schema":{"additionalProperties":false,"properties":{"taxon_key":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"GBIF taxon key (numeric). Use search_species to find keys. Provide this or scientific_name."},"scientific_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Scientific name (e.g. \"Panthera leo\"). Alternative to taxon_key."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code (e.g. 'NO' for Norway, 'US', 'GB')."},"year_range":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Year or year range (e.g. '2023' or '2020,2024' for a range)."},"basis_of_record":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Record type: HUMAN_OBSERVATION, PRESERVED_SPECIMEN, MACHINE_OBSERVATION, FOSSIL_SPECIMEN, LIVING_SPECIMEN."},"has_coordinate":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Filter to records with GPS coordinates."},"limit":{"default":20,"description":"Number of results (1–50, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_datasets","description":"Search 100K+ biodiversity datasets published through GBIF.\n\nDatasets are collections of occurrence records or species checklists published by\ninstitutions, museums, citizen science platforms, and research projects.\n\nArgs:\n    query: Search term for dataset titles and descriptions.\n    type_filter: Filter by dataset type.\n    publishing_country: Filter by country of the publishing organization.\n    limit: Number of results (1–50, default 20).\n\nReturns:\n    List of datasets with title, description, type, publisher, and record count.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Dataset search term (e.g. \"birds Norway\", \"marine mammals\", \"eBird\", \"herbarium\").","type":"string"},"type_filter":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Dataset type: OCCURRENCE, CHECKLIST, SAMPLING_EVENT, METADATA."},"publishing_country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 code of the publishing country."},"limit":{"default":20,"description":"Number of results (1–50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_species_distribution","description":"Get the global distribution of a species — occurrence counts by country.\n\nShows which countries a species has been observed in and how many records exist.\nUseful for understanding species range, conservation status, and biodiversity hotspots.\n\nArgs:\n    taxon_key: GBIF taxon key (numeric).\n\nReturns:\n    List of countries with occurrence counts, sorted by count (highest first).","input_schema":{"additionalProperties":false,"properties":{"taxon_key":{"description":"GBIF taxon key (numeric). Use search_species to find it.","type":"string"}},"required":["taxon_key"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/geonames","name":"GeoNames","description":"Geographical database — place names, coordinates, populations, and administrative divisions.","category":"Geography","source":"GeoNames.org","endpoint":"/mcp/geonames/","tools":[{"name":"search_cities","description":"Search for cities by name.\n\nArgs:\n    query: City name or partial name to search for.\n    country_code: Optional ISO-3166 country code to restrict the search (e.g. 'NO', 'US').\n    limit: Maximum number of results (default 10).\n\nReturns:\n    Dictionary with 'data' list of matching cities, each with name, country_code,\n    latitude, longitude, population, timezone, and geonameid.","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"limit":{"default":10,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_city","description":"Get a city by its GeoNames ID.\n\nArgs:\n    geonameid: The GeoNames ID of the city.\n\nReturns:\n    Dictionary with city details, or an error if not found.","input_schema":{"additionalProperties":false,"properties":{"geonameid":{"type":"integer"}},"required":["geonameid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_countries","description":"List all countries.\n\nReturns:\n    Dictionary with 'data' list of all countries, each with iso_code, country_name,\n    capital, population, continent, currency_code, and languages.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_country","description":"Get a country by its ISO-3166 code.\n\nArgs:\n    iso_code: Two-letter ISO-3166 country code (e.g. 'NO', 'US', 'DE').\n\nReturns:\n    Dictionary with country details, or an error if not found.","input_schema":{"additionalProperties":false,"properties":{"iso_code":{"type":"string"}},"required":["iso_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_timezones","description":"Search for timezones by ID or filter by country.\n\nArgs:\n    query: Optional partial timezone ID to search for (e.g. 'Europe').\n    country_code: Optional ISO-3166 country code to filter by (e.g. 'NO').\n    limit: Maximum number of results (default 10).\n\nReturns:\n    Dictionary with 'data' list of matching timezones, each with timezone_id,\n    country_code, gmt_offset_jan, dst_offset_jul, and raw_offset.","input_schema":{"additionalProperties":false,"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"limit":{"default":10,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_timezone","description":"Get a timezone by its IANA timezone ID.\n\nArgs:\n    timezone_id: IANA timezone ID (e.g. 'Europe/Oslo', 'America/New_York').\n\nReturns:\n    Dictionary with timezone details, or an error if not found.","input_schema":{"additionalProperties":false,"properties":{"timezone_id":{"type":"string"}},"required":["timezone_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/github","name":"GitHub","description":"Public GitHub data — repositories, issues, pull requests, and user profiles.","category":"Software","source":"GitHub API","endpoint":"/mcp/github/","tools":[{"name":"search_repos","description":"Search public GitHub repositories by keyword.\n\nReturns up to 10 repositories ranked by star count.\n\nArgs:\n    query: Search terms (e.g. \"machine learning framework\", \"http client\").\n    language: Filter by programming language (e.g. \"python\", \"typescript\"). Optional.\n    stars_min: Minimum star count filter (e.g. 100). Optional.\n\nReturns:\n    List of repositories with full_name, description, stars, forks, language,\n    license (SPDX id), last_pushed (ISO 8601), topics, and url.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms (e.g. \"machine learning framework\", \"http client\").","type":"string"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by programming language (e.g. \"python\", \"typescript\"). Optional."},"stars_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Minimum star count filter (e.g. 100). Optional."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_readme","description":"Fetch and decode the README for a GitHub repository.\n\nUseful for understanding what a project does before recommending it.\n\nArgs:\n    owner: Repository owner (user or org), e.g. \"fastapi\".\n    repo: Repository name, e.g. \"fastapi\".\n\nReturns:\n    Object with owner, repo, and content (raw README text, typically Markdown).","input_schema":{"additionalProperties":false,"properties":{"owner":{"description":"Repository owner (user or org), e.g. \"fastapi\".","type":"string"},"repo":{"description":"Repository name, e.g. \"fastapi\".","type":"string"}},"required":["owner","repo"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_open_issues","description":"List open issues for a public GitHub repository.\n\nPull requests are excluded. Returns up to 30 issues, newest first.\n\nArgs:\n    owner: Repository owner (user or org), e.g. \"django\".\n    repo: Repository name, e.g. \"django\".\n    labels: Filter by label names (e.g. [\"bug\", \"help wanted\"]). Optional.\n\nReturns:\n    List of issues with number, title, state, author, labels, created_at,\n    updated_at, and url.","input_schema":{"additionalProperties":false,"properties":{"owner":{"description":"Repository owner (user or org), e.g. \"django\".","type":"string"},"repo":{"description":"Repository name, e.g. \"django\".","type":"string"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter by label names (e.g. [\"bug\", \"help wanted\"]). Optional."}},"required":["owner","repo"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_repo_stats","description":"Get metadata and statistics for a specific public GitHub repository.\n\nArgs:\n    owner: Repository owner (user or org), e.g. \"astral-sh\".\n    repo: Repository name, e.g. \"ruff\".\n\nReturns:\n    Repository metadata: full_name, description, stars, forks, language,\n    license (SPDX id), last_pushed (ISO 8601), topics, and url.","input_schema":{"additionalProperties":false,"properties":{"owner":{"description":"Repository owner (user or org), e.g. \"astral-sh\".","type":"string"},"repo":{"description":"Repository name, e.g. \"ruff\".","type":"string"}},"required":["owner","repo"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/gleif","name":"GLEIF (LEI)","description":"Legal Entity Identifier (LEI) lookup — corporate identity, ownership, and registration.","category":"Legal","source":"GLEIF","endpoint":"/mcp/gleif/","tools":[{"name":"search_entities","description":"Search GLEIF for registered legal entities by name, registration number, or jurisdiction.\n\nGLEIF (Global Legal Entity Identifier Foundation) covers 2M+ legal entities in 200+\ncountries. Each entity is identified by a 20-character LEI (ISO 17442) — the global\nstandard mandated for financial reporting under EMIR, MiFID II, Dodd-Frank, and DORA.\n\nAt least one filter parameter must be provided.\n\nArgs:\n    name: Legal name or partial name to search for (e.g. \"Apple Inc\", \"Deutsche Bank\").\n    registration_number: Company registration number from the national registry.\n    jurisdiction: ISO 3166-1 alpha-2 country code (e.g. \"US\", \"DE\", \"NO\", \"GB\").\n    status: Registration status filter — \"ISSUED\" (active), \"LAPSED\" (expired renewal),\n            \"MERGED\", \"RETIRED\", \"PENDING_TRANSFER\", or \"ANNULLED\".\n    limit: Number of results to return (1–50, default 10).\n\nReturns:\n    Dict with 'count' and 'entities' list. Each entity includes lei, name, other_names,\n    jurisdiction, registration_number, registered_address, legal_form, status,\n    next_renewal date, and managing_lou (Local Operating Unit).","input_schema":{"additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Legal name or partial name to search for (e.g. \"Apple Inc\", \"Deutsche Bank\")."},"registration_number":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Company registration number from the national registry."},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code (e.g. \"US\", \"DE\", \"NO\", \"GB\")."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Registration status filter — \"ISSUED\" (active), \"LAPSED\" (expired renewal), \"MERGED\", \"RETIRED\", \"PENDING_TRANSFER\", or \"ANNULLED\"."},"limit":{"default":10,"description":"Number of results to return (1–50, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_entity","description":"Fetch the full GLEIF record for a Legal Entity Identifier (LEI).\n\nReturns the authoritative entity record as registered with GLEIF — canonical legal name,\nall registered names, jurisdiction, registration number, registered address, legal form,\ncurrent registration status, and next renewal date.\n\nArgs:\n    lei: The 20-character LEI code (e.g. \"HWUPKR0MPOU8FGXBT394\" for Apple Inc).\n\nReturns:\n    Dict with lei, name, other_names, jurisdiction, registration_number,\n    registered_address, legal_form, status, next_renewal, and managing_lou.\n    Returns {\"error\": \"not_found\"} if the LEI does not exist.","input_schema":{"additionalProperties":false,"properties":{"lei":{"description":"The 20-character LEI code (e.g. \"HWUPKR0MPOU8FGXBT394\" for Apple Inc).","type":"string"}},"required":["lei"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_ownership_chain","description":"Retrieve ownership chain relationships for a legal entity.\n\nUses GLEIF's relationship data to traverse the corporate ownership structure.\nCovers entities that report their ownership chain as part of LEI registration.\n\nArgs:\n    lei: The 20-character LEI of the entity to look up.\n    direction: Which relationships to retrieve:\n        - \"direct_parent\" — the entity that directly consolidates this one (default)\n        - \"ultimate_parent\" — the topmost parent in the ownership chain\n        - \"children\" — entities directly consolidated by this one (subsidiaries)\n\nReturns:\n    Dict with 'lei', 'direction', 'count', and 'relationships' list.\n    Each relationship includes relationship_type, relationship_status,\n    start_lei (child), and end_lei (parent).\n    Returns empty list if no relationships are registered.","input_schema":{"additionalProperties":false,"properties":{"lei":{"description":"The 20-character LEI of the entity to look up.","type":"string"},"direction":{"default":"direct_parent","description":"Which relationships to retrieve: - \"direct_parent\" — the entity that directly consolidates this one (default) - \"ultimate_parent\" — the topmost parent in the ownership chain - \"children\" — en...","type":"string"}},"required":["lei"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"resolve_bic","description":"Resolve a SWIFT BIC code to its corresponding LEI.\n\nUses the GLEIF BIC-to-LEI mapping maintained in cooperation with SWIFT.\nEssential for financial agents processing SWIFT messages or correspondent banking data.\n\nArgs:\n    bic: The SWIFT Bank Identifier Code (8 or 11 characters, e.g. \"DEUTDEDB\").\n\nReturns:\n    Dict with 'bic' and 'lei' if a mapping exists, or {\"error\": \"not_found\"} otherwise.\n    Use get_entity(lei) to retrieve the full entity record for the resolved LEI.","input_schema":{"additionalProperties":false,"properties":{"bic":{"description":"The SWIFT Bank Identifier Code (8 or 11 characters, e.g. \"DEUTDEDB\").","type":"string"}},"required":["bic"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"resolve_isin","description":"Resolve an ISIN (securities identifier) to the issuing entity's LEI.\n\nCovers equities, bonds, and structured products. Enables agents to identify\nthe legal entity behind a financial instrument.\n\nArgs:\n    isin: The 12-character International Securities Identification Number\n          (e.g. \"US0378331005\" for Apple common stock).\n\nReturns:\n    Dict with 'isin' and 'lei' if a mapping exists, or {\"error\": \"not_found\"} otherwise.\n    Use get_entity(lei) to retrieve the full entity record for the resolved LEI.","input_schema":{"additionalProperties":false,"properties":{"isin":{"description":"The 12-character International Securities Identification Number (e.g. \"US0378331005\" for Apple common stock).","type":"string"}},"required":["isin"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/lorem-ipsum","name":"Lorem Ipsum","description":"Generate lorem ipsum placeholder text — paragraphs, sentences, or words for design and development.","category":"Utilities","source":"Built-in generator","endpoint":"/mcp/lorem-ipsum/","tools":[{"name":"generate_lorem_paragraphs","description":"Generate lorem ipsum placeholder paragraphs.\n\nProduces realistic-looking Latin placeholder text commonly used in design,\ntypesetting, and development. Each paragraph contains 3-7 sentences.","input_schema":{"additionalProperties":false,"properties":{"count":{"default":3,"description":"Number of paragraphs (1-100).","type":"integer"},"start_with_lorem":{"default":true,"description":"Start with the classic 'Lorem ipsum dolor sit amet...' opening.","type":"boolean"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"generate_lorem_sentences","description":"Generate lorem ipsum placeholder sentences.\n\nEach sentence contains 5-15 words of Latin-style placeholder text.","input_schema":{"additionalProperties":false,"properties":{"count":{"default":5,"description":"Number of sentences (1-500).","type":"integer"},"start_with_lorem":{"default":true,"description":"Start with the classic opening sentence.","type":"boolean"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"generate_lorem_words","description":"Generate lorem ipsum placeholder words.\n\nReturns a sequence of Latin-style placeholder words without sentence structure.","input_schema":{"additionalProperties":false,"properties":{"count":{"default":50,"description":"Number of words (1-5000).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/lovdata","name":"Lovdata (Norwegian Law)","description":"Norwegian laws (lover) and regulations (forskrifter) — search legislation, read law text, browse sections.","category":"Legal","source":"Lovdata (lovdata.no)","endpoint":"/mcp/lovdata/","tools":[{"name":"search_legislation","description":"Search Norwegian laws and regulations on Lovdata.\n\nLovdata is Norway's official source for legislation, including laws (lover),\nregulations (forskrifter), and court decisions.\n\nArgs:\n    query: Search term — law name, topic, or keyword.\n    doc_type: Document type to search: 'lover' (laws, default) or 'forskrifter' (regulations).\n    max_results: Maximum results (1-50, default 20).\n\nReturns:\n    Dict with 'query', 'count', and 'results' list.\n    Each result has: title, identifier, url, date, department.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term — law name, topic, or keyword.","type":"string"},"doc_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"lover","description":"Document type to search: 'lover' (laws, default) or 'forskrifter' (regulations)."},"max_results":{"default":20,"description":"Maximum results (1-50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_law","description":"Get an overview of a Norwegian law, including title, metadata, and table of contents.\n\nArgs:\n    law_path: The law's date-number identifier, e.g. '1997-06-13-44' for aksjeloven\n        (Company Act) or '2005-06-17-62' for arbeidsmiljøloven (Working Environment Act).\n\nReturns:\n    Dict with title, short_title, identifier, department, url, and chapters list.\n    Each chapter has: chapter_id, title, and sections list.","input_schema":{"additionalProperties":false,"properties":{"law_path":{"description":"The law's date-number identifier, e.g. '1997-06-13-44' for aksjeloven (Company Act) or '2005-06-17-62' for arbeidsmiljøloven (Working Environment Act).","type":"string"}},"required":["law_path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_law_section","description":"Get the full text of a specific section (paragraph) of a Norwegian law.\n\nArgs:\n    law_path: The law's date-number identifier, e.g. '1997-06-13-44' for aksjeloven.\n    section: Section number, e.g. '1-1' or '3-4'. The § symbol is optional.\n\nReturns:\n    Dict with section_id, title, content (full text), and url.","input_schema":{"additionalProperties":false,"properties":{"law_path":{"description":"The law's date-number identifier, e.g. '1997-06-13-44' for aksjeloven.","type":"string"},"section":{"description":"Section number, e.g. '1-1' or '3-4'. The § symbol is optional.","type":"string"}},"required":["law_path","section"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_regulation","description":"Get an overview of a Norwegian regulation (forskrift).\n\nArgs:\n    regulation_path: The regulation's date-number identifier,\n        e.g. '2019-12-09-1698' for a specific regulation.\n\nReturns:\n    Dict with title, identifier, department, url, and chapters list.","input_schema":{"additionalProperties":false,"properties":{"regulation_path":{"description":"The regulation's date-number identifier, e.g. '2019-12-09-1698' for a specific regulation.","type":"string"}},"required":["regulation_path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/handshake","name":"Handshake","description":"Connection test and capability negotiation for MCP clients.","category":"Platform","source":"Internal","endpoint":"/mcp/handshake/","tools":[{"name":"shake_hand","description":"Authenticated handshake. Requires OAuth. If this responds, auth is working.","input_schema":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/hello","name":"Hello","description":"Open endpoint for testing MCP connectivity — no authentication required.","category":"Platform","source":"Internal","endpoint":"/mcp/hello/","tools":[{"name":"say_hello","description":"Say hello. Open endpoint — no authentication required. Use to verify MCP connectivity.","input_schema":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/iban-validation","name":"IBAN Validation","description":"Validate International Bank Account Numbers — check digits, country, and BBAN extraction.","category":"Finance","source":"Algorithmic (ISO 13616)","endpoint":"/mcp/iban-validation/","tools":[{"name":"validate_iban","description":"Validate an International Bank Account Number (IBAN).\n\nChecks format, country code, length, and ISO 7064 Mod 97-10 check digits.\nReturns validation result with country, BBAN, and formatted IBAN if valid.\n\nArgs:\n    iban: The IBAN to validate. Spaces are allowed and will be stripped.","input_schema":{"additionalProperties":false,"properties":{"iban":{"type":"string"}},"required":["iban"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_supported_countries","description":"List all countries that support IBAN with their expected IBAN lengths.\n\nReturns country codes, names, and the required IBAN length for each.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/hn","name":"Hacker News","description":"Hacker News stories, comments, and discussions from the tech community.","category":"Software","source":"Hacker News API","endpoint":"/mcp/hn/","tools":[{"name":"search_hn_discussions","description":"Full-text search over Hacker News stories.\n\nSearches the complete HN archive via the Algolia search index. Results are sorted by relevance.\n\nArgs:\n    query: Search terms.\n    date_from: Filter results after this date — YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS (UTC).\n    date_to: Filter results before this date — YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS (UTC).\n    min_points: Minimum points (upvotes) a story must have. Default 0 (no filter).\n    max_results: Maximum stories to return (1–100, default 25).\n\nReturns:\n    Dictionary with 'count' and 'stories' list. Each story has title, url, author,\n    points, num_comments, created_at, and hn_url.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms.","type":"string"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter results after this date — YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS (UTC)."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter results before this date — YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS (UTC)."},"min_points":{"default":0,"description":"Minimum points (upvotes) a story must have. Default 0 (no filter).","type":"integer"},"max_results":{"default":25,"description":"Maximum stories to return (1–100, default 25).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_hn_trending","description":"Get top Hacker News stories in a rolling time window, sorted by points.\n\nArgs:\n    hours_ago: How far back to look (1–168 hours, default 24).\n    min_points: Minimum points threshold (default 10).\n    max_results: Maximum stories to return (1–100, default 25).\n\nReturns:\n    Dictionary with 'count' and 'stories' list sorted by points descending.","input_schema":{"additionalProperties":false,"properties":{"hours_ago":{"default":24,"description":"How far back to look (1–168 hours, default 24).","type":"integer"},"min_points":{"default":10,"description":"Minimum points threshold (default 10).","type":"integer"},"max_results":{"default":25,"description":"Maximum stories to return (1–100, default 25).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_hn_story_thread","description":"Fetch a Hacker News story with its top comments.\n\nArgs:\n    story_id: The HN story ID (numeric, from the URL: news.ycombinator.com/item?id=<id>).\n    max_comments: Maximum top-level comments to include (default 20).\n\nReturns:\n    Story metadata plus a list of top comments sorted by score, each\n    with text, author, points, and nested replies.","input_schema":{"additionalProperties":false,"properties":{"story_id":{"description":"The HN story ID (numeric, from the URL: news.ycombinator.com/item?id=<id>).","type":"integer"},"max_comments":{"default":20,"description":"Maximum top-level comments to include (default 20).","type":"integer"}},"required":["story_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_hn_author_activity","description":"Get recent submissions and comments by a Hacker News user.\n\nArgs:\n    username: HN username (case-sensitive).\n    limit: Maximum stories and comments to return each (default 10).\n\nReturns:\n    User profile (username, karma, created_at) with lists of recent\n    stories and comments.","input_schema":{"additionalProperties":false,"properties":{"username":{"description":"HN username (case-sensitive).","type":"string"},"limit":{"default":10,"description":"Maximum stories and comments to return each (default 10).","type":"integer"}},"required":["username"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nager-date","name":"Nager.Date (Holidays)","description":"Public holidays by country and year — dates, names, and types.","category":"Reference","source":"Nager.Date","endpoint":"/mcp/nager-date/","tools":[{"name":"check_holiday","description":"Check whether a given date is a public holiday in a country.\n\nArgs:\n    date: Date to check in ISO 8601 format (YYYY-MM-DD).\n    country_code: ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').\n    region_code: Optional ISO 3166-2 region code (e.g. 'US-CA', 'DE-BY').\n\nReturns:\n    Dictionary with is_holiday (bool) and holiday_names (list of matching names).","input_schema":{"additionalProperties":false,"properties":{"date":{"description":"Date to check in ISO 8601 format (YYYY-MM-DD).","type":"string"},"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').","type":"string"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional ISO 3166-2 region code (e.g. 'US-CA', 'DE-BY')."}},"required":["date","country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_public_holidays","description":"List all public holidays for a country in a given year.\n\nArgs:\n    country_code: ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').\n    year: The year (e.g. 2026).\n\nReturns:\n    Dictionary with count and holidays list. Each holiday has date, name,\n    local_name, global flag, counties, and types.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').","type":"string"},"year":{"description":"The year (e.g. 2026).","type":"integer"}},"required":["country_code","year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_next_business_day","description":"Find the next business day on or after a given date, skipping weekends and holidays.\n\nArgs:\n    date: Starting date in ISO 8601 format (YYYY-MM-DD).\n    country_code: ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').\n\nReturns:\n    Dictionary with next_business_day date and days_skipped count.","input_schema":{"additionalProperties":false,"properties":{"date":{"description":"Starting date in ISO 8601 format (YYYY-MM-DD).","type":"string"},"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').","type":"string"}},"required":["date","country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"count_business_days","description":"Count business days between two dates (inclusive of start, exclusive of end).\n\nArgs:\n    start_date: Start date in ISO 8601 format (YYYY-MM-DD).\n    end_date: End date in ISO 8601 format (YYYY-MM-DD). Not included in the count.\n    country_code: ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').\n\nReturns:\n    Dictionary with business_days count and calendar_days in the range.","input_schema":{"additionalProperties":false,"properties":{"start_date":{"description":"Start date in ISO 8601 format (YYYY-MM-DD).","type":"string"},"end_date":{"description":"End date in ISO 8601 format (YYYY-MM-DD). Not included in the count.","type":"string"},"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. 'NO', 'US', 'DE').","type":"string"}},"required":["start_date","end_date","country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/imf","name":"IMF","description":"International Monetary Fund datasets — global economic indicators and financial statistics.","category":"Economics","source":"IMF Data API","endpoint":"/mcp/imf/","tools":[{"name":"list_weo_indicators","description":"List all available World Economic Outlook indicators from the IMF.\n\nThe WEO covers macroeconomic variables across 196 countries with\nhistorical data and 5-year forecasts, updated twice per year (April\nand October). Use this to discover indicator codes before calling\nget_weo_forecast() with specific indicators.\n\nReturns:\n    count and list of indicators with code, label, description, unit, source, dataset.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_weo_forecast","description":"Get World Economic Outlook forecasts and historical data for a country.\n\nBy default returns 6 headline macro indicators: real GDP growth, inflation,\nunemployment, current account balance, government debt, and fiscal balance.\n\nCountry codes use ISO alpha-3 (e.g. USA, GBR, DEU, NOR, CHN, JPN, BRA).\n\nArgs:\n    country: ISO alpha-3 country code (e.g. 'USA', 'NOR', 'DEU', 'CHN').\n    indicators: WEO indicator codes. If omitted, returns the 6 defaults.\n                Use list_weo_indicators() to discover all available codes.\n    start_year: Include observations from this year (inclusive).\n    end_year: Include observations up to this year (inclusive).\n\nReturns:\n    country, source note, and indicators list with observations (period, value).","input_schema":{"additionalProperties":false,"properties":{"country":{"description":"ISO alpha-3 country code (e.g. 'USA', 'NOR', 'DEU', 'CHN').","type":"string"},"indicators":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"WEO indicator codes. If omitted, returns the 6 defaults. Use list_weo_indicators() to discover all available codes."},"start_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Include observations from this year (inclusive)."},"end_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Include observations up to this year (inclusive)."}},"required":["country"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_commodity_prices","description":"Get primary commodity price data from the IMF PCPS dataset.\n\nDefault commodities: Brent Crude Oil, Gold, Copper, Aluminum, Natural Gas (US).\n\nArgs:\n    commodities: List of PCPS commodity codes. Defaults to 5 key commodities.\n    start_period: Start period (YYYY-MM for monthly, YYYY for annual).\n    end_period: End period (YYYY-MM or YYYY).\n    frequency: 'M' for monthly (default) or 'A' for annual.\n\nReturns:\n    source, available_codes list, and series with code, name, unit, and observations.","input_schema":{"additionalProperties":false,"properties":{"commodities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"List of PCPS commodity codes. Defaults to 5 key commodities."},"start_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start period (YYYY-MM for monthly, YYYY for annual)."},"end_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End period (YYYY-MM or YYYY)."},"frequency":{"default":"M","description":"'M' for monthly (default) or 'A' for annual.","type":"string"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trade_balance","description":"Get bilateral or aggregate trade statistics from the IMF DOTS dataset.\n\nUse partner='W00' (or omit) to get a country's total world trade.\nSpecify a partner code for bilateral flows.\n\nArgs:\n    reporter: ISO alpha-2 country code of the reporting country (e.g. 'US', 'DE').\n    partner: ISO alpha-2 partner code, or 'W00' for world total (default).\n    start_year: Start year (inclusive).\n    end_year: End year (inclusive).\n\nReturns:\n    reporter, partner, and series with exports, imports, and trade balance.","input_schema":{"additionalProperties":false,"properties":{"reporter":{"description":"ISO alpha-2 country code of the reporting country (e.g. 'US', 'DE').","type":"string"},"partner":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO alpha-2 partner code, or 'W00' for world total (default)."},"start_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year (inclusive)."},"end_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year (inclusive)."}},"required":["reporter"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_country_overview","description":"Get a macro snapshot for a country combining WEO headline indicators.\n\nReturns the most recent actuals and near-term IMF forecasts covering GDP growth,\ninflation, unemployment, current account, government debt, and fiscal balance.\n\nArgs:\n    country: ISO alpha-3 country code (e.g. 'USA', 'NOR', 'DEU').\n\nReturns:\n    country, source, window (year range), and indicators dict with latest values.","input_schema":{"additionalProperties":false,"properties":{"country":{"description":"ISO alpha-3 country code (e.g. 'USA', 'NOR', 'DEU').","type":"string"}},"required":["country"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/barentswatch","name":"BarentsWatch (Maritime)","description":"Live AIS vessel tracking — position, speed, course, and voyage data.","category":"Transport","source":"BarentsWatch","endpoint":"/mcp/barentswatch/","tools":[{"name":"get_vessel","description":"Get the current position and details for a vessel by MMSI.\n\nArgs:\n    mmsi: 9-digit Maritime Mobile Service Identity number (e.g. 257338000).\n\nReturns:\n    Vessel record with name, flag, type, position, speed, course, destination,\n    and navigational status from live AIS data.","input_schema":{"additionalProperties":false,"properties":{"mmsi":{"description":"9-digit Maritime Mobile Service Identity number (e.g. 257338000).","type":"integer"}},"required":["mmsi"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"vessels_in_area","description":"Get all vessels currently in a geographic area.\n\nSpecify the area as a named port OR as an explicit bounding box.\n\nArgs:\n    bbox: Comma-separated bounding box 'lon_min,lat_min,lon_max,lat_max'.\n    port_name: Named port (e.g. 'oslo', 'rotterdam', 'singapore', 'hamburg').\n    lon_min: Bounding box west edge.\n    lat_min: Bounding box south edge.\n    lon_max: Bounding box east edge.\n    lat_max: Bounding box north edge.\n    vessel_type: Filter by type: 'cargo', 'tanker', 'passenger', 'fishing', 'tug'.\n    limit: Maximum vessels to return (1–200, default 50).\n\nReturns:\n    Dictionary with count and vessels list.","input_schema":{"additionalProperties":false,"properties":{"bbox":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated bounding box 'lon_min,lat_min,lon_max,lat_max'."},"port_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Named port (e.g. 'oslo', 'rotterdam', 'singapore', 'hamburg')."},"lon_min":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Bounding box west edge."},"lat_min":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Bounding box south edge."},"lon_max":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Bounding box east edge."},"lat_max":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Bounding box north edge."},"vessel_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by type: 'cargo', 'tanker', 'passenger', 'fishing', 'tug'."},"limit":{"default":50,"description":"Maximum vessels to return (1–200, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_vessel_track","description":"Get the recent position history (track) for a vessel.\n\nArgs:\n    mmsi: 9-digit MMSI number.\n    hours: How many hours of history to return (1–168, default 24).\n\nReturns:\n    Dictionary with mmsi, name, point_count, and points list (lat, lon, speed, course, timestamp).","input_schema":{"additionalProperties":false,"properties":{"mmsi":{"description":"9-digit MMSI number.","type":"integer"},"hours":{"default":24,"description":"How many hours of history to return (1–168, default 24).","type":"integer"}},"required":["mmsi"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_vessel","description":"Search for vessels by name (partial match).\n\nArgs:\n    name_query: Vessel name or partial name (e.g. 'Stena', 'Nordic Eagle').\n    flag: Optional country filter — ISO 2-letter code (e.g. 'NO', 'NL').\n\nReturns:\n    Dictionary with count and vessels list including MMSI, name, flag, and position.","input_schema":{"additionalProperties":false,"properties":{"name_query":{"description":"Vessel name or partial name (e.g. 'Stena', 'Nordic Eagle').","type":"string"},"flag":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional country filter — ISO 2-letter code (e.g. 'NO', 'NL')."}},"required":["name_query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/noaa-alerts","name":"NOAA Weather Alerts","description":"Active U.S. weather alerts — watches, warnings, and advisories by area.","category":"Environment","source":"NOAA / NWS","endpoint":"/mcp/noaa-alerts/","tools":[{"name":"get_active_alerts","description":"Get all currently active NOAA weather alerts and warnings across the US.\n\nReturns real-time National Weather Service alerts including severe weather\nwarnings, watches, advisories, and statements. Data covers all US states,\nterritories, and marine zones.\n\nArgs:\n    state: Two-letter US state/territory code to filter by (e.g. \"CA\", \"TX\", \"PR\").\n    severity: Filter by severity level — \"Extreme\", \"Severe\", \"Moderate\", \"Minor\".\n    event: Filter by event type (e.g. \"Tornado Warning\", \"Winter Storm Watch\").\n    urgency: Filter by urgency — \"Immediate\", \"Expected\", \"Future\", \"Past\".\n    certainty: Filter by certainty — \"Observed\", \"Likely\", \"Possible\", \"Unlikely\".\n    limit: Maximum results to return (1-500, default 50).\n\nReturns:\n    Dict with 'count' and 'results' list of active alerts. Each alert includes\n    event type, severity, headline, description, affected areas, and timing.","input_schema":{"additionalProperties":false,"properties":{"state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter US state/territory code to filter by (e.g. \"CA\", \"TX\", \"PR\")."},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by severity level — \"Extreme\", \"Severe\", \"Moderate\", \"Minor\"."},"event":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by event type (e.g. \"Tornado Warning\", \"Winter Storm Watch\")."},"urgency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by urgency — \"Immediate\", \"Expected\", \"Future\", \"Past\"."},"certainty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by certainty — \"Observed\", \"Likely\", \"Possible\", \"Unlikely\"."},"limit":{"default":50,"description":"Maximum results to return (1-500, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_alerts_for_point","description":"Get active weather alerts for a specific geographic point in the US.\n\nReturns all current NWS alerts that cover the given latitude/longitude,\nuseful for location-specific weather safety checks.\n\nArgs:\n    latitude: Latitude of the point (-90 to 90).\n    longitude: Longitude of the point (-180 to 180).\n    limit: Maximum results to return (1-100, default 20).\n\nReturns:\n    Dict with 'count' and 'results' list of alerts affecting the given point.","input_schema":{"additionalProperties":false,"properties":{"latitude":{"description":"Latitude of the point (-90 to 90).","type":"number"},"longitude":{"description":"Longitude of the point (-180 to 180).","type":"number"},"limit":{"default":20,"description":"Maximum results to return (1-100, default 20).","type":"integer"}},"required":["latitude","longitude"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_alert","description":"Get detailed information about a specific weather alert by its NWS alert ID.\n\nArgs:\n    alert_id: The NWS alert identifier (e.g. \"urn:oid:2.49.0.1.840.0.abc123\").\n\nReturns:\n    Dict with full alert details including headline, description, safety\n    instructions, severity, affected areas, and timing. Returns an error\n    if the alert is not found.","input_schema":{"additionalProperties":false,"properties":{"alert_id":{"description":"The NWS alert identifier (e.g. \"urn:oid:2.49.0.1.840.0.abc123\").","type":"string"}},"required":["alert_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/openalex","name":"OpenAlex","description":"Open scholarly metadata — works, authors, institutions, and citation networks.","category":"Science","source":"OpenAlex","endpoint":"/mcp/openalex/","tools":[{"name":"search_papers","description":"Search scholarly papers by keyword across 250M+ works from OpenAlex.\n\nArgs:\n    query: Search terms (e.g. \"transformer attention mechanisms\", \"CRISPR gene editing\").\n    year_from: Filter to papers published from this year onward (e.g. 2020). Optional.\n    year_to: Filter to papers published up to this year (e.g. 2024). Optional.\n    field_of_study: Filter by research field (e.g. \"machine learning\", \"biology\"). Optional.\n    max_results: Number of results to return (1–25, default 10).\n\nReturns:\n    Dictionary with count and papers list (id, doi, title, year, venue, cited_by_count,\n    open_access flag, authors up to 5, top 5 concepts).","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms (e.g. \"transformer attention mechanisms\", \"CRISPR gene editing\").","type":"string"},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter to papers published from this year onward (e.g. 2020). Optional."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter to papers published up to this year (e.g. 2024). Optional."},"field_of_study":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by research field (e.g. \"machine learning\", \"biology\"). Optional."},"max_results":{"default":10,"description":"Number of results to return (1–25, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_paper","description":"Get full details for a specific paper including abstract and citation count.\n\nArgs:\n    paper_id: OpenAlex ID (e.g. \"W2741809807\"), DOI (e.g. \"10.1038/s41586-021-03819-2\"),\n              or full URL (e.g. \"https://openalex.org/W2741809807\").\n\nReturns:\n    Full paper record: id, doi, title, publication_year, venue, abstract,\n    authors, concepts, cited_by_count, references_count, open_access.","input_schema":{"additionalProperties":false,"properties":{"paper_id":{"description":"OpenAlex ID (e.g. \"W2741809807\"), DOI (e.g. \"10.1038/s41586-021-03819-2\"), or full URL (e.g. \"https://openalex.org/W2741809807\").","type":"string"}},"required":["paper_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_author_profile","description":"Get a researcher's profile — works, citations, h-index, and affiliations.\n\nArgs:\n    author_id: OpenAlex author ID (e.g. \"A5023888391\"), ORCID (e.g. \"0000-0001-6187-6610\"),\n               or full ORCID URL.\n\nReturns:\n    Author profile: id, display_name, orcid, works_count, cited_by_count,\n    h_index, and affiliations (up to 3 recent institutions).","input_schema":{"additionalProperties":false,"properties":{"author_id":{"description":"OpenAlex author ID (e.g. \"A5023888391\"), ORCID (e.g. \"0000-0001-6187-6610\"), or full ORCID URL.","type":"string"}},"required":["author_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_citations","description":"List papers that cite or are referenced by a given paper.\n\nArgs:\n    paper_id: OpenAlex ID, DOI, or full URL of the paper.\n    direction: \"cited_by\" for papers that cite this one (default),\n               or \"references\" for papers this paper cites.\n    max_results: Number of results to return (1–25, default 20).\n\nReturns:\n    Dictionary with count and papers list (id, doi, title, year, cited_by_count, authors).","input_schema":{"additionalProperties":false,"properties":{"paper_id":{"description":"OpenAlex ID, DOI, or full URL of the paper.","type":"string"},"direction":{"default":"cited_by","description":"\"cited_by\" for papers that cite this one (default), or \"references\" for papers this paper cites.","type":"string"},"max_results":{"default":20,"description":"Number of results to return (1–25, default 20).","type":"integer"}},"required":["paper_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trending_papers","description":"Get recently published high-impact papers in a research field.\n\nArgs:\n    field: Research field to search (e.g. \"machine learning\", \"immunology\", \"climate change\").\n    days: Look back this many days for recent papers (default 30).\n    max_results: Number of results to return (1–25, default 10).\n\nReturns:\n    Dictionary with count and recent papers ranked by citation count.","input_schema":{"additionalProperties":false,"properties":{"field":{"description":"Research field to search (e.g. \"machine learning\", \"immunology\", \"climate change\").","type":"string"},"days":{"default":30,"description":"Look back this many days for recent papers (default 30).","type":"integer"},"max_results":{"default":10,"description":"Number of results to return (1–25, default 10).","type":"integer"}},"required":["field"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/opencorporates","name":"OpenCorporates","description":"Global company search — incorporation data, officers, and filings across jurisdictions.","category":"Legal","source":"OpenCorporates","endpoint":"/mcp/opencorporates/","tools":[{"name":"search_company","description":"Search the global company registry by name.\n\nCovers 200+ jurisdictions via the OpenCorporates database.\n\nArgs:\n    name: Company name or partial name to search for (e.g. \"Apple\", \"Acme Corp\").\n    jurisdiction: OpenCorporates jurisdiction code (e.g. \"gb\" for UK, \"us_de\" for Delaware,\n                  \"no\" for Norway, \"de\" for Germany). Omit for global search.\n    status: Filter by company status: \"Active\", \"Dissolved\", \"Inactive\". Omit for all.\n    max_results: Number of results to return (1–100, default 20).\n\nReturns:\n    Dictionary with count and list of matching companies (registry_id, name, jurisdiction,\n    status, incorporation_date, company_type, address). Use registry_id for details.","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Company name or partial name to search for (e.g. \"Apple\", \"Acme Corp\").","type":"string"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"OpenCorporates jurisdiction code (e.g. \"gb\" for UK, \"us_de\" for Delaware, \"no\" for Norway, \"de\" for Germany). Omit for global search."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by company status: \"Active\", \"Dissolved\", \"Inactive\". Omit for all."},"max_results":{"default":20,"description":"Number of results to return (1–100, default 20).","type":"integer"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_company_details","description":"Get full details for a specific company.\n\nReturns comprehensive information including registered address, industry codes,\nincorporation and dissolution dates, and company type.\n\nArgs:\n    registry_id: Company identifier in the format \"{jurisdiction}/{company_number}\",\n                 e.g. \"gb/12345678\" or \"us_de/1234567\". Obtained from search_company.\n\nReturns:\n    Full company record, or {\"error\": \"not_found\"} if the registry ID is unknown.","input_schema":{"additionalProperties":false,"properties":{"registry_id":{"description":"Company identifier in the format \"{jurisdiction}/{company_number}\", e.g. \"gb/12345678\" or \"us_de/1234567\". Obtained from search_company.","type":"string"}},"required":["registry_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_officers","description":"List directors and officers of a company.\n\nReturns all registered officers including directors, secretaries, and other\nroles where this information is publicly available.\n\nArgs:\n    registry_id: Company identifier in the format \"{jurisdiction}/{company_number}\",\n                 e.g. \"gb/12345678\". Obtained from search_company.\n\nReturns:\n    Dictionary with count and list of officers (name, role, start_date, end_date,\n    nationality, occupation, inactive flag).","input_schema":{"additionalProperties":false,"properties":{"registry_id":{"description":"Company identifier in the format \"{jurisdiction}/{company_number}\", e.g. \"gb/12345678\". Obtained from search_company.","type":"string"}},"required":["registry_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"check_company_status","description":"Quick status check for a company by name.\n\nReturns the top matching company and its current status (active, dissolved, etc.).\nUseful for KYC pre-checks and supplier verification.\n\nArgs:\n    name: Company name to check (exact or near-exact match works best).\n    jurisdiction: OpenCorporates jurisdiction code (e.g. \"gb\", \"us_de\", \"no\").\n                  Strongly recommended to reduce ambiguity.\n\nReturns:\n    Object with the best match company name, status, registry_id, and jurisdiction.\n    Returns {\"error\": \"not_found\"} if no matches are found.","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Company name to check (exact or near-exact match works best).","type":"string"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"OpenCorporates jurisdiction code (e.g. \"gb\", \"us_de\", \"no\"). Strongly recommended to reduce ambiguity."}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/orcid","name":"ORCID","description":"Researcher identity profiles — career history, publications, and funding via ORCID.","category":"Science","source":"ORCID Public API","endpoint":"/mcp/orcid/","tools":[{"name":"search_researchers","description":"Search ORCID for researchers by name, keyword, or affiliation.\n\nORCID is the universal researcher identifier with 20M+ profiles. Use this\nto find researchers and get their canonical ORCID IDs for cross-referencing\nwith CrossRef, OpenAlex, and PubMed.\n\nArgs:\n    query: Search query — researcher name, keyword, or ORCID ID fragment.\n           Supports Solr syntax (e.g. \"given-names:Albert AND family-name:Einstein\").\n    affiliation: Filter by affiliated organization name (e.g. \"MIT\", \"CERN\").\n    rows: Number of results to return (1-50, default 10).\n\nReturns:\n    Dict with 'count' (returned), 'total_results' (total matches), and 'researchers' list.\n    Each researcher includes orcid_id, given_name, family_name, and credit_name.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — researcher name, keyword, or ORCID ID fragment. Supports Solr syntax (e.g. \"given-names:Albert AND family-name:Einstein\").","type":"string"},"affiliation":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by affiliated organization name (e.g. \"MIT\", \"CERN\")."},"rows":{"default":10,"description":"Number of results to return (1-50, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_researcher_profile","description":"Fetch a researcher's full profile by ORCID ID.\n\nReturns biographical details, keywords, employment history, and education.\nUse this to understand a researcher's career trajectory and current affiliations.\n\nArgs:\n    orcid_id: The ORCID identifier. Accepts bare ID (e.g. \"0000-0002-1825-0097\")\n              or full URL (e.g. \"https://orcid.org/0000-0002-1825-0097\").\n\nReturns:\n    Dict with orcid_id, given_name, family_name, credit_name, biography,\n    keywords, employments (organization/role/dates), and educations.","input_schema":{"additionalProperties":false,"properties":{"orcid_id":{"description":"The ORCID identifier. Accepts bare ID (e.g. \"0000-0002-1825-0097\") or full URL (e.g. \"https://orcid.org/0000-0002-1825-0097\").","type":"string"}},"required":["orcid_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_researcher_works","description":"Fetch a researcher's published works by ORCID ID.\n\nReturns publications with DOIs that can be cross-referenced with CrossRef\n(resolve_doi) and OpenAlex for citation data and full metadata.\n\nArgs:\n    orcid_id: The ORCID identifier (bare or URL form).\n    max_results: Maximum number of works to return (1-100, default 25).\n\nReturns:\n    Dict with 'count' and 'works' list. Each work includes title, doi,\n    work_type, publication_date, journal, url, and external_ids.","input_schema":{"additionalProperties":false,"properties":{"orcid_id":{"description":"The ORCID identifier (bare or URL form).","type":"string"},"max_results":{"default":25,"description":"Maximum number of works to return (1-100, default 25).","type":"integer"}},"required":["orcid_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_researcher_funding","description":"Fetch a researcher's grants and funding records by ORCID ID.\n\nReturns funding sources, amounts, and dates. Useful for understanding\na researcher's funding landscape and institutional backing.\n\nArgs:\n    orcid_id: The ORCID identifier (bare or URL form).\n\nReturns:\n    Dict with 'count' and 'fundings' list. Each funding includes title,\n    funder, funding_type, amount, currency, start/end dates, and url.","input_schema":{"additionalProperties":false,"properties":{"orcid_id":{"description":"The ORCID identifier (bare or URL form).","type":"string"}},"required":["orcid_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/openfda","name":"OpenFDA","description":"FDA data — drug adverse events, product recalls, and medical device reports.","category":"Science","source":"openFDA","endpoint":"/mcp/openfda/","tools":[{"name":"search_adverse_events","description":"Search FDA adverse event reports (FAERS) for a drug or active ingredient.\n\nArgs:\n    drug_name: Drug name — brand (e.g. \"Tylenol\") or generic (e.g. \"acetaminophen\").\n    reaction: Optional MedDRA reaction term to filter by (e.g. \"headache\", \"nausea\").\n    date_from: Start date filter in YYYYMMDD format (e.g. \"20200101\").\n    date_to: End date filter in YYYYMMDD format (e.g. \"20221231\").\n    limit: Number of reports to return (1–100, default 10).\n\nReturns:\n    Dictionary with count and adverse event reports (drug name, reactions, seriousness,\n    outcome codes). Data sourced from FDA FAERS, updated quarterly.","input_schema":{"additionalProperties":false,"properties":{"drug_name":{"description":"Drug name — brand (e.g. \"Tylenol\") or generic (e.g. \"acetaminophen\").","type":"string"},"reaction":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional MedDRA reaction term to filter by (e.g. \"headache\", \"nausea\")."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date filter in YYYYMMDD format (e.g. \"20200101\")."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date filter in YYYYMMDD format (e.g. \"20221231\")."},"limit":{"default":10,"description":"Number of reports to return (1–100, default 10).","type":"integer"}},"required":["drug_name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_drug_label","description":"Fetch FDA-approved drug label for a medication.\n\nReturns the full label content including indications, contraindications,\nwarnings, dosage instructions, and known adverse reactions.\n\nArgs:\n    drug_name: Brand name (e.g. \"Advil\") or generic name (e.g. \"ibuprofen\").\n\nReturns:\n    Drug label sections from the FDA SPL database. Text fields truncated at 2,000 chars.\n    Returns found=false if no label found.","input_schema":{"additionalProperties":false,"properties":{"drug_name":{"description":"Brand name (e.g. \"Advil\") or generic name (e.g. \"ibuprofen\").","type":"string"}},"required":["drug_name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_enforcement","description":"Search FDA enforcement actions — recalls, market withdrawals, and safety alerts.\n\nArgs:\n    product_type: Product category — \"drug\", \"food\", or \"device\" (default \"drug\").\n    date_from: Start date of recall initiation in YYYYMMDD format.\n    date_to: End date of recall initiation in YYYYMMDD format.\n    classification: Recall classification — \"Class I\" (most serious), \"Class II\", or \"Class III\".\n    limit: Number of actions to return (1–100, default 10).\n\nReturns:\n    Dictionary with count and enforcement actions (recall number, reason, classification,\n    recalling firm). Class I = most serious (risk of serious adverse health consequences).","input_schema":{"additionalProperties":false,"properties":{"product_type":{"default":"drug","description":"Product category — \"drug\", \"food\", or \"device\" (default \"drug\").","type":"string"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date of recall initiation in YYYYMMDD format."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date of recall initiation in YYYYMMDD format."},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Recall classification — \"Class I\" (most serious), \"Class II\", or \"Class III\"."},"limit":{"default":10,"description":"Number of actions to return (1–100, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"device_adverse_events","description":"Search FDA medical device adverse event reports (MAUDE database).\n\nArgs:\n    device_name: Device brand name (e.g. \"pacemaker\", \"insulin pump\", \"hip implant\").\n    event_type: Filter by event type — \"Malfunction\", \"Injury\", \"Death\",\n                or \"No apparent adverse event\".\n    date_from: Start date filter in YYYYMMDD format.\n    date_to: End date filter in YYYYMMDD format.\n    limit: Number of reports to return (1–100, default 10).\n\nReturns:\n    Dictionary with count and device adverse event reports (device name, manufacturer,\n    event type, narrative description). Sourced from MAUDE database.","input_schema":{"additionalProperties":false,"properties":{"device_name":{"description":"Device brand name (e.g. \"pacemaker\", \"insulin pump\", \"hip implant\").","type":"string"},"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by event type — \"Malfunction\", \"Injury\", \"Death\", or \"No apparent adverse event\"."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date filter in YYYYMMDD format."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date filter in YYYYMMDD format."},"limit":{"default":10,"description":"Number of reports to return (1–100, default 10).","type":"integer"}},"required":["device_name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/osm-poi","name":"OpenStreetMap POI","description":"Points of interest from OpenStreetMap — restaurants, shops, landmarks, and amenities.","category":"Geography","source":"OpenStreetMap / Overpass","endpoint":"/mcp/osm-poi/","tools":[{"name":"nearby_pois","description":"Find points of interest near a location.\n\nSearches OpenStreetMap for POIs within a radius of the given coordinates.\n\nArgs:\n    lat: Latitude of the centre point (-90 to 90).\n    lon: Longitude of the centre point (-180 to 180).\n    radius_m: Search radius in metres (1–50000, default 500).\n    poi_type: Type of POI to filter by. Examples: \"restaurant\", \"cafe\", \"hospital\",\n              \"pharmacy\", \"hotel\", \"museum\", \"supermarket\", \"park\", \"ev_charger\",\n              \"school\", \"bank\", \"parking\". Omit to return all POI types.\n    max_results: Maximum number of results (1–100, default 20).\n\nReturns:\n    Object with count and list of POIs, each with osm_id, name, poi_type,\n    lat, lon, and key OSM tags (address, opening hours, phone, website, etc.).","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the centre point (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the centre point (-180 to 180).","type":"number"},"radius_m":{"default":500,"description":"Search radius in metres (1–50000, default 500).","type":"integer"},"poi_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Type of POI to filter by. Examples: \"restaurant\", \"cafe\", \"hospital\", \"pharmacy\", \"hotel\", \"museum\", \"supermarket\", \"park\", \"ev_charger\", \"school\", \"bank\", \"parking\". Omit t..."},"max_results":{"default":20,"description":"Maximum number of results (1–100, default 20).","type":"integer"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_poi","description":"Search for POIs by name across OpenStreetMap.\n\nPerforms a case-insensitive regex search over OSM name tags. Optionally\nrestricted to a specific country.\n\nArgs:\n    name_query: Name or partial name to search for (e.g. \"Starbucks\", \"IKEA\").\n    country_code: ISO 3166-1 alpha-2 country code to restrict results\n                  (e.g. \"NO\" for Norway, \"GB\" for UK, \"US\" for United States).\n                  Omit for global search (slower, may time out for common names).\n    max_results: Maximum number of results (1–50, default 20).\n\nReturns:\n    Object with count and list of matching POIs, each with osm_id, name,\n    poi_type, lat, lon, and key OSM tags.","input_schema":{"additionalProperties":false,"properties":{"name_query":{"description":"Name or partial name to search for (e.g. \"Starbucks\", \"IKEA\").","type":"string"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code to restrict results (e.g. \"NO\" for Norway, \"GB\" for UK, \"US\" for United States). Omit for global search (slower, may time out for common names)."},"max_results":{"default":20,"description":"Maximum number of results (1–50, default 20).","type":"integer"}},"required":["name_query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_poi_details","description":"Get full OSM tag data for a specific POI.\n\nReturns all available metadata for a single OSM element, including\nopening hours, contact info, accessibility attributes, and more.\n\nArgs:\n    osm_id: OSM element identifier in the format \"type/id\", e.g. \"node/12345\"\n            or \"way/67890\". Obtained from nearby_pois or search_poi results.\n\nReturns:\n    Full POI record with all OSM tags, or {\"error\": \"not_found\"} if the\n    element does not exist.","input_schema":{"additionalProperties":false,"properties":{"osm_id":{"description":"OSM element identifier in the format \"type/id\", e.g. \"node/12345\" or \"way/67890\". Obtained from nearby_pois or search_poi results.","type":"string"}},"required":["osm_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"count_pois","description":"Count POIs within a bounding box.\n\nUseful for density analysis, market research, and catchment area studies.\n\nArgs:\n    min_lat: Southern boundary latitude.\n    min_lon: Western boundary longitude.\n    max_lat: Northern boundary latitude.\n    max_lon: Eastern boundary longitude.\n    poi_type: POI type to count (e.g. \"restaurant\", \"ev_charger\"). Omit to\n              count all named POIs.\n\nReturns:\n    Object with the count of matching POIs and the queried bbox.","input_schema":{"additionalProperties":false,"properties":{"min_lat":{"description":"Southern boundary latitude.","type":"number"},"min_lon":{"description":"Western boundary longitude.","type":"number"},"max_lat":{"description":"Northern boundary latitude.","type":"number"},"max_lon":{"description":"Eastern boundary longitude.","type":"number"},"poi_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"POI type to count (e.g. \"restaurant\", \"ev_charger\"). Omit to count all named POIs."}},"required":["min_lat","min_lon","max_lat","max_lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/package-registry","name":"Package Registry","description":"Package metadata and vulnerability data from npm, PyPI, crates.io, and OSV.","category":"Software","source":"npm, PyPI, crates.io, OSV.dev","endpoint":"/mcp/package-registry/","tools":[{"name":"get_package","description":"Get metadata for a package — latest version, description, license, maintainers.\n\nArgs:\n    ecosystem: Package ecosystem: 'npm', 'pypi', or 'crates'.\n    name: Package name (e.g. 'express', 'requests', 'tokio').\n\nReturns:\n    Package metadata including version, description, license, homepage,\n    repository URL, maintainers, and keywords.","input_schema":{"additionalProperties":false,"properties":{"ecosystem":{"description":"Package ecosystem: 'npm', 'pypi', or 'crates'.","type":"string"},"name":{"description":"Package name (e.g. 'express', 'requests', 'tokio').","type":"string"}},"required":["ecosystem","name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_package_versions","description":"Get full release history for a package with publish timestamps.\n\nArgs:\n    ecosystem: Package ecosystem: 'npm', 'pypi', or 'crates'.\n    name: Package name.\n\nReturns:\n    Dictionary with count and versions list (version string + published_at timestamp).","input_schema":{"additionalProperties":false,"properties":{"ecosystem":{"description":"Package ecosystem: 'npm', 'pypi', or 'crates'.","type":"string"},"name":{"description":"Package name.","type":"string"}},"required":["ecosystem","name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_download_stats","description":"Get download statistics for a package.\n\nArgs:\n    ecosystem: Package ecosystem: 'npm', 'pypi', or 'crates'.\n    name: Package name.\n    period: Time period — 'last-week' or 'last-month' (npm and PyPI).\n            crates.io always returns recent 90-day downloads.\n\nReturns:\n    Dictionary with ecosystem, name, period, and download count.","input_schema":{"additionalProperties":false,"properties":{"ecosystem":{"description":"Package ecosystem: 'npm', 'pypi', or 'crates'.","type":"string"},"name":{"description":"Package name.","type":"string"},"period":{"default":"last-week","description":"Time period — 'last-week' or 'last-month' (npm and PyPI). crates.io always returns recent 90-day downloads.","type":"string"}},"required":["ecosystem","name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_dependencies","description":"Get direct dependencies for a package version.\n\nArgs:\n    ecosystem: Package ecosystem: 'npm', 'pypi', or 'crates'.\n    name: Package name.\n    version: Specific version string. If omitted, uses the latest release.\n\nReturns:\n    Dictionary with count and dependencies list (name, version_req, kind).\n    For crates, kind may be 'normal', 'dev', or 'build'.","input_schema":{"additionalProperties":false,"properties":{"ecosystem":{"description":"Package ecosystem: 'npm', 'pypi', or 'crates'.","type":"string"},"name":{"description":"Package name.","type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Specific version string. If omitted, uses the latest release."}},"required":["ecosystem","name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_vulnerabilities","description":"Get known vulnerabilities for a package via OSV.dev (covers npm, PyPI, crates.io).\n\nArgs:\n    ecosystem: Package ecosystem: 'npm', 'pypi', or 'crates'.\n    name: Package name.\n    version: Specific version to check. If omitted, returns all known vulns for the package.\n\nReturns:\n    Dictionary with count and vulnerabilities list (OSV ID, summary, severity,\n    aliases like CVE numbers, affected version ranges, references, published/modified dates).","input_schema":{"additionalProperties":false,"properties":{"ecosystem":{"description":"Package ecosystem: 'npm', 'pypi', or 'crates'.","type":"string"},"name":{"description":"Package name.","type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Specific version to check. If omitted, returns all known vulns for the package."}},"required":["ecosystem","name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_packages","description":"Search for packages by keyword across npm, PyPI, or crates.io.\n\nArgs:\n    ecosystem: Package ecosystem: 'npm', 'pypi', or 'crates'.\n    query: Search keywords (e.g. 'http client async', 'date parsing').\n    limit: Maximum results (1–50, default 20).\n\nReturns:\n    Dictionary with count and packages list (name, version, description, downloads where available).","input_schema":{"additionalProperties":false,"properties":{"ecosystem":{"description":"Package ecosystem: 'npm', 'pypi', or 'crates'.","type":"string"},"query":{"description":"Search keywords (e.g. 'http client async', 'date parsing').","type":"string"},"limit":{"default":20,"description":"Maximum results (1–50, default 20).","type":"integer"}},"required":["ecosystem","query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/polygon","name":"Polygon (Market Data)","description":"Market data — stock prices, options, forex, and crypto from Polygon.io.","category":"Finance","source":"Polygon.io","endpoint":"/mcp/polygon/","tools":[{"name":"get_quote","description":"Get the latest quote snapshot for a US equity ticker.\n\nReturns real-time (or 15-minute delayed on free tier) bid/ask, last trade,\nintraday OHLCV, and day-over-day change for a single ticker.\n\nArgs:\n    ticker: Ticker symbol (e.g. \"AAPL\", \"MSFT\", \"TSLA\"). Case-insensitive.\n\nReturns:\n    ticker, name, last_price, bid, ask, open, high, low, close, volume,\n    vwap, prev_close, change, change_pct, updated (Unix nanoseconds).","input_schema":{"additionalProperties":false,"properties":{"ticker":{"description":"Ticker symbol (e.g. \"AAPL\", \"MSFT\", \"TSLA\"). Case-insensitive.","type":"string"}},"required":["ticker"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trades","description":"Get recent trade ticks for a US equity ticker on a specific date.\n\nReturns individual trade executions with price, size, exchange, and\ntrade conditions. Useful for microstructure analysis, VWAP calculations,\nand understanding intraday price action.\n\nArgs:\n    ticker: Ticker symbol (e.g. \"AAPL\"). Case-insensitive.\n    date: Trade date in YYYY-MM-DD format (e.g. \"2024-01-15\").\n    limit: Maximum trades to return (default 50, max 50000).\n\nReturns:\n    ticker, date, count, and trades list of {timestamp (Unix ns), price, size,\n    exchange (int code), conditions (list of condition codes)}.","input_schema":{"additionalProperties":false,"properties":{"ticker":{"description":"Ticker symbol (e.g. \"AAPL\"). Case-insensitive.","type":"string"},"date":{"description":"Trade date in YYYY-MM-DD format (e.g. \"2024-01-15\").","type":"string"},"limit":{"default":50,"description":"Maximum trades to return (default 50, max 50000).","type":"integer"}},"required":["ticker","date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_aggs","description":"Get OHLCV aggregate bars for a ticker over a date range.\n\nRetrieves candlestick/bar data at any granularity from 1-minute to annual.\nUse for charting, technical analysis, trend identification, and backtesting.\n\nTimespans: \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"\n\nExamples:\n- get_aggs(\"AAPL\", 1, \"day\", \"2024-01-01\", \"2024-03-31\") — daily bars for Q1 2024\n- get_aggs(\"MSFT\", 5, \"minute\", \"2024-01-15\", \"2024-01-15\") — 5-min bars for one day\n- get_aggs(\"SPY\", 1, \"week\", \"2023-01-01\", \"2024-01-01\") — weekly bars for 2023\n\nArgs:\n    ticker: Ticker symbol (e.g. \"AAPL\", \"SPY\", \"BTC-USD\"). Case-insensitive.\n    multiplier: Size of the aggregate window (e.g. 1, 5, 15).\n    timespan: Time unit — \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\".\n    from_date: Start date (YYYY-MM-DD).\n    to_date: End date (YYYY-MM-DD).\n    adjusted: Whether to adjust for splits and dividends (default True).\n    limit: Maximum bars to return (default 120, max 50000).\n\nReturns:\n    ticker, multiplier, timespan, adjusted, count, and bars list of\n    {timestamp (Unix ms), open, high, low, close, volume, vwap, transactions}.","input_schema":{"additionalProperties":false,"properties":{"ticker":{"description":"Ticker symbol (e.g. \"AAPL\", \"SPY\", \"BTC-USD\"). Case-insensitive.","type":"string"},"multiplier":{"description":"Size of the aggregate window (e.g. 1, 5, 15).","type":"integer"},"timespan":{"description":"Time unit — \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\".","type":"string"},"from_date":{"description":"Start date (YYYY-MM-DD).","type":"string"},"to_date":{"description":"End date (YYYY-MM-DD).","type":"string"},"adjusted":{"default":true,"description":"Whether to adjust for splits and dividends (default True).","type":"boolean"},"limit":{"default":120,"description":"Maximum bars to return (default 120, max 50000).","type":"integer"}},"required":["ticker","multiplier","timespan","from_date","to_date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_options_chain","description":"Get the options chain snapshot for an underlying equity ticker.\n\nReturns options contracts with strike, expiration, implied volatility,\nopen interest, and Greeks (delta, gamma, theta, vega). Use for options\nanalysis, hedging decisions, and volatility surface exploration.\n\nNote: Options data requires a paid Polygon.io subscription (Starter or above).\n\nArgs:\n    underlying: Underlying ticker symbol (e.g. \"AAPL\", \"SPY\"). Case-insensitive.\n    expiration_date: Filter to a specific expiration (YYYY-MM-DD). If omitted, returns all expirations.\n    contract_type: Filter by \"call\" or \"put\". If omitted, returns both.\n    strike_price_gte: Minimum strike price filter.\n    strike_price_lte: Maximum strike price filter.\n    limit: Maximum contracts to return (default 50).\n\nReturns:\n    underlying, count, and contracts list of {ticker, contract_type, strike_price,\n    expiration_date, exercise_style, implied_volatility, open_interest, delta,\n    gamma, theta, vega, last_price, volume}.","input_schema":{"additionalProperties":false,"properties":{"underlying":{"description":"Underlying ticker symbol (e.g. \"AAPL\", \"SPY\"). Case-insensitive.","type":"string"},"expiration_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter to a specific expiration (YYYY-MM-DD). If omitted, returns all expirations."},"contract_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by \"call\" or \"put\". If omitted, returns both."},"strike_price_gte":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Minimum strike price filter."},"strike_price_lte":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Maximum strike price filter."},"limit":{"default":50,"description":"Maximum contracts to return (default 50).","type":"integer"}},"required":["underlying"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_tickers","description":"Search for ticker symbols and company names on Polygon.io.\n\nUse this to find the correct ticker symbol when you know a company name\nbut not its symbol, or to explore what's available in a given market.\n\nMarkets: \"stocks\" (US equities), \"crypto\" (cryptocurrency), \"fx\" (forex),\n         \"otc\" (OTC/pink sheets), \"indices\" (market indices)\n\nExamples:\n- search_tickers(\"Apple\") — find AAPL and related tickers\n- search_tickers(\"bitcoin\", market=\"crypto\") — find BTC crypto pairs\n- search_tickers(\"EUR\", market=\"fx\") — find EUR currency pairs\n- search_tickers(\"S&P 500\", market=\"indices\") — find S&P 500 index\n\nArgs:\n    query: Search string — company name, partial ticker, or keyword.\n    market: Market type (default \"stocks\").\n    active: If True, only return currently active/listed tickers (default True).\n    limit: Maximum results to return (default 20).\n\nReturns:\n    count and tickers list of {ticker, name, market, locale, type,\n    currency, primary_exchange, active}.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search string — company name, partial ticker, or keyword.","type":"string"},"market":{"default":"stocks","description":"Market type (default \"stocks\").","type":"string"},"active":{"default":true,"description":"If True, only return currently active/listed tickers (default True).","type":"boolean"},"limit":{"default":20,"description":"Maximum results to return (default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/pubchem","name":"PubChem","description":"Chemical compound data — structures, properties, bioactivity, and safety information.","category":"Science","source":"PubChem (NCBI)","endpoint":"/mcp/pubchem/","tools":[{"name":"get_compound","description":"Look up a chemical compound by name, CID, InChIKey, or SMILES.\n\nPubChem covers 100M+ chemical structures. Returns molecular formula, weight,\nSMILES, InChI, IUPAC name, and key physicochemical descriptors.\n\nArgs:\n    identifier: The compound identifier. Examples:\n        - By name: \"aspirin\", \"caffeine\", \"glucose\"\n        - By CID: \"2244\" (aspirin's PubChem CID)\n        - By InChIKey: \"BSYNRYMUTXBXSQ-UHFFFAOYSA-N\"\n        - By SMILES: \"CC(=O)Oc1ccccc1C(=O)O\"\n    namespace: How to interpret the identifier. One of:\n        \"name\" (default), \"cid\", \"inchikey\", \"smiles\".\n\nReturns:\n    Compound record with cid, iupac_name, molecular_formula, molecular_weight,\n    canonical_smiles, isomeric_smiles, inchi, inchikey, xlogp, exact_mass,\n    tpsa, hbond_donors, hbond_acceptors, rotatable_bonds, heavy_atom_count,\n    charge, and complexity.","input_schema":{"additionalProperties":false,"properties":{"identifier":{"description":"The compound identifier. Examples: - By name: \"aspirin\", \"caffeine\", \"glucose\" - By CID: \"2244\" (aspirin's PubChem CID) - By InChIKey: \"BSYNRYMUTXBXSQ-UHFFFAOYSA-N\" - By SMILES: \"CC(=O)O...","type":"string"},"namespace":{"default":"name","description":"How to interpret the identifier. One of: \"name\" (default), \"cid\", \"inchikey\", \"smiles\".","type":"string"}},"required":["identifier"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_compounds","description":"Search PubChem for chemical compounds by name or keyword.\n\nReturns a compact list of matching compounds (CID, IUPAC name, formula, weight).\nUse get_compound with the returned CID for full details.\n\nArgs:\n    query: Chemical name or keyword (e.g., \"aspirin\", \"beta-lactam\", \"serotonin\").\n    max_results: Number of results to return (1–50, default 10).\n\nReturns:\n    List of matching compounds with cid, iupac_name, molecular_formula, molecular_weight.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Chemical name or keyword (e.g., \"aspirin\", \"beta-lactam\", \"serotonin\").","type":"string"},"max_results":{"default":10,"description":"Number of results to return (1–50, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_compound_properties","description":"Fetch physicochemical properties for a PubChem compound by CID.\n\nReturns a richer property set than get_compound, including stereochemistry\ncounts, covalent units, and monoisotopic mass.\n\nArgs:\n    cid: PubChem Compound ID (e.g., 2244 for aspirin). Found in search_compounds results.\n    properties: Optional list of specific property names to fetch. If omitted, returns\n        all standard properties. Available properties include:\n        MolecularFormula, MolecularWeight, CanonicalSMILES, IsomericSMILES,\n        InChI, InChIKey, IUPACName, XLogP, ExactMass, MonoisotopicMass,\n        TPSA, Complexity, Charge, HBondDonorCount, HBondAcceptorCount,\n        RotatableBondCount, HeavyAtomCount, CovalentUnitCount,\n        AtomStereoCount, BondStereoCount.\n\nReturns:\n    Dict of property name → value for the requested properties.","input_schema":{"additionalProperties":false,"properties":{"cid":{"description":"PubChem Compound ID (e.g., 2244 for aspirin). Found in search_compounds results.","type":"integer"},"properties":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"description":"Optional list of specific property names to fetch. If omitted, returns all standard properties. Available properties include: MolecularFormula, MolecularWeight, CanonicalSMILES, IsomericSMILES, InC...","default":null}},"required":["cid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"find_similar_compounds","description":"Find structurally similar compounds using 2D Tanimoto similarity.\n\nUses PubChem's fast 2D fingerprint similarity search. Useful for identifying\ndrug analogs, structural scaffolds, or related molecules.\n\nArgs:\n    cid: PubChem Compound ID to use as the query structure.\n    threshold: Tanimoto similarity threshold (0–100, default 90). Higher values\n        return only very close structural matches. 90 is a common threshold for\n        drug analog searches.\n    max_results: Number of similar compounds to return (1–50, default 10).\n\nReturns:\n    List of similar compounds with cid, iupac_name, molecular_formula, molecular_weight.","input_schema":{"additionalProperties":false,"properties":{"cid":{"description":"PubChem Compound ID to use as the query structure.","type":"integer"},"threshold":{"default":90,"description":"Tanimoto similarity threshold (0–100, default 90). Higher values return only very close structural matches. 90 is a common threshold for drug analog searches.","type":"integer"},"max_results":{"default":10,"description":"Number of similar compounds to return (1–50, default 10).","type":"integer"}},"required":["cid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/pubmed","name":"PubMed","description":"Biomedical literature search — PubMed abstracts, citations, and MeSH term lookup. For clinical trials use the clinicaltrials server.","category":"Science","source":"PubMed (NCBI)","endpoint":"/mcp/pubmed/","tools":[{"name":"search_pubmed","description":"Search PubMed for biomedical literature.\n\nSearches 35M+ abstracts across all biomedical and life science fields.\nReturns title, authors, journal, publication date, and DOI.\n\nArgs:\n    query: Search query. Supports PubMed syntax (e.g., \"diabetes[MeSH] AND insulin\",\n           \"COVID-19 vaccine efficacy\"). Plain keywords also work.\n    max_results: Number of results to return (1–100, default 10).\n    date_from: Filter by publication date start (YYYY/MM/DD or YYYY).\n    date_to: Filter by publication date end (YYYY/MM/DD or YYYY).\n\nReturns:\n    List of articles with pmid, title, authors, journal, pub_date, and doi.\n    Note: Abstracts are not included in search results — use get_article for full text.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query. Supports PubMed syntax (e.g., \"diabetes[MeSH] AND insulin\", \"COVID-19 vaccine efficacy\"). Plain keywords also work.","type":"string"},"max_results":{"default":10,"description":"Number of results to return (1–100, default 10).","type":"integer"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by publication date start (YYYY/MM/DD or YYYY)."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by publication date end (YYYY/MM/DD or YYYY)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_article","description":"Fetch full metadata and abstract for a PubMed article.\n\nArgs:\n    pmid: PubMed ID (e.g., \"33972843\"). Found in search_pubmed results.\n\nReturns:\n    Full article record including title, authors, abstract, journal, pub_date, and doi.","input_schema":{"additionalProperties":false,"properties":{"pmid":{"description":"PubMed ID (e.g., \"33972843\"). Found in search_pubmed results.","type":"string"}},"required":["pmid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"mesh_lookup","description":"Look up a MeSH (Medical Subject Headings) term.\n\nMeSH is the NLM's controlled vocabulary for indexing biomedical literature.\nUse this to find canonical term names, definitions, and related terms.\n\nArgs:\n    term: The medical term to look up (e.g., \"Diabetes Mellitus\", \"Hypertension\").\n\nReturns:\n    MeSH entry with canonical name, scope note (definition), tree numbers,\n    and synonyms. Returns empty result if term not found.","input_schema":{"additionalProperties":false,"properties":{"term":{"description":"The medical term to look up (e.g., \"Diabetes Mellitus\", \"Hypertension\").","type":"string"}},"required":["term"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_trials","description":"Search ClinicalTrials.gov for clinical trials by condition.\n\nReturns trial summaries including NCT ID, title, status, phase, conditions,\ninterventions, and sponsor.\n\nArgs:\n    condition: Medical condition to search for.\n    status: Trial status filter.\n    phase: Trial phase filter.\n    country: Country filter.\n    max_results: Number of results (1–50, default 10).\n\nReturns:\n    List of trial summaries.","input_schema":{"additionalProperties":false,"properties":{"condition":{"description":"Medical condition to search for (e.g., \"COVID-19\", \"Type 2 Diabetes\").","type":"string"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Trial status filter (e.g., RECRUITING, COMPLETED, ACTIVE_NOT_RECRUITING)."},"phase":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Trial phase filter (e.g., PHASE1, PHASE2, PHASE3, PHASE4)."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Country filter (e.g., United States, Norway)."},"max_results":{"default":10,"description":"Number of results to return (1–50, default 10).","type":"integer"}},"required":["condition"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trial","description":"Fetch detailed information about a specific clinical trial.\n\nArgs:\n    nct_id: ClinicalTrials.gov NCT ID.\n\nReturns:\n    Full trial record including eligibility criteria and locations.","input_schema":{"additionalProperties":false,"properties":{"nct_id":{"description":"ClinicalTrials.gov NCT ID (e.g., \"NCT04470427\").","type":"string"}},"required":["nct_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/sec-edgar","name":"SEC EDGAR","description":"SEC filings — 10-K, 10-Q, 8-K, and other company disclosures.","category":"Business","source":"SEC EDGAR","endpoint":"/mcp/sec-edgar/","tools":[{"name":"search_filings","description":"Full-text search over all public SEC filings (10-K, 10-Q, 8-K, proxy, and more).\n\nArgs:\n    query: Search terms — phrase-matched against filing text.\n           Examples: \"artificial intelligence\", \"climate risk\", \"supply chain\".\n    form_type: Filter to a specific form type: \"10-K\", \"10-Q\", \"8-K\", \"DEF 14A\".\n               Omit to search all form types.\n    company: Filter by company name (partial match).\n    date_from: Earliest filing date — YYYY-MM-DD.\n    date_to: Latest filing date — YYYY-MM-DD.\n    max_results: Maximum filings to return (1–100, default 20).\n\nReturns:\n    List of matching filings with accession number, form type, filing date,\n    company name, reporting period, and EDGAR viewer URL.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms — phrase-matched against filing text.","type":"string"},"form_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"max_results":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_company_filings","description":"Retrieve recent SEC filings for any public company by ticker or CIK.\n\nArgs:\n    ticker_or_cik: Company identifier — either a ticker symbol (e.g. \"AAPL\", \"MSFT\")\n                   or a numeric CIK (e.g. \"320193\" or \"0000320193\").\n    form_type: Filter to a specific form type: \"10-K\", \"10-Q\", \"8-K\", etc.\n               Omit to return all recent filings.\n    limit: Maximum filings to return (default 10).\n\nReturns:\n    Company metadata (name, CIK, ticker, industry) and a list of filings,\n    each with accession number, form type, dates, and document URL.","input_schema":{"additionalProperties":false,"properties":{"ticker_or_cik":{"description":"Company identifier — either a ticker symbol (e.g. \"AAPL\", \"MSFT\") or a numeric CIK (e.g. \"320193\" or \"0000320193\").","type":"string"},"form_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter to a specific form type: \"10-K\", \"10-Q\", \"8-K\", etc. Omit to return all recent filings."},"limit":{"default":10,"description":"Maximum filings to return (default 10).","type":"integer"}},"required":["ticker_or_cik"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_financial_facts","description":"Retrieve XBRL-tagged financial data for a company concept across all reporting periods.\n\nCommon concepts (us-gaap taxonomy):\n- Revenue: \"Revenues\" or \"RevenueFromContractWithCustomerExcludingAssessedTax\"\n- Net income: \"NetIncomeLoss\"\n- Total assets: \"Assets\"\n- Cash: \"CashAndCashEquivalentsAtCarryingValue\"\n- EPS (basic): \"EarningsPerShareBasic\" (use unit=\"USD/shares\")\n\nArgs:\n    ticker_or_cik: Ticker symbol (e.g. \"AAPL\") or numeric CIK (e.g. \"320193\").\n    concept: XBRL concept tag name. Case-sensitive, CamelCase.\n    unit: Unit of measure — \"USD\", \"shares\", or \"USD/shares\". Default \"USD\".\n    taxonomy: XBRL taxonomy — \"us-gaap\" (default) or \"dei\".\n\nReturns:\n    Company name, concept label, and a list of facts sorted newest-first.","input_schema":{"additionalProperties":false,"properties":{"ticker_or_cik":{"description":"Ticker symbol (e.g. \"AAPL\") or numeric CIK (e.g. \"320193\").","type":"string"},"concept":{"description":"XBRL concept tag name. Case-sensitive, CamelCase.","type":"string"},"unit":{"default":"USD","description":"Unit of measure — \"USD\", \"shares\", or \"USD/shares\". Default \"USD\".","type":"string"},"taxonomy":{"default":"us-gaap","description":"XBRL taxonomy — \"us-gaap\" (default) or \"dei\".","type":"string"}},"required":["ticker_or_cik","concept"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_filing_section","description":"Extract a specific section from a public SEC filing as plain text.\n\nArgs:\n    accession_number: EDGAR accession number — e.g. \"0000320193-23-000106\".\n    section: Section to extract. Named sections: \"business\", \"risk_factors\",\n             \"mda\", \"financial_statements\", \"executive_compensation\",\n             \"quantitative_risk\", \"controls\".\n             Also accepts raw item numbers: \"1\", \"1A\", \"7\", \"7A\", \"8\", \"9A\", \"11\".\n\nReturns:\n    Section name, source URL, and extracted plain text (up to ~8000 chars).","input_schema":{"additionalProperties":false,"properties":{"accession_number":{"description":"EDGAR accession number — e.g. \"0000320193-23-000106\".","type":"string"},"section":{"description":"Section to extract. Named sections: \"business\", \"risk_factors\", \"mda\", \"financial_statements\", \"executive_compensation\", \"quantitative_risk\", \"controls\". Also accepts raw item numbers...","type":"string"}},"required":["accession_number","section"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/scb","name":"SCB (Statistics Sweden)","description":"Swedish official statistics — population, labour market, national accounts, trade, prices, environment, and economic data.","category":"Economics","source":"Statistics Sweden (SCB)","endpoint":"/mcp/scb/","tools":[{"name":"list_subjects","description":"List SCB's top-level statistical subject categories.\n\nSCB (Statistics Sweden) publishes thousands of tables covering population,\nlabour market, national accounts, trade, prices, environment, education,\ndemocracy, and more. This tool lists the main subject areas.\n\nUse the returned IDs with browse_subject to navigate deeper.\n\nArgs:\n    lang: Language — 'en' for English, 'sv' for Swedish (default 'en').\n\nReturns:\n    List of subject categories with id, text, and type (folder or table).","input_schema":{"additionalProperties":false,"properties":{"lang":{"default":"en","description":"Language — 'en' for English, 'sv' for Swedish.","type":"string"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"browse_subject","description":"Browse a subject path to find sub-categories and tables.\n\nNavigate the SCB table hierarchy by providing a path from list_subjects\nor a previous browse_subject call. Returns child folders and tables.\n\nCommon top-level codes: AM (Labour market), BE (Population), BO (Housing),\nEN (Energy), FM (Financial markets), HA (Trade), HE (Household finances),\nHS (Health), JO (Agriculture), MI (Environment), NR (National accounts),\nNV (Business activities), PR (Prices), TK (Transport), UF (Education).\n\nWhen you reach a table (type='table'), use get_table_metadata with the\nfull path to see its dimensions and variables.\n\nArgs:\n    path: Subject path (e.g. 'BE', 'BE/BE0101', 'AM/AM0401').\n    lang: Language — 'en' or 'sv'.\n\nReturns:\n    List of items at this path — folders to navigate deeper, or tables to query.","input_schema":{"additionalProperties":false,"properties":{"path":{"description":"Subject path (e.g. 'BE', 'BE/BE0101', 'AM/AM0401').","type":"string"},"lang":{"default":"en","description":"Language — 'en' or 'sv'.","type":"string"}},"required":["path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_table_metadata","description":"Get the structure of an SCB table — its dimensions, variables, and valid values.\n\nUse this before querying data to understand what filters are available.\nEach variable lists its valid codes and labels. Variables marked 'elimination: true'\ncan be omitted from queries to get aggregated totals.\n\nTime variables are flagged with 'time: true'. Time codes follow patterns:\n'2024' (annual), '2024K3' (quarterly), '2024M06' (monthly).\n\nArgs:\n    table_path: Full path to the table (e.g. 'BE/BE0101/BE0101A/BefolkManadCKM').\n    lang: Language — 'en' or 'sv'.\n\nReturns:\n    Table title and list of variables with codes, labels, and valid values.","input_schema":{"additionalProperties":false,"properties":{"table_path":{"description":"Full path to the table (e.g. 'BE/BE0101/BE0101A/BefolkManadCKM').","type":"string"},"lang":{"default":"en","description":"Language — 'en' or 'sv'.","type":"string"}},"required":["table_path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Query data from an SCB statistical table.\n\nWithout filters, returns the latest top_n time periods for all dimensions.\nWith filters, you can select specific dimension values.\n\nEach filter dict needs: 'code' (variable code from metadata), 'filter' type,\nand 'values' list. Filter types:\n- 'item': select specific codes, e.g. {\"code\": \"Region\", \"filter\": \"item\", \"values\": [\"00\"]}\n- 'top': last N periods, e.g. {\"code\": \"Tid\", \"filter\": \"top\", \"values\": [\"5\"]}\n- 'all': all values, e.g. {\"code\": \"Kon\", \"filter\": \"all\", \"values\": [\"*\"]}\n\nExample — Sweden total population, last 5 months:\ntable_path='BE/BE0101/BE0101A/BefolkManadCKM'\nfilters=[\n    {\"code\": \"Region\", \"filter\": \"item\", \"values\": [\"00\"]},\n    {\"code\": \"Alder\", \"filter\": \"item\", \"values\": [\"tot\"]},\n    {\"code\": \"Kon\", \"filter\": \"item\", \"values\": [\"1+2\"]},\n    {\"code\": \"ContentsCode\", \"filter\": \"item\", \"values\": [\"BE0101N1\"]},\n    {\"code\": \"Tid\", \"filter\": \"top\", \"values\": [\"5\"]}\n]\n\nArgs:\n    table_path: Full path to the SCB table.\n    filters: List of dimension filters. See get_table_metadata for valid codes.\n    top_n: If no filters given, fetch this many latest time periods (default 5).\n    lang: Language — 'en' or 'sv'.\n\nReturns:\n    Parsed data with metadata (label, source, updated) and a list of records.\n    Each record has labeled dimension values and a 'value' field.","input_schema":{"additionalProperties":false,"properties":{"table_path":{"description":"Full path to the SCB table.","type":"string"},"filters":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"default":null,"description":"List of dimension filters. See get_table_metadata for valid codes."},"top_n":{"default":5,"description":"If no filters given, fetch this many latest time periods (default 5).","type":"integer"},"lang":{"default":"en","description":"Language — 'en' or 'sv'.","type":"string"}},"required":["table_path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ssb","name":"SSB (Statistics Norway)","description":"Norwegian official statistics — population, employment, income, housing, trade, and economic data.","category":"Economics","source":"Statistics Norway (SSB)","endpoint":"/mcp/ssb/","tools":[{"name":"search_tables","description":"Search SSB's statistical table catalog by keyword.\n\nSSB (Statistics Norway) publishes thousands of tables covering population,\nemployment, income, housing, trade, prices, health, education, and more.\nThis tool searches the full catalog.\n\nCommon queries: 'population', 'GDP', 'consumer price index', 'unemployment',\n'housing prices', 'immigration', 'wages', 'births', 'exports'.\n\nArgs:\n    query: Search keywords (e.g. 'population by municipality').\n    lang: Language — 'en' for English, 'no' for Norwegian (default 'en').\n\nReturns:\n    List of matching tables with table_id, title, path, and relevance score.\n    Use the table_id with get_table_metadata or get_data to explore further.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keywords (e.g. 'population by municipality').","type":"string"},"lang":{"default":"en","description":"Language — 'en' for English, 'no' for Norwegian (default 'en').","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_table_metadata","description":"Get the structure of an SSB table — its dimensions, variables, and valid values.\n\nUse this before querying data to understand what filters are available.\nEach variable lists its valid codes and labels. Variables marked 'elimination: true'\ncan be omitted from queries to get aggregated totals.\n\nTime variables are flagged with 'time: true'. Time codes follow patterns:\n'2024' (annual), '2024K3' (quarterly), '2024M06' (monthly).\n\nArgs:\n    table_id: SSB table ID (e.g. '07459' for population, '03013' for CPI).\n    lang: Language — 'en' or 'no'.\n\nReturns:\n    Table title and list of variables with codes, labels, and valid values.","input_schema":{"additionalProperties":false,"properties":{"table_id":{"description":"SSB table ID (e.g. '07459' for population, '03013' for CPI).","type":"string"},"lang":{"default":"en","description":"Language — 'en' or 'no'.","type":"string"}},"required":["table_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Query data from an SSB statistical table.\n\nWithout filters, returns the latest top_n time periods for all dimensions.\nWith filters, you can select specific dimension values.\n\nEach filter dict needs: 'code' (variable code from metadata), 'filter' type,\nand 'values' list. Filter types:\n- 'item': select specific codes, e.g. {\"code\": \"Region\", \"filter\": \"item\", \"values\": [\"0\"]}\n- 'top': last N periods, e.g. {\"code\": \"Tid\", \"filter\": \"top\", \"values\": [\"5\"]}\n- 'all': all values, e.g. {\"code\": \"Boligtype\", \"filter\": \"all\", \"values\": [\"*\"]}\n\nExample — Norway total population, last 5 years (table 07459):\nfilters=[\n    {\"code\": \"Region\", \"filter\": \"item\", \"values\": [\"0\"]},\n    {\"code\": \"ContentsCode\", \"filter\": \"item\", \"values\": [\"Personer1\"]},\n    {\"code\": \"Tid\", \"filter\": \"top\", \"values\": [\"5\"]}\n]\n\nArgs:\n    table_id: SSB table ID.\n    filters: List of dimension filters. See get_table_metadata for valid codes.\n    top_n: If no filters given, fetch this many latest time periods (default 5).\n    lang: Language — 'en' or 'no'.\n\nReturns:\n    Parsed data with metadata (label, source, updated) and a list of records.\n    Each record has labeled dimension values and a 'value' field.","input_schema":{"additionalProperties":false,"properties":{"table_id":{"description":"SSB table ID.","type":"string"},"filters":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"default":null,"description":"List of dimension filters. See get_table_metadata for valid codes."},"top_n":{"default":5,"description":"If no filters given, fetch this many latest time periods (default 5).","type":"integer"},"lang":{"default":"en","description":"Language — 'en' or 'no'.","type":"string"}},"required":["table_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_subjects","description":"List SSB's top-level subject categories.\n\nReturns the 23 main statistical subject areas (e.g. Population, Labour market,\nNational accounts, Health, Education). Use the returned IDs with browse_subject\nto navigate deeper into the hierarchy.\n\nArgs:\n    lang: Language — 'en' or 'no'.\n\nReturns:\n    List of subject categories with id, text, and type (folder or table).","input_schema":{"additionalProperties":false,"properties":{"lang":{"default":"en","description":"Language — 'en' or 'no'.","type":"string"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"browse_subject","description":"Browse a subject path to find sub-categories and tables.\n\nNavigate the SSB table hierarchy by providing a path from list_subjects\nor a previous browse_subject call. Returns child folders and tables.\n\nExample paths: 'bb' (Construction/housing), 'bb/bb01' (Building activity),\n'al' (National accounts/public finances).\n\nArgs:\n    path: Subject path (e.g. 'bb', 'bb/bb01').\n    lang: Language — 'en' or 'no'.\n\nReturns:\n    List of items at this path — folders to navigate deeper, or tables to query.","input_schema":{"additionalProperties":false,"properties":{"path":{"description":"Subject path (e.g. 'bb', 'bb/bb01').","type":"string"},"lang":{"default":"en","description":"Language — 'en' or 'no'.","type":"string"}},"required":["path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/statfin","name":"Statistics Finland (Tilastokeskus)","description":"Finnish official statistics — population, employment, income, housing, trade, and economic data.","category":"Economics","source":"Statistics Finland (Tilastokeskus)","endpoint":"/mcp/statfin/","tools":[{"name":"search_tables","description":"Search Statistics Finland's statistical table catalog by keyword.\n\nStatistics Finland (Tilastokeskus) publishes thousands of tables covering\npopulation, employment, income, housing, trade, prices, health, education,\nand more. This tool searches the full StatFin catalog.\n\nCommon queries: 'population', 'GDP', 'consumer price index', 'unemployment',\n'housing prices', 'immigration', 'wages', 'births', 'exports'.\n\nArgs:\n    query: Search keywords (e.g. 'population by municipality').\n    lang: Language — 'en' for English, 'fi' for Finnish (default 'en').\n\nReturns:\n    List of matching tables with table_path, title, and relevance score.\n    Use the table_path with get_table_metadata or get_data to explore further.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keywords (e.g. 'population by municipality').","type":"string"},"lang":{"default":"en","description":"Language — 'en' for English, 'fi' for Finnish (default 'en').","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_table_metadata","description":"Get the structure of a Statistics Finland table — its dimensions, variables, and valid values.\n\nUse this before querying data to understand what filters are available.\nEach variable lists its valid codes and labels. Variables marked 'elimination: true'\ncan be omitted from queries to get aggregated totals.\n\nTime variables are flagged with 'time: true'. Time codes follow patterns:\n'2024' (annual), '2024Q3' (quarterly), '2024M06' (monthly).\n\nArgs:\n    table_path: Table path from search results, e.g. 'vaerak/statfin_vaerak_pxt_11rb.px'.\n    lang: Language — 'en' or 'fi'.\n\nReturns:\n    Table title and list of variables with codes, labels, and valid values.","input_schema":{"additionalProperties":false,"properties":{"table_path":{"description":"Table path from search results, e.g. 'vaerak/statfin_vaerak_pxt_11rb.px'. Combine search result 'path' and 'table_id'.","type":"string"},"lang":{"default":"en","description":"Language — 'en' or 'fi'.","type":"string"}},"required":["table_path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Query data from a Statistics Finland statistical table.\n\nWithout filters, returns the latest top_n time periods for all dimensions.\nWith filters, you can select specific dimension values.\n\nEach filter dict needs: 'code' (variable code from metadata), 'filter' type,\nand 'values' list. Filter types:\n- 'item': select specific codes, e.g. {\"code\": \"Vuosi\", \"filter\": \"item\", \"values\": [\"2024\"]}\n- 'top': last N periods, e.g. {\"code\": \"Vuosi\", \"filter\": \"top\", \"values\": [\"5\"]}\n- 'all': all values, e.g. {\"code\": \"Sukupuoli\", \"filter\": \"all\", \"values\": [\"*\"]}\n\nExample — Finland total population, last 3 years (table vaerak/statfin_vaerak_pxt_11rb.px):\nfilters=[\n    {\"code\": \"Sukupuoli\", \"filter\": \"item\", \"values\": [\"SSS\"]},\n    {\"code\": \"Tiedot\", \"filter\": \"item\", \"values\": [\"vaesto\"]},\n    {\"code\": \"Vuosi\", \"filter\": \"top\", \"values\": [\"3\"]}\n]\n\nArgs:\n    table_path: Table path, e.g. 'vaerak/statfin_vaerak_pxt_11rb.px'.\n    filters: List of dimension filters. See get_table_metadata for valid codes.\n    top_n: If no filters given, fetch this many latest time periods (default 5).\n    lang: Language — 'en' or 'fi'.\n\nReturns:\n    Parsed data with metadata (label, source, updated) and a list of records.\n    Each record has labeled dimension values and a 'value' field.","input_schema":{"additionalProperties":false,"properties":{"table_path":{"description":"Table path, e.g. 'vaerak/statfin_vaerak_pxt_11rb.px'.","type":"string"},"filters":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"default":null,"description":"List of dimension filters. See get_table_metadata for valid codes."},"top_n":{"default":5,"description":"If no filters given, fetch this many latest time periods (default 5).","type":"integer"},"lang":{"default":"en","description":"Language — 'en' or 'fi'.","type":"string"}},"required":["table_path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_subjects","description":"List Statistics Finland's top-level subject categories.\n\nReturns the main statistical subject areas (e.g. Population, Labour market,\nNational accounts, Health, Education). Use the returned IDs with browse_subject\nto navigate deeper into the hierarchy.\n\nArgs:\n    lang: Language — 'en' or 'fi'.\n\nReturns:\n    List of subject categories with id, text, and type (folder or table).","input_schema":{"additionalProperties":false,"properties":{"lang":{"default":"en","description":"Language — 'en' or 'fi'.","type":"string"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"browse_subject","description":"Browse a subject path to find sub-categories and tables.\n\nNavigate the Statistics Finland table hierarchy by providing a path from\nlist_subjects or a previous browse_subject call. Returns child folders and tables.\n\nExample paths: 'vaerak' (Population structure), 'tyti' (Labour force survey),\n'vtp' (Annual national accounts).\n\nArgs:\n    path: Subject path (e.g. 'vaerak', 'tyti').\n    lang: Language — 'en' or 'fi'.\n\nReturns:\n    List of items at this path — folders to navigate deeper, or tables to query.","input_schema":{"additionalProperties":false,"properties":{"path":{"description":"Subject path (e.g. 'vaerak', 'tyti').","type":"string"},"lang":{"default":"en","description":"Language — 'en' or 'fi'.","type":"string"}},"required":["path"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/stortinget","name":"Stortinget (Norwegian Parliament)","description":"Norwegian Parliament data — representatives, committees, cases/bills, votes, and topic taxonomy.","category":"Government","source":"Stortinget (data.stortinget.no)","endpoint":"/mcp/stortinget/","tools":[{"name":"list_sessions","description":"List all parliamentary sessions in the Norwegian Storting.\n\nReturns sessions from 1986-87 to the current session, each identified by\na session ID like '2024-2025'. Use the session ID with other tools\n(get_cases, list_committees) to query data within a specific session.\n\nReturns:\n    Dict with 'count' and 'sessions' list. Each session has id, from, to dates.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_current_representatives","description":"Get all current members of the Norwegian Parliament (Stortinget).\n\nReturns the full list of sitting representatives, including their party,\ncounty, committee assignments, and contact information.\n\nReturns:\n    Dict with 'count' and 'representatives' list. Each has id, name, party,\n    county, committees, email, gender, and date_of_birth.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_representatives","description":"Get representatives for a specific parliamentary period.\n\nParliamentary periods span four years (e.g. '2021-2025', '2017-2021').\nUse list_sessions to find valid period IDs.\n\nArgs:\n    period_id: Parliamentary period (e.g. '2021-2025').\n\nReturns:\n    Dict with 'count' and 'representatives' list.","input_schema":{"additionalProperties":false,"properties":{"period_id":{"description":"Parliamentary period (e.g. '2021-2025').","type":"string"}},"required":["period_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_parties","description":"List political parties in the Norwegian Parliament.\n\nWithout a session_id, returns all parties (historical and current).\nWith a session_id, returns only parties represented in that session.\n\nArgs:\n    session_id: Optional session (e.g. '2024-2025'). Omit for all parties.\n\nReturns:\n    Dict with 'count' and 'parties' list. Each has id and name.","input_schema":{"additionalProperties":false,"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional session (e.g. '2024-2025'). Omit for all parties."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_committees","description":"List parliamentary committees for a given session.\n\nCommittees handle specific policy areas: finance, justice, health, energy, etc.\nEach session typically has 15-18 standing committees.\n\nArgs:\n    session_id: Parliamentary session (e.g. '2024-2025').\n\nReturns:\n    Dict with 'count' and 'committees' list. Each has id and name.","input_schema":{"additionalProperties":false,"properties":{"session_id":{"description":"Parliamentary session (e.g. '2024-2025').","type":"string"}},"required":["session_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_cases","description":"Get all cases (bills, propositions, questions) for a parliamentary session.\n\nReturns all cases processed during the session, including their committee\nassignment, topics, and status. Use the case ID with get_case for full\ndetails or get_votes for voting results.\n\nArgs:\n    session_id: Parliamentary session (e.g. '2024-2025').\n\nReturns:\n    Dict with 'count' and 'cases' list. Each has id, title, committee,\n    topics, and status.","input_schema":{"additionalProperties":false,"properties":{"session_id":{"description":"Parliamentary session (e.g. '2024-2025').","type":"string"}},"required":["session_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_case","description":"Get detailed information about a specific parliamentary case.\n\nReturns full case details including proposers, rapporteurs, committee,\ntopics, and reference information.\n\nArgs:\n    case_id: Numeric case ID (e.g. 103839).\n\nReturns:\n    Full case details with proposers, rapporteurs, topics, and committee info.","input_schema":{"additionalProperties":false,"properties":{"case_id":{"description":"Numeric case ID (e.g. 103839).","type":"integer"}},"required":["case_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_votes","description":"Get voting results for a parliamentary case.\n\nReturns all votes taken on the case, including for/against counts,\nwhether it passed, and the specific motion being voted on.\n\nArgs:\n    case_id: Numeric case ID (e.g. 103839).\n\nReturns:\n    Dict with 'count' and 'votes' list. Each vote has for/against/absent\n    counts, passed status, and the motion topic.","input_schema":{"additionalProperties":false,"properties":{"case_id":{"description":"Numeric case ID (e.g. 103839).","type":"integer"}},"required":["case_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_topics","description":"List the parliamentary topic taxonomy.\n\nReturns the two-level hierarchy of policy topics used to classify cases.\nMain topics include areas like Energy, Finance, Defense, Education, Health.\nEach main topic has subtopics for more specific classification.\n\nReturns:\n    Dict with 'count' and 'topics' list. Each has id, name, is_main_topic,\n    and a subtopics list.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/this-day","name":"This Day in History","description":"Historical events, births, and deaths for any date — powered by Wikipedia.","category":"Reference","source":"Wikipedia (Wikimedia REST API)","endpoint":"/mcp/this-day/","tools":[{"name":"get_on_this_day","description":"Get historical events, births, and deaths that happened on this day.\n\nReturns notable events, famous births, and notable deaths for a given month/day\nfrom Wikipedia's comprehensive historical database. Defaults to today's date.","input_schema":{"additionalProperties":false,"properties":{"month":{"anyOf":[{"maximum":12,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Month (1-12). Defaults to today."},"day":{"anyOf":[{"maximum":31,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Day of month (1-31). Defaults to today."},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter: 'events', 'births', or 'deaths'. Omit for all three."},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Max entries per category (default: 20, max: 100)."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/global-tenders","name":"Global Tenders","description":"EU public procurement notices — contract opportunities and award results.","category":"Legal","source":"TED (Tenders Electronic Daily)","endpoint":"/mcp/global-tenders/","tools":[{"name":"search_tenders","description":"Search active public procurement notices (tenders) across EU, UK, and US sources.\n\nArgs:\n    query: Full-text search term (e.g. \"software development\", \"road construction\").\n    country: ISO 3166-1 alpha-2 country code to restrict search (e.g. \"DE\", \"NO\", \"GB\", \"US\").\n             Omit to search all EU countries via TED.\n    sector_cpv: CPV code prefix to filter by sector (e.g. \"72000000\" for IT services).\n                Only applied for EU/TED searches.\n    date_from: ISO 8601 date (YYYY-MM-DD) — only return notices published on or after this date.\n    value_min_eur: Minimum estimated contract value in EUR.\n    limit: Maximum number of results to return (1-50, default 10).\n\nReturns:\n    List of tender notices with title, contracting authority, country, deadline,\n    estimated value, CPV codes, and source URL.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Full-text search term (e.g. \"software development\", \"road construction\").","type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code to restrict search (e.g. \"DE\", \"NO\", \"GB\", \"US\"). Omit to search all EU countries via TED."},"sector_cpv":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"CPV code prefix to filter by sector (e.g. \"72000000\" for IT services). Only applied for EU/TED searches."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 date (YYYY-MM-DD) — only return notices published on or after this date."},"value_min_eur":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Minimum estimated contract value in EUR."},"limit":{"default":10,"description":"Maximum number of results to return (1-50, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_tender","description":"Get full details for a specific EU TED procurement notice by document number.\n\nArgs:\n    notice_id: TED notice document number (e.g. \"123456-2024\").\n               Retrieve this from search_tenders results.\n\nReturns:\n    Full notice details including title, contracting authority, country,\n    published date, deadline, estimated value, CPV codes, and source URL.","input_schema":{"additionalProperties":false,"properties":{"notice_id":{"description":"TED notice document number (e.g. \"123456-2024\"). Retrieve this from search_tenders results.","type":"string"}},"required":["notice_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_awarded_contracts","description":"Get recently awarded public contracts from EU TED, UK Find a Tender, or US SAM.gov.\n\nArgs:\n    country: ISO 3166-1 alpha-2 country code (e.g. \"DE\", \"NO\", \"GB\", \"US\").\n             Omit for all EU countries.\n    sector_cpv: CPV code prefix to filter by sector. Only applied for EU/TED searches.\n    year: Calendar year to filter awards. Omit for most recent.\n    limit: Maximum number of results to return (1-50, default 10).\n\nReturns:\n    List of awarded contracts with contracting authority, winner (where available),\n    value, award date, country, and CPV codes.","input_schema":{"additionalProperties":false,"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code (e.g. \"DE\", \"NO\", \"GB\", \"US\"). Omit for all EU countries."},"sector_cpv":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"CPV code prefix to filter by sector. Only applied for EU/TED searches."},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Calendar year to filter awards. Omit for most recent."},"limit":{"default":10,"description":"Maximum number of results to return (1-50, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_by_winner","description":"Find public contracts won by a named company.\n\nArgs:\n    company_name: Company name to search for (e.g. \"Accenture\", \"IBM\").\n    country: ISO 3166-1 alpha-2 country code to restrict search.\n    year_from: Start year for award date filter (inclusive).\n    year_to: End year for award date filter (inclusive).\n    limit: Maximum number of results to return (1-50, default 10).\n\nReturns:\n    List of award notices where the winner name matches the query.","input_schema":{"additionalProperties":false,"properties":{"company_name":{"description":"Company name to search for (e.g. \"Accenture\", \"IBM\").","type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code to restrict search."},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year for award date filter (inclusive)."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year for award date filter (inclusive)."},"limit":{"default":10,"description":"Maximum number of results to return (1-50, default 10).","type":"integer"}},"required":["company_name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/entur","name":"Entur (Norwegian Transit)","description":"Norwegian public transit — routes, stops, departures, and journey planning.","category":"Transport","source":"Entur","endpoint":"/mcp/entur/","tools":[{"name":"search_stops","description":"Search for transit stops by name.\n\nArgs:\n    query: Stop name or partial name to search for.\n    lat: Optional latitude to boost nearby results.\n    lon: Optional longitude to boost nearby results.\n    limit: Maximum number of results (default 5).\n\nReturns:\n    List of stops with id, name, lat, lon, description.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Stop name or partial name to search for.","type":"string"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Optional latitude to boost nearby results."},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Optional longitude to boost nearby results."},"limit":{"default":5,"description":"Maximum number of results (default 5).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_departures","description":"Get upcoming departures from a transit stop.\n\nArgs:\n    stop_id: The stop ID (e.g. NSR:StopPlace:59872 for Oslo S).\n             Use search_stops to find IDs.\n    limit: Maximum number of departures (default 10).\n\nReturns:\n    List of departures with line, destination, expected_departure,\n    aimed_departure, realtime, transport_mode, platform.","input_schema":{"additionalProperties":false,"properties":{"stop_id":{"description":"The stop ID (e.g. NSR:StopPlace:59872 for Oslo S). Use search_stops to find IDs.","type":"string"},"limit":{"default":10,"description":"Maximum number of departures (default 10).","type":"integer"}},"required":["stop_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/un-comtrade","name":"UN Comtrade","description":"International trade statistics — imports, exports, and commodity flows between countries.","category":"Economics","source":"UN Comtrade","endpoint":"/mcp/un-comtrade/","tools":[{"name":"get_trade_flow","description":"Fetch bilateral trade flows between two countries for a commodity.\n\nData from UN Comtrade — 200+ countries, 6,000+ HS commodity codes, back to 1962.\n\nArgs:\n    reporter: Reporting country name or ISO numeric code (e.g., \"Germany\", \"276\").\n    partner: Partner country name or ISO numeric code (e.g., \"China\", \"156\").\n             Use \"World\" or \"0\" for global aggregates.\n    commodity_code: HS commodity code (e.g., \"8471\" for computers, \"27\" for fuels,\n                    \"TOTAL\" for all commodities). Use search_commodities to find codes.\n    year_from: Start year (e.g., 2018). If omitted, returns most recent year.\n    year_to: End year (e.g., 2022). If omitted, same as year_from.\n    flow: Trade direction — \"M\" (imports), \"X\" (exports), \"MX\" (both, default).\n\nReturns:\n    List of trade records with reporter, partner, commodity, flow, value (USD), and weight (kg).","input_schema":{"additionalProperties":false,"properties":{"reporter":{"description":"Reporting country name or ISO numeric code (e.g., \"Germany\", \"276\").","type":"string"},"partner":{"description":"Partner country name or ISO numeric code (e.g., \"China\", \"156\"). Use \"World\" or \"0\" for global aggregates.","type":"string"},"commodity_code":{"description":"HS commodity code (e.g., \"8471\" for computers, \"27\" for fuels, \"TOTAL\" for all commodities). Use search_commodities to find codes.","type":"string"},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year (e.g., 2018). If omitted, returns most recent year."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year (e.g., 2022). If omitted, same as year_from."},"flow":{"default":"MX","description":"Trade direction — \"M\" (imports), \"X\" (exports), \"MX\" (both, default).","type":"string"}},"required":["reporter","partner","commodity_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"top_partners","description":"Rank a country's top trading partners for a given commodity.\n\nArgs:\n    reporter: Reporting country name or ISO numeric code (e.g., \"Germany\", \"276\").\n    commodity_code: HS commodity code (e.g., \"87\" for vehicles). Use \"TOTAL\" for all trade.\n    year: Year (e.g., 2022).\n    flow: \"X\" for exports (default) or \"M\" for imports.\n    limit: Number of top partners to return (1–50, default 10).\n\nReturns:\n    Ranked list of trading partners by trade value with country name, code, and value (USD).","input_schema":{"additionalProperties":false,"properties":{"reporter":{"description":"Reporting country name or ISO numeric code (e.g., \"Germany\", \"276\").","type":"string"},"commodity_code":{"description":"HS commodity code (e.g., \"87\" for vehicles). Use \"TOTAL\" for all trade.","type":"string"},"year":{"description":"Year (e.g., 2022).","type":"integer"},"flow":{"default":"X","description":"\"X\" for exports (default) or \"M\" for imports.","type":"string"},"limit":{"default":10,"description":"Number of top partners to return (1–50, default 10).","type":"integer"}},"required":["reporter","commodity_code","year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"top_commodities","description":"Rank the top commodities traded between two countries.\n\nArgs:\n    reporter: Reporting country name or ISO numeric code (e.g., \"Germany\", \"276\").\n    partner: Partner country name or ISO numeric code (e.g., \"China\", \"156\").\n    year: Year (e.g., 2022).\n    flow: \"X\" for exports (default) or \"M\" for imports.\n    limit: Number of top commodities to return (1–50, default 10).\n\nReturns:\n    Ranked list of commodities by trade value with HS code, description, and value (USD).","input_schema":{"additionalProperties":false,"properties":{"reporter":{"description":"Reporting country name or ISO numeric code (e.g., \"Germany\", \"276\").","type":"string"},"partner":{"description":"Partner country name or ISO numeric code (e.g., \"China\", \"156\").","type":"string"},"year":{"description":"Year (e.g., 2022).","type":"integer"},"flow":{"default":"X","description":"\"X\" for exports (default) or \"M\" for imports.","type":"string"},"limit":{"default":10,"description":"Number of top commodities to return (1–50, default 10).","type":"integer"}},"required":["reporter","partner","year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_commodities","description":"Search for HS commodity codes by keyword.\n\nHelps find the right HS code to use with get_trade_flow, top_partners, and top_commodities.\n\nArgs:\n    query: Keyword to search (e.g., \"steel\", \"petroleum\", \"machinery\", \"vehicles\").\n\nReturns:\n    List of matching HS chapters (2-digit codes) with descriptions.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Keyword to search (e.g., \"steel\", \"petroleum\", \"machinery\", \"vehicles\").","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"trade_balance","description":"Calculate bilateral trade balance between two countries.\n\nArgs:\n    reporter: Reporting country name or ISO numeric code (e.g., \"Germany\", \"276\").\n    partner: Partner country name or ISO numeric code (e.g., \"China\", \"156\").\n    year: Year (e.g., 2022).\n\nReturns:\n    Total exports, imports, and trade balance (exports minus imports) in USD.\n    Positive balance indicates a trade surplus; negative indicates a deficit.","input_schema":{"additionalProperties":false,"properties":{"reporter":{"description":"Reporting country name or ISO numeric code (e.g., \"Germany\", \"276\").","type":"string"},"partner":{"description":"Partner country name or ISO numeric code (e.g., \"China\", \"156\").","type":"string"},"year":{"description":"Year (e.g., 2022).","type":"integer"}},"required":["reporter","partner","year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/unit-conversion","name":"Unit Conversion","description":"Convert between units across 10 categories — length, mass, volume, area, speed, time, temperature, digital storage, energy, and pressure.","category":"Utilities","source":"Built-in conversion factors","endpoint":"/mcp/unit-conversion/","tools":[{"name":"convert_units","description":"Convert a value from one unit to another.\n\nSupports 10 categories: length, mass, volume, area, speed, time,\ntemperature, digital storage, energy, and pressure.\nUnits must be in the same category (e.g. both length units).\n\nExamples: kilometer→mile, pound→kilogram, fahrenheit→celsius,\ngigabyte→mebibyte, kilowatt_hour→btu, psi→bar.","input_schema":{"additionalProperties":false,"properties":{"value":{"description":"The numeric value to convert.","type":"number"},"from_unit":{"description":"Source unit (e.g. 'kilometer', 'pound', 'fahrenheit').","type":"string"},"to_unit":{"description":"Target unit (e.g. 'mile', 'kilogram', 'celsius').","type":"string"}},"required":["value","from_unit","to_unit"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_unit_categories","description":"List all supported unit categories and their units.\n\nReturns every category (length, mass, volume, area, speed, time,\ntemperature, digital_storage, energy, pressure) with all available units.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_units_in_category","description":"List all available units in a specific category.","input_schema":{"additionalProperties":false,"properties":{"category":{"description":"Category name (e.g. 'length', 'mass', 'temperature').","type":"string"}},"required":["category"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/usaspending","name":"USASpending","description":"U.S. federal spending data — contracts, grants, and agency budgets.","category":"Economics","source":"USASpending.gov","endpoint":"/mcp/usaspending/","tools":[{"name":"search_awards","description":"Search USASpending.gov for federal awards (contracts, grants, loans, direct payments).\n\nUSASpending.gov is the official source for US federal government spending data,\ncovering $6–7 trillion annually from FY2008–present, updated nightly.\n\nArgs:\n    query: Keywords to search for (e.g. \"Lockheed Martin\", \"cybersecurity\", \"COVID-19 relief\").\n    award_type: Filter by award category. Values: \"contracts\" (default), \"grants\", \"loans\",\n                \"direct_payments\".\n    agency: Filter by awarding agency name (e.g. \"Department of Defense\",\n            \"Department of Health and Human Services\").\n    date_from: Only include awards starting on or after this date (YYYY-MM-DD).\n    date_to: Only include awards starting on or before this date (YYYY-MM-DD).\n    limit: Number of results to return (1–50, default 10). Sorted by award amount descending.\n\nReturns:\n    Dict with 'count', 'has_next', and 'awards' list. Each award includes award_id,\n    recipient_name, award_amount, awarding_agency, start/end dates, description,\n    and NAICS industry classification.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Keywords to search for (e.g. \"Lockheed Martin\", \"cybersecurity\", \"COVID-19 relief\").","type":"string"},"award_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by award category. Values: \"contracts\" (default), \"grants\", \"loans\", \"direct_payments\"."},"agency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by awarding agency name (e.g. \"Department of Defense\", \"Department of Health and Human Services\")."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only include awards starting on or after this date (YYYY-MM-DD)."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only include awards starting on or before this date (YYYY-MM-DD)."},"limit":{"default":10,"description":"Number of results to return (1–50, default 10). Sorted by award amount descending.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_award","description":"Fetch detailed information for a specific federal award.\n\nUse the generated_internal_id from search_awards results (e.g.\n\"CONT_AWD_N0001917C0001_9700_-NONE-_-NONE-\") to look up full details including\nrecipient info, subaward data, contracting details, and place of performance.\n\nArgs:\n    award_id: The generated_unique_award_id or generated_internal_id from search results.\n\nReturns:\n    Dict with full award details: obligation amounts, recipient, agencies, NAICS/PSC codes,\n    subaward count, place of performance, and period of performance dates.","input_schema":{"additionalProperties":false,"properties":{"award_id":{"description":"The generated_unique_award_id or generated_internal_id from search results.","type":"string"}},"required":["award_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_recipient","description":"Search for or fetch a federal award recipient (contractor, grantee, etc.).\n\nSearch by name/keyword to find recipients, or pass a recipient_id (from search_awards\nresults) to get a full profile with alternate names, business types, and location.\n\nArgs:\n    keyword: Recipient name or keyword to search (e.g. \"Raytheon\", \"Johns Hopkins\").\n    recipient_id: Specific recipient hash ID for full profile lookup\n                  (e.g. \"6cf5fb1b-4988-d087-5dc1-70939d8fc6c4-C\").\n    limit: Number of search results (1–50, default 10). Ignored when using recipient_id.\n\nReturns:\n    Dict with 'count', 'total', and 'recipients' list. Each includes name, UEI,\n    total award amount, and (for profile lookups) business types, location, and alternate names.","input_schema":{"additionalProperties":false,"properties":{"keyword":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Recipient name or keyword to search (e.g. \"Raytheon\", \"Johns Hopkins\")."},"recipient_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Specific recipient hash ID for full profile lookup (e.g. \"6cf5fb1b-4988-d087-5dc1-70939d8fc6c4-C\")."},"limit":{"default":10,"description":"Number of search results (1–50, default 10). Ignored when using recipient_id.","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_agency_spending","description":"Fetch budgetary resources for a US federal agency.\n\nCommon toptier agency codes:\n- \"097\" — Department of Defense\n- \"075\" — Department of Health and Human Services\n- \"012\" — Department of Agriculture\n- \"069\" — Department of Transportation\n- \"089\" — Department of Energy\n- \"028\" — Social Security Administration\n\nArgs:\n    agency_code: Three-digit toptier agency code (e.g. \"097\" for DoD).\n    fiscal_year: Federal fiscal year (Oct–Sep). Omit for most recent available.\n\nReturns:\n    Dict with toptier_code, fiscal_year, agency_budgetary_resources (total budget authority),\n    agency_total_obligated (committed), agency_total_outlayed (spent),\n    and total_budgetary_resources (all-government total for comparison).","input_schema":{"additionalProperties":false,"properties":{"agency_code":{"description":"Three-digit toptier agency code (e.g. \"097\" for DoD).","type":"string"},"fiscal_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Federal fiscal year (Oct–Sep). Omit for most recent available."}},"required":["agency_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"spending_by_geography","description":"Aggregate federal spending by geographic area (state, county, or congressional district).\n\nUseful for analyzing where federal money flows — e.g. which states receive the most\ndefense contracts, or where COVID relief grants were concentrated.\n\nArgs:\n    keywords: Search terms to filter spending (e.g. [\"cybersecurity\"], [\"COVID-19\", \"relief\"]).\n    geo_layer: Geographic granularity. Values: \"state\", \"county\", \"district\"\n               (congressional district). Default \"state\".\n    scope: What location to aggregate by. Values: \"place_of_performance\" (where work happens),\n           \"recipient_location\" (where recipient is based). Default \"place_of_performance\".\n    award_type: Filter by category: \"contracts\", \"grants\", \"loans\", \"direct_payments\".\n                Omit for all types.\n    date_from: Start date filter (YYYY-MM-DD).\n    date_to: End date filter (YYYY-MM-DD).\n\nReturns:\n    Dict with 'scope', 'geo_layer', 'count', and 'results' list. Each result includes\n    shape_code (state/county/district code), display_name, aggregated_amount, population,\n    and per_capita spending.","input_schema":{"additionalProperties":false,"properties":{"keywords":{"description":"Search terms to filter spending (e.g. [\"cybersecurity\"], [\"COVID-19\", \"relief\"]).","items":{"type":"string"},"type":"array"},"geo_layer":{"default":"state","description":"Geographic granularity. Values: \"state\", \"county\", \"district\" (congressional district). Default \"state\".","type":"string"},"scope":{"default":"place_of_performance","description":"What location to aggregate by. Values: \"place_of_performance\" (where work happens), \"recipient_location\" (where recipient is based). Default \"place_of_performance\".","type":"string"},"award_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category: \"contracts\", \"grants\", \"loans\", \"direct_payments\". Omit for all types."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date filter (YYYY-MM-DD)."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date filter (YYYY-MM-DD)."}},"required":["keywords"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/wayback","name":"Wayback Machine","description":"Internet Archive lookups — snapshot search, availability checks, capture calendars, and yearly statistics.","category":"Reference","source":"Wayback Machine","endpoint":"/mcp/wayback/","tools":[{"name":"check_availability","description":"Check if a URL has been archived in the Wayback Machine and find the closest snapshot.\n\nReturns a dict with 'url', 'available' (bool), and 'closest' snapshot if available.\nThe 'wayback_url' field contains the direct Wayback Machine link to the archived page.","input_schema":{"additionalProperties":false,"properties":{"url":{"description":"The URL to look up (e.g. \"https://example.com/page\").","type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional target date/time (YYYY-MM-DD or YYYYMMDD). When provided, the Wayback Machine returns the snapshot closest to that date. Omit to get the most recent snapshot."}},"required":["url"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_snapshots","description":"Search the Wayback Machine CDX index for archived snapshots of a URL.\n\nReturns a deduplicated list of snapshots sorted chronologically. Useful for\ntracking how a page has changed over time or verifying when content was live.\n\nEach snapshot has url, wayback_url, timestamp, date, status_code, mimetype,\nand length (bytes). Use 'wayback_url' with a fetch tool to retrieve the\nactual archived page content.","input_schema":{"additionalProperties":false,"properties":{"url":{"description":"The URL to search (e.g. \"https://example.com/page\"). Use wildcard prefix matching with \"example.com/*\" to capture all pages on a domain.","type":"string"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only include captures on or after this date (YYYY-MM-DD). Optional."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only include captures on or before this date (YYYY-MM-DD). Optional."},"limit":{"default":20,"description":"Maximum snapshots to return (1-100, default 20).","type":"integer"},"status_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by HTTP status at capture time (e.g. \"200\", \"404\"). Optional."},"mimetype":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by MIME type (e.g. \"text/html\", \"application/pdf\"). Optional."}},"required":["url"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_capture_calendar","description":"Get monthly capture counts for a URL in a given year from the Wayback Machine.\n\nReturns total captures for the year and a breakdown by month (YYYY-MM keys).\nUseful for understanding archival coverage and activity patterns for a URL.","input_schema":{"additionalProperties":false,"properties":{"url":{"description":"The URL to get capture calendar for (e.g. \"https://example.com\").","type":"string"},"year":{"description":"Year to retrieve calendar for (e.g. 2023).","type":"integer"}},"required":["url","year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_capture_stats","description":"Get yearly capture statistics for a URL from the Wayback Machine.\n\nReturns total captures across all years, the first and last capture years,\nand a per-year breakdown. Useful for getting an overview of how long and\nhow frequently a URL has been archived.","input_schema":{"additionalProperties":false,"properties":{"url":{"description":"The URL to get capture statistics for (e.g. \"https://example.com\").","type":"string"}},"required":["url"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/open-meteo","name":"Open-Meteo (Weather)","description":"Current weather, forecasts, historical data, and severe weather alerts.","category":"Environment","source":"Open-Meteo, NWS","endpoint":"/mcp/open-meteo/","tools":[{"name":"geocode_location","description":"Search for a city or place name and return matching coordinates.\n\nUse this tool first to convert a place name into latitude/longitude\ncoordinates, then pass those coordinates to the weather, air quality,\nor marine forecast tools.\n\nReturns matching locations with name, coordinates, country, population,\nand timezone.","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"City or place name to search for (e.g. \"Oslo\", \"New York\", \"Tokyo\").","type":"string"},"count":{"default":5,"description":"Maximum number of results to return (1-100). Default 5.","type":"integer"},"language":{"default":"en","description":"Response language as ISO 639-1 code (e.g. 'en', 'de', 'fr'). Default 'en'.","type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_current_weather","description":"Get current weather conditions at a location.\n\nReturns current temperature, humidity, wind, precipitation, and description.\nWeather descriptions follow the WMO Weather Interpretation Code standard.","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the location (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the location (-180 to 180).","type":"number"},"units":{"default":"metric","description":"Unit system: \"metric\" (C, m/s, mm) or \"imperial\" (F, mph, inch).","type":"string"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_weather_forecast","description":"Get hourly weather forecast for a location.\n\nReturns hourly forecast entries with temperature, precipitation probability,\nwind, and weather description for each hour. Up to 7 days (168 hours).","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the location (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the location (-180 to 180).","type":"number"},"hours":{"default":24,"description":"Number of hours to forecast (1-168, default 24).","type":"integer"},"units":{"default":"metric","description":"Unit system: \"metric\" (C, m/s, mm) or \"imperial\" (F, mph, inch).","type":"string"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_alerts","description":"Get active severe weather alerts for a location.\n\nCurrently covers the United States via the National Weather Service (NWS) API.\nReturns an empty list for non-US coordinates.","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the location (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the location (-180 to 180).","type":"number"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_historical_weather","description":"Get historical weather data for a location and date range.\n\nDraws from the ERA5 climate reanalysis archive, covering 1940-01-01 to\napproximately 5 days before the current date. Returns daily summaries\nwith max/min/mean temperature, precipitation, and wind speed.","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the location (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the location (-180 to 180).","type":"number"},"start_date":{"description":"Start of the date range, format YYYY-MM-DD (earliest: 1940-01-01).","type":"string"},"end_date":{"description":"End of the date range, format YYYY-MM-DD (latest: ~5 days ago).","type":"string"},"units":{"default":"metric","description":"Unit system: \"metric\" (C, m/s, mm) or \"imperial\" (F, mph, inch).","type":"string"}},"required":["lat","lon","start_date","end_date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_air_quality","description":"Get air quality forecast for a location.\n\nReturns hourly air quality data including European AQI, US AQI, PM2.5,\nPM10, carbon monoxide, nitrogen dioxide, sulphur dioxide, and ozone.\n\nAQI scales:\n- European AQI: 0-20 Good, 20-40 Fair, 40-60 Moderate, 60-80 Poor, 80-100 Very Poor, 100+ Extremely Poor\n- US AQI: 0-50 Good, 51-100 Moderate, 101-150 Unhealthy (sensitive), 151-200 Unhealthy, 201-300 Very Unhealthy","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the location (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the location (-180 to 180).","type":"number"},"hours":{"default":24,"description":"Number of hours to forecast (1-120, default 24).","type":"integer"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_marine_forecast","description":"Get marine/ocean forecast for a coastal location.\n\nReturns hourly wave data including total wave height, direction, and period,\nas well as separate wind-wave and swell components. Best for coastal and\noffshore locations; inland locations may return null values.","input_schema":{"additionalProperties":false,"properties":{"lat":{"description":"Latitude of the coastal location (-90 to 90).","type":"number"},"lon":{"description":"Longitude of the coastal location (-180 to 180).","type":"number"},"hours":{"default":24,"description":"Number of hours to forecast (1-168, default 24).","type":"integer"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/wikidata","name":"Wikidata","description":"Structured knowledge base — entities, properties, and relationships from Wikidata.","category":"Reference","source":"Wikidata (Wikimedia)","endpoint":"/mcp/wikidata/","tools":[{"name":"search_wikidata_entity","description":"Search Wikidata for entities by name or alias.\n\nResolves a natural-language label to one or more Wikidata QIDs. Use this\nas the entry point before calling get_wikidata_entity or get_wikidata_linked_ids.\n\nArgs:\n    label: Name or phrase to search for (e.g. \"Barack Obama\", \"Apple Inc\").\n    language: BCP-47 language code for labels and descriptions. Default \"en\".\n    limit: Maximum results to return (1–20, default 5).\n\nReturns:\n    Dictionary with 'count' and 'results' list. Each result has qid, label,\n    description, and aliases.","input_schema":{"additionalProperties":false,"properties":{"label":{"description":"Name or phrase to search for (e.g. \"Barack Obama\", \"Apple Inc\").","type":"string"},"language":{"default":"en","description":"BCP-47 language code for labels and descriptions. Default \"en\".","type":"string"},"limit":{"default":5,"description":"Maximum results to return (1–20, default 5).","type":"integer"}},"required":["label"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_wikidata_entity","description":"Fetch a Wikidata entity with its statements, normalized to human-readable form.\n\nReturns the entity's label, description, aliases, and all non-deprecated\nstatements as {property_label: [values]} pairs. Property labels are resolved\nto English names (e.g. \"P569\" → \"date of birth\").\n\nArgs:\n    qid: Wikidata item ID (e.g. \"Q76\" for Barack Obama, \"Q312\" for Apple Inc).\n\nReturns:\n    Entity metadata including statements dict. Statement values are normalized:\n    dates as YYYY-MM-DD, quantities as numbers, entities as \"Label (QID)\",\n    coordinates as \"lat, lon\".","input_schema":{"additionalProperties":false,"properties":{"qid":{"description":"Wikidata item ID (e.g. \"Q76\" for Barack Obama, \"Q312\" for Apple Inc).","type":"string"}},"required":["qid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_wikidata_linked_ids","description":"Return all external database identifiers for a Wikidata entity.\n\nFetches all external-id type statements: IMDb, VIAF, ISNI, MusicBrainz,\nGeoNames, OpenCorporates, Freebase, PubMed, ORCID, and many others.\nThis is the bridge between Wikidata and every other database in the MCP toolbox.\n\nArgs:\n    qid: Wikidata item ID (e.g. \"Q76\" for Barack Obama).\n\nReturns:\n    Dictionary with 'qid', 'label', 'wikidata_url', and 'identifiers' —\n    a flat map of {database_name: identifier_value}.","input_schema":{"additionalProperties":false,"properties":{"qid":{"description":"Wikidata item ID (e.g. \"Q76\" for Barack Obama).","type":"string"}},"required":["qid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"wikidata_sparql","description":"Execute a SPARQL query against the Wikidata Query Service.\n\nUse for complex relational queries not covered by other tools — e.g.\n\"all EU heads of state born after 1970\", \"Nobel Prize winners in physics since 2000\",\n\"companies headquartered in Oslo with stock exchange listings\".\n\nThe Wikidata SPARQL endpoint uses Blazegraph. Queries must use Wikidata prefixes:\n- wd: (entities), wdt: (direct claims), wikibase:, rdfs:label\nExample: SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q146. SERVICE wikibase:label { bd:serviceParam wikibase:language \"en\". } }\n\nArgs:\n    query: SPARQL SELECT query string. Must be valid SPARQL 1.1.\n    timeout_s: Query timeout in seconds (default 30, max 55).\n\nReturns:\n    Dictionary with 'columns' list and 'rows' list. Each row is a\n    {variable: value} dict with string values.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"SPARQL SELECT query string. Must be valid SPARQL 1.1.","type":"string"},"timeout_s":{"default":30,"description":"Query timeout in seconds (default 30, max 55).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/worldbank","name":"World Bank","description":"World Bank development indicators — poverty, health, education, and economic data by country.","category":"Economics","source":"World Bank Open Data","endpoint":"/mcp/worldbank/","tools":[{"name":"get_indicator","description":"Fetch a time series for a World Bank indicator.\n\nArgs:\n    country_code: ISO 3166-1 alpha-2 or alpha-3 country code (e.g. \"US\", \"USA\", \"NO\").\n                  Use \"WLD\" for global aggregates or \"all\" for every country.\n    indicator_code: World Bank indicator ID (e.g. \"NY.GDP.MKTP.CD\" for GDP,\n                    \"SP.POP.TOTL\" for population). Use search_indicators to find codes.\n    year_from: Start year (inclusive). If omitted, uses mrv instead.\n    year_to: End year (inclusive). If omitted, uses year_from as single year.\n    mrv: Most recent values to return (1–50, default 10). Used when year_from/year_to are not set.\n\nReturns:\n    Time series of indicator values with date, value, and country metadata.\n    Values may be null for years where data is unavailable.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 or alpha-3 country code (e.g. \"US\", \"USA\", \"NO\"). Use \"WLD\" for global aggregates or \"all\" for every country.","type":"string"},"indicator_code":{"description":"World Bank indicator ID (e.g. \"NY.GDP.MKTP.CD\" for GDP, \"SP.POP.TOTL\" for population). Use search_indicators to find codes.","type":"string"},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year (inclusive). If omitted, uses mrv instead."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year (inclusive). If omitted, uses year_from as single year."},"mrv":{"default":10,"description":"Most recent values to return (1–50, default 10). Used when year_from/year_to are not set.","type":"integer"}},"required":["country_code","indicator_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_indicators","description":"Search the World Bank indicator catalog by keyword.\n\nCovers 1,400+ socioeconomic indicators including GDP, population, health,\neducation, trade, energy, environment, and more.\n\nArgs:\n    query: Search term (e.g. \"gdp\", \"literacy rate\", \"co2 emissions\").\n    per_page: Number of results to return (1–50, default 20).\n\nReturns:\n    List of matching indicators with ID, name, unit, and topic classification.\n    Use the indicator id field with get_indicator or compare_countries.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term (e.g. \"gdp\", \"literacy rate\", \"co2 emissions\").","type":"string"},"per_page":{"default":20,"description":"Number of results to return (1–50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"country_profile","description":"Get a snapshot of key development indicators for a country.\n\nCovers: GDP (total and per capita), population, life expectancy, and CO2 emissions.\nData comes from World Bank Open Data (CC-BY-4.0).\n\nArgs:\n    country_code: ISO 3166-1 alpha-2 or alpha-3 country code (e.g. \"NO\", \"USA\", \"DE\").\n    year: Specific year to retrieve. Defaults to most recent available data.\n\nReturns:\n    Country profile with GDP, population, life expectancy, and CO2 figures.\n    Any field may be null if the World Bank has no data for that country/year combination.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 or alpha-3 country code (e.g. \"NO\", \"USA\", \"DE\").","type":"string"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Specific year to retrieve. Defaults to most recent available data."}},"required":["country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_countries","description":"Compare one indicator across multiple countries for a given year.\n\nArgs:\n    indicator_code: World Bank indicator ID (e.g. \"NY.GDP.MKTP.CD\").\n                    Use search_indicators to find the right code.\n    country_codes: List of ISO 3166-1 alpha-2 or alpha-3 codes (e.g. [\"US\", \"DE\", \"JP\"]).\n                   Maximum 20 countries per request.\n    year: The year to compare (e.g. 2022).\n\nReturns:\n    Indicator values for each country in the requested year.\n    Values may be null if data is unavailable for a country/year pair.","input_schema":{"additionalProperties":false,"properties":{"indicator_code":{"description":"World Bank indicator ID (e.g. \"NY.GDP.MKTP.CD\"). Use search_indicators to find the right code.","type":"string"},"country_codes":{"description":"List of ISO 3166-1 alpha-2 or alpha-3 codes (e.g. [\"US\", \"DE\", \"JP\"]). Maximum 20 countries per request.","items":{"type":"string"},"type":"array"},"year":{"description":"The year to compare (e.g. 2022).","type":"integer"}},"required":["indicator_code","country_codes","year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/country-info","name":"Country Information","description":"Detailed information on world countries — codes, capitals, population, currencies, languages, and more.","category":"Reference","source":"Embedded (ISO 3166)","endpoint":"/mcp/country-info/","tools":[{"name":"get_country","description":"Get detailed information about a country by ISO code (alpha-2 or alpha-3).\n\nArgs:\n    code: ISO 3166-1 alpha-2 (e.g. \"NO\") or alpha-3 (e.g. \"NOR\") country code.\n\nReturns:\n    Dictionary with country details including capital, population, currencies, and more.","input_schema":{"additionalProperties":false,"properties":{"code":{"type":"string"}},"required":["code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_countries","description":"Search countries by name (case-insensitive partial match).\n\nArgs:\n    query: Search string to match against country names.\n    limit: Maximum number of results to return (default 10).\n\nReturns:\n    Dictionary with count and list of matching countries.","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"limit":{"default":10,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_countries_by_region","description":"List all countries in a given region.\n\nArgs:\n    region: Region name — one of Africa, Americas, Asia, Europe, Oceania.\n\nReturns:\n    Dictionary with region, count, and list of countries.","input_schema":{"additionalProperties":false,"properties":{"region":{"type":"string"}},"required":["region"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_country_stats","description":"Get summary statistics about countries in the database.\n\nReturns:\n    Dictionary with total countries, UN members, landlocked count, breakdown by region, and total population.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/exercise","name":"Exercise Database","description":"Exercise database with muscle groups, equipment types, difficulty levels, and calorie estimates.","category":"Health","source":"Curated dataset","endpoint":"/mcp/exercise/","tools":[{"name":"get_exercise","description":"Get detailed information about an exercise by its ID.\n\nArgs:\n    exercise_id: Exercise slug (e.g. \"bench-press\", \"barbell-squat\").\n\nReturns:\n    Dictionary with exercise details including muscle group, equipment, difficulty, and calories.","input_schema":{"additionalProperties":false,"properties":{"exercise_id":{"type":"string"}},"required":["exercise_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_exercises","description":"Search exercises by name (case-insensitive partial match).\n\nArgs:\n    query: Search string to match against exercise names.\n    limit: Maximum number of results to return (default 20).\n\nReturns:\n    Dictionary with count and list of matching exercises.","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_exercises_by_muscle_group","description":"List exercises targeting a specific muscle group.\n\nArgs:\n    muscle_group: Muscle group — one of chest, back, shoulders, arms, legs, core, full_body, cardio.\n    limit: Maximum number of results to return (default 20).\n\nReturns:\n    Dictionary with muscle group, count, and list of exercises.","input_schema":{"additionalProperties":false,"properties":{"muscle_group":{"type":"string"},"limit":{"default":20,"type":"integer"}},"required":["muscle_group"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_exercises_by_equipment","description":"List exercises that use a specific type of equipment.\n\nArgs:\n    equipment: Equipment type — one of barbell, dumbbell, bodyweight, machine, cable, kettlebell, resistance_band, none.\n    limit: Maximum number of results to return (default 20).\n\nReturns:\n    Dictionary with equipment type, count, and list of exercises.","input_schema":{"additionalProperties":false,"properties":{"equipment":{"type":"string"},"limit":{"default":20,"type":"integer"}},"required":["equipment"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_muscle_groups","description":"Get all available muscle groups in the exercise database.\n\nReturns:\n    Dictionary with count and list of muscle group names.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_equipment_types","description":"Get all available equipment types in the exercise database.\n\nReturns:\n    Dictionary with count and list of equipment type names.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nutrition","name":"Nutrition Data","description":"Nutritional information for foods — calories, macros, vitamins. Search by name or barcode.","category":"Health","source":"Open Food Facts","endpoint":"/mcp/nutrition/","tools":[{"name":"search_foods","description":"Search food products by name, brand, or description and get nutritional information.\n\nArgs:\n    query: Search terms for food products (e.g. \"granola\", \"orange juice\", \"Nutella\").\n    limit: Number of results to return (1–50, default 10).\n\nReturns:\n    Dictionary with 'count' and 'products' list. Each product has name, barcode, brands,\n    categories, image_url, nutriscore_grade, and nutrients (per 100g: energy_kcal, fat,\n    saturated_fat, carbohydrates, sugars, fiber, proteins, salt, sodium).","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms for food products (e.g. \"granola\", \"orange juice\", \"Nutella\"). Searches product names, brands, and categories.","type":"string"},"limit":{"default":10,"description":"Number of results to return (1–50, default 10).","maximum":50,"minimum":1,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_product","description":"Look up a specific food product by its barcode and get full nutritional details.\n\nArgs:\n    barcode: Product barcode (EAN/UPC, e.g. \"3017620422003\" for Nutella).\n\nReturns:\n    Product record with name, barcode, brands, categories, image_url,\n    nutriscore_grade, and nutrients (per 100g).","input_schema":{"additionalProperties":false,"properties":{"barcode":{"description":"Product barcode (EAN/UPC, e.g. \"3017620422003\" for Nutella, \"5449000000996\" for Coca-Cola).","type":"string"}},"required":["barcode"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/us-census","name":"US Census Bureau","description":"US Census Bureau data — American Community Survey demographics, income, housing, and social characteristics for states, counties, cities, and tracts.","category":"Economics","source":"US Census Bureau API","endpoint":"/mcp/us-census/","tools":[{"name":"get_acs_data","description":"Fetch American Community Survey 5-year data by variable codes and geography.\n\nThe ACS 5-year estimates cover the smallest geographies (down to block\ngroups) and are the most statistically reliable. Use search_groups() and\nget_group_variables() to discover variable codes, or use get_acs_profile()\nfor pre-curated indicators.\n\nCommon variable codes:\n- B01001_001E — Total population\n- B19013_001E — Median household income\n- B25077_001E — Median home value\n- B01002_001E — Median age\n- B17001_002E — Population below poverty level\n\nCommon FIPS codes:\n- States: 06=California, 36=New York, 48=Texas\n- Use get_geography_codes() to look up FIPS codes by name","input_schema":{"additionalProperties":false,"properties":{"variables":{"description":"ACS variable codes (e.g. [\"B01001_001E\", \"B19013_001E\"]).","items":{"type":"string"},"type":"array"},"geography":{"description":"Geography type: us, state, county, place, tract, block_group, zip_code, metro_area, or congressional_district.","type":"string"},"code":{"default":"*","description":"FIPS code for the geography, or \"*\" for all. Use get_geography_codes to look up codes.","type":"string"},"within_state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"State FIPS code to filter within (required for county, place, tract queries)."},"within_county":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"County FIPS code to further filter within (for tract/block group queries)."},"year":{"default":2022,"description":"ACS 5-year vintage year (2009-2022). Default 2022.","type":"integer"}},"required":["variables","geography"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_acs_profile","description":"Get curated demographic, economic, housing, or social profile data.\n\nReturns pre-selected key indicators from ACS Data Profiles, so you don't\nneed to know individual variable codes. Great for quick community snapshots.\n\nProfile types and sample indicators:\n- demographic: population, age, sex, race/ethnicity\n- economic: income, poverty, unemployment, employment\n- housing: home values, rent, occupancy, vacancy\n- social: education, language, internet access","input_schema":{"additionalProperties":false,"properties":{"profile_type":{"description":"Profile type: demographic, economic, housing, or social.","type":"string"},"geography":{"description":"Geography type: us, state, county, place, etc.","type":"string"},"code":{"default":"*","description":"FIPS code for the geography, or \"*\" for all.","type":"string"},"within_state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"State FIPS code to filter within."},"year":{"default":2022,"description":"ACS 5-year vintage year (2009-2022). Default 2022.","type":"integer"}},"required":["profile_type","geography"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_groups","description":"Search available ACS table groups (data tables) by keyword.\n\nACS data is organized into groups (tables) like B01001 (Sex by Age),\nB19013 (Median Household Income), etc. Use this to find the right table\nand then get_group_variables() to see what variables it contains.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for ACS table groups (e.g. \"income\", \"education\", \"housing\").","type":"string"},"year":{"default":2022,"description":"ACS 5-year vintage year. Default 2022.","type":"integer"},"limit":{"default":20,"description":"Max results to return (1-100). Default 20.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_group_variables","description":"List all variables in a specific ACS table group.\n\nReturns variable IDs, labels, and concepts for the group. Use the\nvariable IDs with get_acs_data() to fetch actual data values.","input_schema":{"additionalProperties":false,"properties":{"group":{"description":"ACS table group code (e.g. \"B01001\", \"B19013\", \"DP05\").","type":"string"},"year":{"default":2022,"description":"ACS 5-year vintage year. Default 2022.","type":"integer"}},"required":["group"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_geography_codes","description":"Look up FIPS codes for geographies by name.\n\nFIPS codes are opaque identifiers (e.g. California=06, New York=36).\nThis tool maps geographic names to their FIPS codes so you can use\nthem with get_acs_data() and get_acs_profile().","input_schema":{"additionalProperties":false,"properties":{"geography_type":{"description":"Geography type: state, county, place, etc.","type":"string"},"state_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"State FIPS code (for county, place, tract lookups)."},"year":{"default":2022,"description":"ACS 5-year vintage year. Default 2022.","type":"integer"}},"required":["geography_type"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/us-county","name":"US County Data","description":"US county-level data — population, area, FIPS codes, and county seats for ~200 US counties.","category":"Geography","source":"Curated dataset (US Census Bureau)","endpoint":"/mcp/us-county/","tools":[{"name":"get_county","description":"Get detailed information about a US county by its 5-digit FIPS code.\n\nArgs:\n    fips: 5-digit FIPS code (e.g. \"06037\" for Los Angeles County, CA).\n\nReturns:\n    Dictionary with county details including population, area, and county seat.","input_schema":{"additionalProperties":false,"properties":{"fips":{"type":"string"}},"required":["fips"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_counties","description":"Search US counties by name (case-insensitive partial match).\n\nArgs:\n    query: Search string to match against county names.\n    limit: Maximum number of results to return (default 20).\n\nReturns:\n    Dictionary with count and list of matching counties.","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_counties_by_state","description":"List US counties in a given state, sorted by population descending.\n\nArgs:\n    state_code: Two-letter US state code (e.g. \"CA\", \"TX\", \"NY\").\n    limit: Maximum number of results to return (default 50).\n\nReturns:\n    Dictionary with state, count, and list of counties.","input_schema":{"additionalProperties":false,"properties":{"state_code":{"type":"string"},"limit":{"default":50,"type":"integer"}},"required":["state_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_states","description":"List all US states in the dataset with their county counts.\n\nReturns:\n    Dictionary with total state count and list of states with county counts.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/working-days","name":"Working Days Calculator","description":"Business day calculator — count working days, add/subtract business days, check weekday status.","category":"Utilities","source":"Algorithmic","endpoint":"/mcp/working-days/","tools":[{"name":"count_working_days","description":"Count business days between two dates (Monday–Friday only).\n\nThe range is [start, end) — start is inclusive, end is exclusive.\nReturns a negative count if end is before start.\n\nArgs:\n    start: Start date in ISO 8601 format (YYYY-MM-DD).\n    end: End date in ISO 8601 format (YYYY-MM-DD), exclusive.\n\nReturns:\n    Dictionary with count of working days and calendar days in the range.","input_schema":{"additionalProperties":false,"properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"add_working_days","description":"Add N business days to a date and return the resulting date.\n\nSkips weekends (Saturday and Sunday). Supports negative values to subtract days.\n\nArgs:\n    date: Starting date in ISO 8601 format (YYYY-MM-DD).\n    days: Number of business days to add (negative to subtract).\n\nReturns:\n    Dictionary with the starting date, days added, and resulting date.","input_schema":{"additionalProperties":false,"properties":{"date":{"type":"string"},"days":{"type":"integer"}},"required":["date","days"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"is_working_day","description":"Check whether a given date is a business day (Monday–Friday).\n\nArgs:\n    date: Date to check in ISO 8601 format (YYYY-MM-DD).\n\nReturns:\n    Dictionary with is_working_day boolean and day_of_week name.","input_schema":{"additionalProperties":false,"properties":{"date":{"type":"string"}},"required":["date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_working_days_in_month","description":"List all working days (Monday–Friday) in a given year and month.\n\nArgs:\n    year: The year (e.g. 2026).\n    month: The month (1–12).\n\nReturns:\n    Dictionary with count of working days and list of dates.","input_schema":{"additionalProperties":false,"properties":{"year":{"type":"integer"},"month":{"type":"integer"}},"required":["year","month"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/trivia","name":"Trivia Questions","description":"Quiz and trivia questions by category and difficulty from the Open Trivia Database.","category":"Entertainment","source":"Open Trivia Database (opentdb.com)","endpoint":"/mcp/trivia/","tools":[{"name":"get_trivia_questions","description":"Get trivia questions from the Open Trivia Database.\n\nArgs:\n    amount: Number of questions to retrieve (1-50, default 10).\n    category: Optional category ID to filter questions. Use get_trivia_categories() to see valid IDs.\n    difficulty: Optional difficulty level — one of \"easy\", \"medium\", \"hard\".\n    question_type: Optional question type — \"multiple\" (4 choices) or \"boolean\" (true/false).\n\nReturns:\n    Dictionary with count and list of trivia questions, each containing category,\n    difficulty, question text, correct answer, and incorrect answers.","input_schema":{"additionalProperties":false,"properties":{"amount":{"default":10,"type":"integer"},"category":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"question_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trivia_categories","description":"List all available trivia question categories.\n\nReturns:\n    Dictionary with count and list of categories, each with an id and name.\n    Use the id when calling get_trivia_questions(category=...).","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/university","name":"University Directory","description":"Search universities worldwide by name and country — domains, web pages, and location.","category":"Education","source":"Hipolabs Universities API","endpoint":"/mcp/university/","tools":[{"name":"search_universities","description":"Search universities worldwide by name and/or country.\n\nReturns university name, country, domains, and web pages.\nAt least one of name or country should be provided for meaningful results.\n\nArgs:\n    name: Partial university name to search for.\n    country: Country name to filter by.\n    limit: Maximum number of results to return (default 20).\n\nReturns:\n    Dictionary with 'count' and 'universities' list. Each university has\n    name, country, alpha_two_code, state_province, domains, and web_pages.","input_schema":{"additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Partial university name to search for (e.g. 'MIT', 'Oxford', 'technol'). Optional."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Country name to filter by (e.g. 'United States', 'Norway', 'Germany'). Optional."},"limit":{"default":20,"description":"Maximum number of results to return (1-100, default 20).","maximum":100,"minimum":1,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/world-time","name":"World Time","description":"Current time, timezone conversions, and timezone information using the IANA tz database.","category":"Utilities","source":"IANA tz database (built-in)","endpoint":"/mcp/world-time/","tools":[{"name":"get_current_time","description":"Get the current date and time in a specific timezone.\n\nReturns date, time, UTC offset, DST status, and day of week.\n\nArgs:\n    timezone: IANA timezone name (e.g. \"Europe/Oslo\", \"America/New_York\", \"UTC\").","input_schema":{"additionalProperties":false,"properties":{"timezone":{"type":"string"}},"required":["timezone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"convert_time","description":"Convert a time from one timezone to another.\n\nIf no time is provided, converts the current time.\n\nArgs:\n    from_timezone: Source IANA timezone name (e.g. \"Europe/London\").\n    to_timezone: Target IANA timezone name (e.g. \"Asia/Tokyo\").\n    time: Optional ISO 8601 datetime without timezone (e.g. \"2026-03-17T14:30:00\").\n          If omitted, uses the current time.","input_schema":{"additionalProperties":false,"properties":{"from_timezone":{"type":"string"},"to_timezone":{"type":"string"},"time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"required":["from_timezone","to_timezone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_timezone_info","description":"Get detailed information about a timezone.\n\nReturns UTC offset, DST status, abbreviation, region, and current time.\n\nArgs:\n    timezone: IANA timezone name (e.g. \"Europe/Oslo\", \"US/Eastern\").","input_schema":{"additionalProperties":false,"properties":{"timezone":{"type":"string"}},"required":["timezone"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_timezones","description":"List available IANA timezone names, optionally filtered by region.\n\nArgs:\n    region: Optional region prefix to filter by (e.g. \"Europe\", \"America\", \"Asia\").\n            If omitted, returns all timezones.","input_schema":{"additionalProperties":false,"properties":{"region":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/dictionary","name":"Dictionary","description":"English dictionary — definitions, pronunciations, synonyms, antonyms, and usage examples.","category":"Reference","source":"Free Dictionary API (Wiktionary)","endpoint":"/mcp/dictionary/","tools":[{"name":"define_word","description":"Look up an English word — definitions, pronunciations, examples, synonyms, and antonyms.\n\nReturns comprehensive dictionary data including part of speech, multiple definitions,\nusage examples, phonetic transcriptions, and audio pronunciation URLs.","input_schema":{"additionalProperties":false,"properties":{"word":{"description":"English word to look up (e.g. 'serendipity', 'ephemeral').","type":"string"}},"required":["word"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_synonyms","description":"Get synonyms and antonyms for an English word.\n\nAggregates all synonyms and antonyms from across all meanings and definitions.","input_schema":{"additionalProperties":false,"properties":{"word":{"description":"English word to find synonyms and antonyms for.","type":"string"}},"required":["word"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/currency-conversion","name":"Currency Conversion","description":"Real-time and historical currency conversion — 30+ currencies with ECB reference rates.","category":"Finance","source":"Frankfurter API (ECB)","endpoint":"/mcp/currency-conversion/","tools":[{"name":"convert_currency","description":"Convert an amount from one currency to another using real-time or historical rates.\n\nSupports 30+ currencies including USD, EUR, GBP, NOK, SEK, JPY, and more.\nUses European Central Bank reference rates via Frankfurter API.\n\nArgs:\n    amount: The amount to convert (must be positive).\n    base: Source currency code (e.g. \"USD\", \"EUR\", \"NOK\").\n    target: Target currency code (e.g. \"GBP\", \"SEK\", \"JPY\").\n    date: Optional ISO date (YYYY-MM-DD) for historical rate. Omit for latest.","input_schema":{"additionalProperties":false,"properties":{"amount":{"type":"number"},"base":{"type":"string"},"target":{"type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"required":["amount","base","target"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_exchange_rates","description":"Get all exchange rates for a base currency.\n\nReturns rates for 30+ currencies relative to the specified base.\n\nArgs:\n    base: Base currency code (default: \"EUR\").\n    date: Optional ISO date (YYYY-MM-DD) for historical rates. Omit for latest.","input_schema":{"additionalProperties":false,"properties":{"base":{"default":"EUR","type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_currencies","description":"List all supported currency codes for conversion.\n\nReturns ISO 4217 currency codes supported by the exchange rate service.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/postal-codes","name":"Postal Codes","description":"Postal/ZIP code lookup — city, state, coordinates for 70+ countries.","category":"Reference","source":"Zippopotam.us","endpoint":"/mcp/postal-codes/","tools":[{"name":"lookup_postal_code","description":"Look up location details for a postal/ZIP code — city, state, country, and coordinates.\n\nSupports 70+ countries including US, UK, Norway, Germany, France, Japan, and more.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. 'US', 'NO', 'DE').","type":"string"},"postal_code":{"description":"Postal or ZIP code to look up (e.g. '90210', '0150').","type":"string"}},"required":["country_code","postal_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_by_place","description":"Find postal codes for a city within a country and state.\n\nUseful for reverse lookup — find postal codes when you know the place name.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. 'US', 'DE').","type":"string"},"state":{"description":"State or province name (e.g. 'California', 'Bayern').","type":"string"},"city":{"description":"City or place name (e.g. 'Los Angeles', 'München').","type":"string"}},"required":["country_code","state","city"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_supported_countries","description":"List all countries supported for postal code lookup.\n\nReturns ISO country codes and names for all 70+ supported countries.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/recipe","name":"Recipe Database","description":"International recipe collection — search by name, browse by category or cuisine, get random recipes.","category":"Food & Drink","source":"TheMealDB","endpoint":"/mcp/recipe/","tools":[{"name":"search_recipes","description":"Search international recipes by name.\n\nReturns full recipe details including ingredients, instructions, and category.\n\nArgs:\n    query: Recipe name to search for (e.g. \"Arrabiata\", \"chicken\", \"pasta\").","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Recipe name to search for (e.g. \"Arrabiata\", \"chicken\", \"pasta\").","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_recipe","description":"Get full details for a specific recipe by its ID.\n\nArgs:\n    meal_id: TheMealDB recipe ID (e.g. \"52771\").\n\nReturns:\n    Full recipe record with ingredients, instructions, category, and cuisine.","input_schema":{"additionalProperties":false,"properties":{"meal_id":{"description":"TheMealDB recipe ID (e.g. \"52771\").","type":"string"}},"required":["meal_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_random_recipe","description":"Get a random recipe from the international recipe database.\n\nReturns:\n    A randomly selected recipe with full details.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_categories","description":"List all available recipe categories (e.g. Beef, Chicken, Dessert, Seafood).\n\nReturns:\n    List of categories with names, thumbnails, and descriptions.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"filter_by_category","description":"Filter recipes by category. Returns recipe summaries (name, ID, image).\n\nUse get_recipe() with the returned ID to get full details.\n\nArgs:\n    category: Recipe category (e.g. \"Beef\", \"Chicken\", \"Dessert\", \"Seafood\", \"Vegetarian\").","input_schema":{"additionalProperties":false,"properties":{"category":{"description":"Recipe category (e.g. \"Beef\", \"Chicken\", \"Dessert\", \"Seafood\", \"Vegetarian\").","type":"string"}},"required":["category"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"filter_by_area","description":"Filter recipes by cuisine/area. Returns recipe summaries (name, ID, image).\n\nUse get_recipe() with the returned ID to get full details.\n\nArgs:\n    area: Cuisine area (e.g. \"Italian\", \"Japanese\", \"Mexican\", \"British\", \"Indian\").","input_schema":{"additionalProperties":false,"properties":{"area":{"description":"Cuisine area (e.g. \"Italian\", \"Japanese\", \"Mexican\", \"British\", \"Indian\").","type":"string"}},"required":["area"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ip-geolocation","name":"IP Geolocation","description":"IP address geolocation — country, city, coordinates, ISP, and timezone from any IP.","category":"Utilities","source":"ip-api.com","endpoint":"/mcp/ip-geolocation/","tools":[{"name":"geolocate_ip","description":"Look up the geographic location of an IP address.\n\nReturns country, region, city, coordinates, timezone, ISP, and organization.\n\nArgs:\n    ip: IPv4 or IPv6 address to look up (e.g. \"8.8.8.8\", \"2001:4860:4860::8888\").","input_schema":{"additionalProperties":false,"properties":{"ip":{"type":"string"}},"required":["ip"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"geolocate_ip_batch","description":"Look up geographic locations for multiple IP addresses at once.\n\nMore efficient than individual lookups when you have several IPs.\nMaximum 100 IPs per request.\n\nArgs:\n    ips: Comma-separated IP addresses (e.g. \"8.8.8.8,1.1.1.1,208.67.222.222\").","input_schema":{"additionalProperties":false,"properties":{"ips":{"type":"string"}},"required":["ips"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/crypto-prices","name":"Crypto Prices","description":"Bitcoin, Ethereum, and altcoin prices — market cap, volume, and 24h changes.","category":"Finance","source":"CoinGecko","endpoint":"/mcp/crypto-prices/","tools":[{"name":"get_crypto_price","description":"Get the current price and market data for a cryptocurrency.\n\nReturns price in USD, market cap, 24h change, and trading volume.\n\nArgs:\n    coin_id: CoinGecko coin ID (e.g. \"bitcoin\", \"ethereum\", \"solana\").\n             Use search_crypto to find the correct ID.","input_schema":{"additionalProperties":false,"properties":{"coin_id":{"type":"string"}},"required":["coin_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_top_cryptocurrencies","description":"Get the top cryptocurrencies ranked by market capitalization.\n\nReturns price, market cap, 24h change, and volume for each coin.\n\nArgs:\n    limit: Number of coins to return (1-100, default 10).","input_schema":{"additionalProperties":false,"properties":{"limit":{"default":10,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_crypto_simple_price","description":"Get prices for multiple cryptocurrencies in multiple fiat currencies.\n\nLightweight endpoint for quick price lookups.\n\nArgs:\n    coin_ids: Comma-separated CoinGecko IDs (e.g. \"bitcoin,ethereum,solana\").\n    vs_currencies: Comma-separated currency codes (e.g. \"usd,eur,nok\"). Default: \"usd\".","input_schema":{"additionalProperties":false,"properties":{"coin_ids":{"type":"string"},"vs_currencies":{"default":"usd","type":"string"}},"required":["coin_ids"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_crypto","description":"Search for a cryptocurrency by name or symbol.\n\nReturns matching coins with their CoinGecko IDs for use with other tools.\n\nArgs:\n    query: Search term (e.g. \"bitcoin\", \"ETH\", \"solana\").","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/mortgage-calculator","name":"Mortgage Calculator","description":"Mortgage payment calculator — monthly payments, amortization schedules, and affordability estimates.","category":"Finance","source":"Standard amortization formulas","endpoint":"/mcp/mortgage-calculator/","tools":[{"name":"calculate_monthly_payment","description":"Calculate fixed monthly mortgage payment.\n\nGiven a loan amount, interest rate, and term, computes the monthly payment,\ntotal amount paid over the life of the loan, and total interest.","input_schema":{"additionalProperties":false,"properties":{"principal":{"description":"Loan amount.","type":"number"},"annual_rate":{"description":"Annual interest rate as a percentage (e.g. 5.5 for 5.5%).","type":"number"},"term_years":{"description":"Loan term in years.","type":"integer"}},"required":["principal","annual_rate","term_years"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"calculate_amortization","description":"Generate a full amortization schedule for a mortgage.\n\nReturns monthly entries showing how each payment splits between principal\nand interest, plus the remaining balance after each payment.","input_schema":{"additionalProperties":false,"properties":{"principal":{"description":"Loan amount.","type":"number"},"annual_rate":{"description":"Annual interest rate as a percentage (e.g. 5.5 for 5.5%).","type":"number"},"term_years":{"description":"Loan term in years.","type":"integer"}},"required":["principal","annual_rate","term_years"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"calculate_affordability","description":"Estimate how much home a buyer can afford.\n\nUses the 28% front-end DTI ratio: maximum housing payment is 28% of gross\nmonthly income, minus existing debts.","input_schema":{"additionalProperties":false,"properties":{"annual_income":{"description":"Gross annual income.","type":"number"},"annual_rate":{"description":"Annual interest rate as a percentage (e.g. 5.5 for 5.5%).","type":"number"},"monthly_debts":{"default":0.0,"description":"Existing monthly debt obligations.","type":"number"},"down_payment":{"default":0.0,"description":"Cash available for down payment.","type":"number"},"term_years":{"default":30,"description":"Loan term in years.","type":"integer"}},"required":["annual_income","annual_rate"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/historical-events","name":"Historical Events","description":"Curated database of major historical events — wars, discoveries, revolutions, and milestones across all eras.","category":"Education","source":"Curated dataset (Wikipedia, academic sources)","endpoint":"/mcp/historical-events/","tools":[{"name":"get_historical_event","description":"Get a single historical event by its ID.\n\nReturns detailed information including title, date, era, category, region,\ndescription, and significance.","input_schema":{"additionalProperties":false,"properties":{"event_id":{"description":"Event slug ID (e.g. 'moon-landing-1969', 'magna-carta').","type":"string"}},"required":["event_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_historical_events","description":"Search historical events by keyword.\n\nSearches across event titles and descriptions. Case-insensitive. Results are\nsorted chronologically.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches event title and description.","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_events_by_era","description":"List historical events filtered by era.\n\nValid eras: Ancient, Medieval, Early Modern, Modern, Contemporary.\nResults are sorted chronologically.","input_schema":{"additionalProperties":false,"properties":{"era":{"description":"Era name: Ancient, Medieval, Early Modern, Modern, or Contemporary.","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 50, max: 100)."}},"required":["era"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_events_by_category","description":"List historical events filtered by category.\n\nValid categories: War & Conflict, Science & Technology, Politics, Exploration,\nCulture, Economics, Religion, Natural Disaster. Results sorted chronologically.","input_schema":{"additionalProperties":false,"properties":{"category":{"description":"Category: War & Conflict, Science & Technology, Politics, Exploration, Culture, Economics, Religion, or Natural Disaster.","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 50, max: 100)."}},"required":["category"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_events_by_year_range","description":"List historical events within a year range (inclusive).\n\nUse negative years for BCE dates. Results sorted chronologically.","input_schema":{"additionalProperties":false,"properties":{"start_year":{"description":"Start year (use negative values for BCE, e.g. -500).","type":"integer"},"end_year":{"description":"End year (use negative values for BCE, e.g. -100).","type":"integer"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 50, max: 100)."}},"required":["start_year","end_year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/historical-figures","name":"Historical Figures","description":"Curated database of notable historical figures — leaders, scientists, artists, philosophers, and explorers.","category":"Education","source":"Curated dataset (Wikipedia, academic sources)","endpoint":"/mcp/historical-figures/","tools":[{"name":"get_historical_figure","description":"Get detailed information about a historical figure by ID.\n\nReturns biographical data including birth/death years, nationality, field, era, and description.","input_schema":{"additionalProperties":false,"properties":{"figure_id":{"description":"Slug ID of the historical figure (e.g. 'julius-caesar', 'albert-einstein').","type":"string"}},"required":["figure_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_historical_figures","description":"Search historical figures by keyword.\n\nSearches across names, achievements, and descriptions. Case-insensitive.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches name, known_for, or description.","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_figures_by_field","description":"List historical figures by their field of achievement.\n\nValid fields include: Politics & Leadership, Science & Mathematics, Arts & Literature,\nPhilosophy, Military, Exploration, Religion, Activism, Business & Economics.","input_schema":{"additionalProperties":false,"properties":{"field":{"description":"Field of achievement (e.g. 'Science & Mathematics', 'Arts & Literature', 'Philosophy').","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 50, max: 100)."}},"required":["field"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_figures_by_era","description":"List historical figures by historical era.\n\nValid eras: Ancient, Medieval, Renaissance, Early Modern, Modern, Contemporary.","input_schema":{"additionalProperties":false,"properties":{"era":{"description":"Historical era (e.g. 'Ancient', 'Medieval', 'Renaissance', 'Modern', 'Contemporary').","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 50, max: 100)."}},"required":["era"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_figures_by_nationality","description":"List historical figures by nationality.\n\nPartial matching — e.g. 'american' matches 'American', 'Serbian-American', etc.","input_schema":{"additionalProperties":false,"properties":{"nationality":{"description":"Nationality to filter by (case-insensitive, partial match).","type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 50, max: 100)."}},"required":["nationality"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/bin-lookup","name":"BIN Lookup","description":"BIN (Bank Identification Number) lookup — identify card brand, type, and category from the first 6-8 digits.","category":"Finance","source":"Well-known public BIN prefix ranges","endpoint":"/mcp/bin-lookup/","tools":[{"name":"lookup_bin","description":"Identify the card brand, type, and category from a Bank Identification Number (BIN).\n\nMatches the input against well-known public BIN prefix ranges for Visa,\nMastercard, American Express, Discover, JCB, UnionPay, Diners Club, and Maestro.\n\nArgs:\n    bin_digits: The first 6-8 digits of a payment card number.","input_schema":{"additionalProperties":false,"properties":{"bin_digits":{"description":"First 6-8 digits of a payment card number.","type":"string"}},"required":["bin_digits"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_card_brands","description":"List all card brands that can be identified from BIN prefixes.\n\nReturns the sorted list of known card brands (e.g. Visa, Mastercard, etc.).","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/vat-rates","name":"VAT Rates (EU)","description":"EU and European VAT rates by country — standard, reduced, super-reduced, and parking rates.","category":"Finance","source":"European Commission","endpoint":"/mcp/vat-rates/","tools":[{"name":"get_vat_rate","description":"Get VAT rates for a specific European country.\n\nReturns standard rate, reduced rates, super-reduced rate, and parking rate where applicable.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO alpha-2 country code (e.g. DE, FR, SE).","type":"string"}},"required":["country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_all_vat_rates","description":"List VAT rates for all European countries.\n\nReturns standard and reduced rates for all EU/EEA member states plus UK and Switzerland.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_vat_rates","description":"Search VAT rates by country name.\n\nCase-insensitive partial match on country name or code.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Country name to search for.","type":"string"},"limit":{"default":10,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_highest_vat_rates","description":"Get countries with the highest standard VAT rates.","input_schema":{"additionalProperties":false,"properties":{"limit":{"default":10,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_lowest_vat_rates","description":"Get countries with the lowest standard VAT rates.","input_schema":{"additionalProperties":false,"properties":{"limit":{"default":10,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/calories-burned","name":"Calories Burned","description":"Calculate caloric expenditure by activity, duration, and body weight using MET values.","category":"Health","source":"Compendium of Physical Activities","endpoint":"/mcp/calories-burned/","tools":[{"name":"calculate_calories_burned","description":"Calculate calories burned for a physical activity.\n\nUses MET (Metabolic Equivalent of Task) values from the Compendium of Physical Activities.\nFormula: calories = MET * 3.5 * weight_kg / 200 * duration_minutes.","input_schema":{"additionalProperties":false,"properties":{"activity":{"description":"Activity ID (e.g. running-5mph, cycling-moderate, yoga-hatha).","type":"string"},"weight_kg":{"description":"Body weight in kilograms.","exclusiveMinimum":0,"type":"number"},"duration_minutes":{"description":"Duration of activity in minutes.","exclusiveMinimum":0,"type":"number"}},"required":["activity","weight_kg","duration_minutes"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_activities","description":"Search available physical activities by name or category.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by activity name or category (e.g. 'running', 'swimming').","type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_activities_by_category","description":"List all activities in a given category.","input_schema":{"additionalProperties":false,"properties":{"category":{"description":"Activity category (e.g. Running, Swimming, Gym, Sports).","type":"string"}},"required":["category"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_activity_categories","description":"List all available activity categories.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/astronomy","name":"Astronomy","description":"Solar system planets and notable stars — mass, radius, orbital parameters, spectral data.","category":"Science","source":"NASA Planetary Fact Sheet / IAU","endpoint":"/mcp/astronomy/","tools":[{"name":"get_planet","description":"Get detailed information about a solar system planet.\n\nReturns mass, radius, orbital parameters, atmosphere composition, and more.\nIncludes the 8 major planets plus Pluto (dwarf planet).","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Planet name (e.g. Earth, Mars, Jupiter, Pluto).","type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_planets","description":"List planets in the solar system.\n\nOptionally filter by type: terrestrial (rocky), gas_giant, ice_giant, or dwarf.","input_schema":{"additionalProperties":false,"properties":{"planet_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter: terrestrial, gas_giant, ice_giant, dwarf."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_star","description":"Get detailed information about a notable star.\n\nReturns spectral type, magnitude, distance, mass, radius, temperature, and luminosity.","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Star name (e.g. Sirius, Betelgeuse, Polaris, Sun).","type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_stars","description":"Search the star database by name or constellation.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by star name, constellation, or designation.","type":"string"},"limit":{"default":10,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_brightest_stars","description":"List the brightest stars visible from Earth, sorted by apparent magnitude.","input_schema":{"additionalProperties":false,"properties":{"limit":{"default":10,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_nearest_stars","description":"List the nearest stars to Earth, sorted by distance in light-years.","input_schema":{"additionalProperties":false,"properties":{"limit":{"default":10,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_constellations","description":"List all constellations represented in the star database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/animals","name":"Animal Species","description":"Animal species database — taxonomy, habitat, diet, lifespan, conservation status.","category":"Science","source":"Curated dataset (IUCN, Wikipedia)","endpoint":"/mcp/animals/","tools":[{"name":"get_animal","description":"Get detailed information about an animal species.\n\nReturns taxonomy, habitat, diet, lifespan, physical characteristics, conservation status, and description.","input_schema":{"additionalProperties":false,"properties":{"animal_id":{"description":"Animal ID slug (e.g. african-elephant, blue-whale, axolotl).","type":"string"}},"required":["animal_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_animals","description":"Search the animal species database.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by common name, scientific name, or family.","type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_animals_by_class","description":"List animals by taxonomic class.","input_schema":{"additionalProperties":false,"properties":{"animal_class":{"description":"Taxonomic class (e.g. Mammalia, Aves, Reptilia, Amphibia).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["animal_class"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_animals_by_habitat","description":"List animals by habitat type.","input_schema":{"additionalProperties":false,"properties":{"habitat":{"description":"Habitat type (e.g. Forest, Ocean, Savanna, Arctic).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["habitat"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_endangered_species","description":"List endangered and critically endangered animal species.","input_schema":{"additionalProperties":false,"properties":{"limit":{"default":20,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_animal_classes","description":"List all taxonomic classes in the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_animal_habitats","description":"List all habitat types in the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/swift-bic","name":"SWIFT/BIC Lookup","description":"SWIFT/BIC code lookup — identify banks by SWIFT code, search by name, filter by country.","category":"Finance","source":"Curated dataset (ISO 9362, public records)","endpoint":"/mcp/swift-bic/","tools":[{"name":"lookup_swift_code","description":"Look up a bank by its SWIFT/BIC code.\n\nReturns bank name, country, city, and branch information for the given SWIFT/BIC code.","input_schema":{"additionalProperties":false,"properties":{"swift_code":{"description":"8 or 11 character SWIFT/BIC code (e.g. CHASUS33, DEUTDEFF).","type":"string"}},"required":["swift_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_swift_banks","description":"Search the SWIFT/BIC code database.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by bank name, city, or SWIFT code.","type":"string"},"limit":{"default":20,"description":"Maximum results to return.","maximum":100,"minimum":1,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_banks_by_country","description":"List banks by country code from the SWIFT/BIC database.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, JP).","type":"string"},"limit":{"default":50,"description":"Maximum results to return.","maximum":100,"minimum":1,"type":"integer"}},"required":["country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/sp500","name":"S&P 500 Companies","description":"S&P 500 companies — ticker, sector, sub-industry, headquarters, and CIK numbers.","category":"Finance","source":"Curated dataset (S&P Dow Jones Indices)","endpoint":"/mcp/sp500/","tools":[{"name":"get_sp500_company","description":"Get detailed information about an S&P 500 company by ticker symbol.\n\nReturns company name, GICS sector, sub-industry, headquarters, founding year, and SEC CIK number.","input_schema":{"additionalProperties":false,"properties":{"ticker":{"description":"Stock ticker symbol (e.g. AAPL, MSFT, GOOGL).","type":"string"}},"required":["ticker"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_sp500_companies","description":"Search the S&P 500 companies database.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by company name or ticker symbol.","type":"string"},"limit":{"default":20,"description":"Maximum results to return.","maximum":100,"minimum":1,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_sp500_by_sector","description":"List S&P 500 companies by GICS sector.","input_schema":{"additionalProperties":false,"properties":{"sector":{"description":"GICS sector (e.g. Information Technology, Health Care, Financials).","type":"string"},"limit":{"default":50,"description":"Maximum results to return.","maximum":100,"minimum":1,"type":"integer"}},"required":["sector"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/income-tax","name":"Income Tax Rates","description":"Income tax rates and calculator — progressive brackets for 15 countries, with tax computation.","category":"Finance","source":"Curated dataset (government tax authorities, 2024 rates)","endpoint":"/mcp/income-tax/","tools":[{"name":"get_tax_info","description":"Get income tax brackets and rates for a country.\n\nReturns tax brackets, standard deduction, currency, tax year, and notes about the tax system.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, NO).","type":"string"}},"required":["country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"calculate_income_tax","description":"Calculate progressive income tax for a given country and annual income.\n\nReturns total tax, effective rate, marginal rate, and a per-bracket breakdown showing\nhow much income falls in each bracket and how much tax is owed per bracket.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, NO).","type":"string"},"income":{"description":"Gross annual income in the country's local currency.","exclusiveMinimum":0,"type":"number"}},"required":["country_code","income"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_tax_countries","description":"List all countries with available income tax bracket data.\n\nReturns country codes, names, and currencies for all supported countries.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ticker-search","name":"Company Ticker Search","description":"Global stock ticker search — 120+ companies across 20+ exchanges worldwide.","category":"Finance","source":"Curated dataset (exchange listings)","endpoint":"/mcp/ticker-search/","tools":[{"name":"lookup_ticker","description":"Look up a company by its stock ticker symbol.\n\nReturns company name, exchange, country, sector, and market cap category.","input_schema":{"additionalProperties":false,"properties":{"ticker":{"description":"Stock ticker symbol (e.g. AAPL, 7203.T, MC.PA, EQNR.OL).","type":"string"}},"required":["ticker"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_company_tickers","description":"Search the company ticker database by name or symbol.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by company name or ticker symbol.","type":"string"},"limit":{"default":20,"description":"Maximum results to return.","maximum":100,"minimum":1,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_tickers_by_exchange","description":"List company tickers by stock exchange.","input_schema":{"additionalProperties":false,"properties":{"exchange":{"description":"Stock exchange name (e.g. NYSE, NASDAQ, LSE, TSE, HKEX, OSE).","type":"string"},"limit":{"default":50,"description":"Maximum results to return.","maximum":100,"minimum":1,"type":"integer"}},"required":["exchange"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_tickers_by_sector","description":"List company tickers by GICS sector.","input_schema":{"additionalProperties":false,"properties":{"sector":{"description":"GICS sector (e.g. Information Technology, Financials, Health Care).","type":"string"},"limit":{"default":50,"description":"Maximum results to return.","maximum":100,"minimum":1,"type":"integer"}},"required":["sector"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/vin-lookup","name":"VIN Lookup","description":"VIN (Vehicle Identification Number) decoder — manufacturer, country, vehicle type, model year.","category":"Automotive","source":"NHTSA WMI database","endpoint":"/mcp/vin-lookup/","tools":[{"name":"decode_vin","description":"Decode a VIN to identify manufacturer, country, vehicle type, and model year.\n\nReturns WMI (World Manufacturer Identifier), manufacturer name, country of origin,\nvehicle type, model year, and check digit validation.","input_schema":{"additionalProperties":false,"properties":{"vin":{"description":"17-character Vehicle Identification Number.","type":"string"}},"required":["vin"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_vin_manufacturers","description":"List all manufacturers in the VIN/WMI database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/vehicle-specs","name":"Vehicle Specifications","description":"Car specifications database — engine, horsepower, MPG, drivetrain, pricing for popular models.","category":"Automotive","source":"Curated dataset (EPA, manufacturer specs)","endpoint":"/mcp/vehicle-specs/","tools":[{"name":"get_vehicle","description":"Get detailed specifications for a vehicle.\n\nReturns make, model, year, engine, horsepower, MPG, drivetrain, transmission, and MSRP.","input_schema":{"additionalProperties":false,"properties":{"vehicle_id":{"description":"Vehicle ID slug (e.g. toyota-camry-2024, ford-f150-2024).","type":"string"}},"required":["vehicle_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_vehicles","description":"Search the vehicle specifications database.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by make, model, or engine.","type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_vehicles_by_make","description":"List vehicles by manufacturer.","input_schema":{"additionalProperties":false,"properties":{"make":{"description":"Manufacturer name (e.g. Toyota, Ford, BMW).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["make"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_vehicles_by_body_style","description":"List vehicles by body style.","input_schema":{"additionalProperties":false,"properties":{"body_style":{"description":"Body style (e.g. Sedan, SUV, Truck, Coupe).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["body_style"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_vehicle_makes","description":"List all vehicle makes in the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_vehicle_body_styles","description":"List all body styles in the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ev-data","name":"Electric Vehicle Data","description":"Electric vehicle database — range, battery, charging speed, performance for current EV models.","category":"Automotive","source":"Curated dataset (EPA, manufacturer specs)","endpoint":"/mcp/ev-data/","tools":[{"name":"get_ev","description":"Get detailed specifications for an electric vehicle.\n\nReturns range, battery capacity, charging specs, performance, and pricing.","input_schema":{"additionalProperties":false,"properties":{"ev_id":{"description":"EV ID slug (e.g. tesla-model3-2024, bmw-i4-2024).","type":"string"}},"required":["ev_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_evs","description":"Search the electric vehicle database.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by make, model, or features.","type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_evs_by_make","description":"List electric vehicles by manufacturer.","input_schema":{"additionalProperties":false,"properties":{"make":{"description":"Manufacturer (e.g. Tesla, BMW, Hyundai).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["make"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_evs_by_segment","description":"List electric vehicles by market segment.","input_schema":{"additionalProperties":false,"properties":{"segment":{"description":"Market segment (Economy, Mid-range, Premium, Luxury, Performance).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["segment"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_evs_by_range","description":"List EVs by range, sorted from highest to lowest.","input_schema":{"additionalProperties":false,"properties":{"min_range_km":{"default":0,"type":"integer"},"limit":{"default":20,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_ev_makes","description":"List all EV manufacturers in the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_ev_segments","description":"List all market segments in the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/hospital-directory","name":"Hospital Directory","description":"US hospital directory — beds, trauma level, specialties, accreditation for major hospitals.","category":"Health","source":"Curated dataset (CMS, AHA)","endpoint":"/mcp/hospital-directory/","tools":[{"name":"get_hospital","description":"Get detailed information about a hospital.\n\nReturns name, location, type, beds, trauma level, specialties, and accreditation.","input_schema":{"additionalProperties":false,"properties":{"hospital_id":{"description":"Hospital ID slug (e.g. mayo-clinic-rochester, johns-hopkins).","type":"string"}},"required":["hospital_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_hospitals","description":"Search the hospital directory.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by name, city, or specialty.","type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_hospitals_by_state","description":"List hospitals in a US state.","input_schema":{"additionalProperties":false,"properties":{"state":{"description":"US state abbreviation (e.g. MA, CA, NY).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["state"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_hospitals_by_type","description":"List hospitals by type.","input_schema":{"additionalProperties":false,"properties":{"hospital_type":{"description":"Hospital type (Teaching, General, Children's, VA).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["hospital_type"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_hospitals_by_specialty","description":"List hospitals with a given medical specialty.","input_schema":{"additionalProperties":false,"properties":{"specialty":{"description":"Medical specialty (e.g. Cardiology, Oncology, Neurology).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["specialty"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_trauma_centers","description":"List trauma centers by level.","input_schema":{"additionalProperties":false,"properties":{"level":{"default":"Level I","type":"string"},"limit":{"default":50,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_hospital_states","description":"List all US states with hospitals in the directory.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_hospital_types","description":"List all hospital types in the directory.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_medical_specialties","description":"List all medical specialties in the directory.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/phone-validation","name":"Phone Number Validation","description":"Phone number validation and parsing — country detection, number type, formatting.","category":"Utilities","source":"Curated dataset (ITU numbering plans)","endpoint":"/mcp/phone-validation/","tools":[{"name":"validate_phone_number","description":"Validate and parse a phone number.\n\nReturns country, number type (mobile/landline/toll_free/premium), and formatted versions (E.164, international, national).","input_schema":{"additionalProperties":false,"properties":{"number":{"description":"Phone number to validate (E.164, international, or national format, e.g. +14155551234, 00441234567890).","type":"string"}},"required":["number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"format_phone_number","description":"Format a phone number in the specified style.\n\nReturns the number formatted as E.164 (+1234567890), international (+1 234 567 890), or national (0234 567 890).","input_schema":{"additionalProperties":false,"properties":{"number":{"description":"Phone number to format.","type":"string"},"fmt":{"default":"e164","description":"Output format: e164, international, or national.","type":"string"}},"required":["number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_calling_codes","description":"List all known country calling codes with metadata.\n\nReturns calling code, country name, trunk prefix, number length ranges, and example numbers for ~50 countries.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_calling_code","description":"Get calling code details for a specific country.\n\nReturns calling code, trunk prefix, number length, example numbers, and known prefix patterns for mobile/landline.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code (e.g. US, GB, NO, DE).","type":"string"}},"required":["country_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/emoji-database","name":"Emoji Database","description":"Emoji lookup — search by name, keyword, or shortcode, browse by category.","category":"Utilities","source":"Unicode Consortium (CLDR)","endpoint":"/mcp/emoji-database/","tools":[{"name":"get_emoji","description":"Get detailed information about an emoji.\n\nReturns the emoji character, name, category, subcategory, codepoint, shortcodes, keywords, and Unicode version.","input_schema":{"additionalProperties":false,"properties":{"emoji_id":{"description":"Emoji ID slug (e.g. grinning-face, red-heart, thumbs-up).","type":"string"}},"required":["emoji_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_emojis","description":"Search the emoji database.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by name, keyword, or shortcode.","type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_emojis_by_category","description":"List emojis by category.","input_schema":{"additionalProperties":false,"properties":{"category":{"description":"Emoji category (e.g. Smileys & Emotion, People & Body, Flags).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["category"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_emoji_categories","description":"List all emoji categories in the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_random_emoji","description":"Get a random emoji from the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/password-generator","name":"Password Generator","description":"Secure password, passphrase, and PIN generator with strength estimation.","category":"Utilities","source":"Algorithmic (secrets module)","endpoint":"/mcp/password-generator/","tools":[{"name":"generate_password","description":"Generate a cryptographically secure random password.\n\nReturns the password, its length, character sets used, and entropy in bits.","input_schema":{"additionalProperties":false,"properties":{"length":{"default":16,"description":"Password length (4-128).","maximum":128,"minimum":4,"type":"integer"},"uppercase":{"default":true,"description":"Include uppercase letters.","type":"boolean"},"lowercase":{"default":true,"description":"Include lowercase letters.","type":"boolean"},"digits":{"default":true,"description":"Include digits.","type":"boolean"},"symbols":{"default":true,"description":"Include symbols.","type":"boolean"},"exclude_ambiguous":{"default":false,"description":"Exclude ambiguous characters (0/O, 1/l/I, etc.).","type":"boolean"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"generate_passphrase","description":"Generate a passphrase from random dictionary words.\n\nReturns the passphrase, word count, separator, and entropy in bits.","input_schema":{"additionalProperties":false,"properties":{"words":{"default":4,"description":"Number of words (2-12).","maximum":12,"minimum":2,"type":"integer"},"separator":{"default":"-","description":"Word separator character.","type":"string"},"capitalize":{"default":false,"description":"Capitalize each word.","type":"boolean"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"generate_pin","description":"Generate a cryptographically secure numeric PIN.\n\nReturns the PIN, its length, and entropy in bits.","input_schema":{"additionalProperties":false,"properties":{"length":{"default":6,"description":"PIN length (4-12).","maximum":12,"minimum":4,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"check_password_strength","description":"Estimate the strength of a given password.\n\nReturns a score (0-4), label (very_weak/weak/fair/strong/very_strong), entropy in bits, and feedback.","input_schema":{"additionalProperties":false,"properties":{"password":{"description":"Password to evaluate.","type":"string"}},"required":["password"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ev-charging","name":"EV Charging","description":"EV charging networks, connector types, and charging levels reference data.","category":"Automotive","source":"Curated dataset (industry sources)","endpoint":"/mcp/ev-charging/","tools":[{"name":"get_charging_network","description":"Get detailed information about an EV charging network.\n\nReturns name, country coverage, connector types, pricing model, station count, and description.","input_schema":{"additionalProperties":false,"properties":{"network_id":{"description":"Network ID slug (e.g. tesla-supercharger, chargepoint, ionity).","type":"string"}},"required":["network_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_charging_networks","description":"Search the EV charging network database.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search by network name or description.","type":"string"},"limit":{"default":20,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_networks_by_country","description":"List EV charging networks operating in a specific country.","input_schema":{"additionalProperties":false,"properties":{"country":{"description":"Country name (e.g. United States, Germany, Norway).","type":"string"},"limit":{"default":50,"type":"integer"}},"required":["country"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_connector_type","description":"Get detailed information about an EV charging connector type.\n\nReturns standard, max power, voltage range, current type, regions, and description.","input_schema":{"additionalProperties":false,"properties":{"connector_id":{"description":"Connector ID slug (e.g. ccs1, ccs2, chademo, type-2, nacs).","type":"string"}},"required":["connector_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_connector_types","description":"List EV charging connector types, optionally filtered by current type.","input_schema":{"additionalProperties":false,"properties":{"current_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by current type: AC or DC."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_charging_level","description":"Get detailed information about an EV charging level.\n\nReturns power range, typical charge time, use case, compatible connectors, and description.","input_schema":{"additionalProperties":false,"properties":{"level_id":{"description":"Level ID slug (e.g. level-1, level-2, dc-fast).","type":"string"}},"required":["level_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_charging_levels","description":"List all EV charging levels (Level 1, Level 2, DC Fast Charging).","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/wikipedia","name":"Wikipedia","description":"Article summaries, search, and section content from Wikipedia — the free encyclopedia.","category":"Reference","source":"Wikimedia Foundation","endpoint":"/mcp/wikipedia/","tools":[{"name":"search_articles","description":"Search Wikipedia articles by keyword.\n\nFinds articles matching the query and returns titles, snippets, and metadata.\n\nExamples:\n    search_articles(\"quantum computing\") -> articles about quantum computing\n    search_articles(\"Norwegian fjords\", limit=10) -> articles about fjords in Norway\n\nReturns:\n    List of matching articles with title, snippet, page_id, and word_count.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords or phrases to find Wikipedia articles.","type":"string"},"limit":{"default":5,"description":"Max results to return (default 5, max 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_article_summary","description":"Get a concise summary of a Wikipedia article.\n\nReturns the article's lead paragraph, description, thumbnail image,\nand URL. Fast way to get key facts about any topic.\n\nExamples:\n    get_article_summary(\"Python (programming language)\") -> Python summary\n    get_article_summary(\"Albert Einstein\") -> Einstein biography summary\n\nReturns:\n    Article title, description, extract (plain text summary), page URL, and thumbnail.","input_schema":{"additionalProperties":false,"properties":{"title":{"description":"Wikipedia article title (e.g. 'Artificial intelligence', 'Oslo').","type":"string"}},"required":["title"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_article_sections","description":"Get the full section structure and content of a Wikipedia article.\n\nReturns all sections with headings and plain text content. Useful when\nyou need detailed information from specific parts of an article.\n\nExamples:\n    get_article_sections(\"Climate change\") -> all sections about climate change\n    get_article_sections(\"History of Norway\") -> detailed Norwegian history by section\n\nReturns:\n    List of sections with heading, level, and plain text content.","input_schema":{"additionalProperties":false,"properties":{"title":{"description":"Wikipedia article title (e.g. 'Machine learning', 'Norway').","type":"string"}},"required":["title"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/openfoodfacts","name":"Open Food Facts","description":"Food product database — barcode lookup, nutrition facts, Nutri-Score, ingredients.","category":"Food & Drink","source":"Open Food Facts (community database)","endpoint":"/mcp/openfoodfacts/","tools":[{"name":"get_food_product","description":"Look up a food product by barcode (EAN-13 or UPC-A).\n\nReturns product name, brand, Nutri-Score, NOVA group, ingredients, and\nfull nutrition facts per 100g.\n\nArgs:\n    barcode: Product barcode (e.g. \"3017620422003\" for Nutella).","input_schema":{"additionalProperties":false,"properties":{"barcode":{"type":"string"}},"required":["barcode"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_food_products","description":"Search the Open Food Facts database for food products by name.\n\nReturns matching products with barcode, name, brand, and Nutri-Score.\n\nArgs:\n    query: Product name search (e.g. \"nutella\", \"oat milk\", \"granola\").\n    limit: Maximum number of results (1-50, default 10).","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"limit":{"default":10,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/migration","name":"International Migration (UNHCR)","description":"Global displacement statistics from UNHCR — refugees, asylum seekers, IDPs, stateless persons. 70+ years of data across 200+ countries with demographics and durable solutions.","category":"Government","source":"UNHCR Population Statistics API","endpoint":"/mcp/migration/","tools":[{"name":"get_population","description":"Get refugee, asylum seeker, IDP, and stateless population statistics from UNHCR.\n\nCovers 70+ years of global displacement data across 200+ countries. Returns counts of\nrefugees, asylum seekers, internally displaced persons (IDPs), stateless persons,\nand other populations of concern by country of origin and asylum.\n\nExamples:\n    get_population(year=2023, country_of_origin=\"SYR\") → Syrian displacement worldwide\n    get_population(year=2023, country_of_asylum=\"DEU\") → All displaced populations in Germany\n    get_population(year=2023) → Global displacement snapshot\n\nReturns:\n    page, max_pages, results (list of population records by origin/asylum pair).","input_schema":{"additionalProperties":false,"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by year (1951–2025). Example: 2023."},"country_of_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code of origin (2 or 3 letter). Example: 'SYR' for Syria, 'UA' for Ukraine."},"country_of_asylum":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code of asylum (2 or 3 letter). Example: 'DEU' for Germany, 'US' for United States."},"limit":{"default":20,"description":"Results per page (1-100).","type":"integer"},"page":{"default":1,"description":"Page number.","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_demographics","description":"Get age and gender demographic breakdowns of displaced populations.\n\nReturns female/male counts across age brackets (0-4, 5-11, 12-17, 18-59, 60+)\nfor each origin/asylum country pair.\n\nExamples:\n    get_demographics(year=2023, country_of_asylum=\"DEU\") → Age/gender of displaced in Germany\n    get_demographics(year=2023, country_of_origin=\"AFG\") → Afghan refugee demographics worldwide\n\nReturns:\n    page, max_pages, results (list with female/male age breakdowns).","input_schema":{"additionalProperties":false,"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by year (1951–2025)."},"country_of_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code of origin."},"country_of_asylum":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code of asylum."},"limit":{"default":20,"description":"Results per page (1-100).","type":"integer"},"page":{"default":1,"description":"Page number.","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_solutions","description":"Get durable solutions data — refugee returns, resettlement, and naturalisation.\n\nTracks how displacement is resolved: voluntary repatriation (returned refugees),\nthird-country resettlement, naturalisation in country of asylum, and IDP returns.\n\nExamples:\n    get_solutions(year=2023) → Global solutions overview\n    get_solutions(year=2023, country_of_origin=\"SYR\") → Syrian returns and resettlement\n\nReturns:\n    page, max_pages, results (list with returned_refugees, resettlement, naturalisation, returned_idps).","input_schema":{"additionalProperties":false,"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by year (1951–2025)."},"country_of_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code of origin."},"country_of_asylum":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code of asylum."},"limit":{"default":20,"description":"Results per page (1-100).","type":"integer"},"page":{"default":1,"description":"Page number.","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_countries","description":"List all countries and territories in the UNHCR displacement dataset.\n\nReturns ISO codes, names, regions, and major areas for 200+ countries.\nUse these codes with get_population, get_demographics, and get_solutions.\n\nReturns:\n    total, countries (list of {code, iso, iso2, name, region, major_area}).","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/museum","name":"Art & Museum Collections","description":"Search 470K+ artworks from the Metropolitan Museum of Art and 120K+ from the Art Institute of Chicago — titles, artists, dates, media, images, and full provenance.","category":"Media","source":"Metropolitan Museum of Art Collection API, Art Institute of Chicago API","endpoint":"/mcp/museum/","tools":[{"name":"search_artworks","description":"Search artworks across the Metropolitan Museum of Art (470K+ objects) and Art Institute of Chicago (120K+ objects).\n\nReturns titles, artists, dates, media, dimensions, departments, images, and more.\nSearch both institutions at once or filter to one.\n\nExamples:\n    search_artworks(\"impressionism\") → Impressionist works from both museums\n    search_artworks(\"armor\", institution=\"met\", department_id=4) → Arms and Armor at the Met\n    search_artworks(\"Monet water lilies\", institution=\"aic\") → Monet at Art Institute of Chicago\n\nReturns:\n    total, results (list of artworks with metadata and image URLs), query.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term — artist, title, style, subject. Example: 'Van Gogh sunflowers'.","type":"string"},"institution":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by institution: 'met' (Metropolitan Museum of Art) or 'aic' (Art Institute of Chicago). Omit to search both."},"department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Met Museum department ID filter (use get_departments to list). Only applies when institution='met'."},"is_highlight":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only return highlighted/notable works. Met only."},"has_images":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only return works with images. Met only."},"medium":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by medium, e.g. 'Paintings', 'Sculpture', 'Photographs'. Met only."},"date_begin":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year filter, e.g. 1800. Met only."},"date_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year filter, e.g. 1900. Met only."},"limit":{"default":5,"description":"Max results to return (1-10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_artwork","description":"Get full details for a specific artwork by ID and institution.\n\nReturns complete metadata: title, artist, dates, medium, dimensions, department,\nclassification, culture, period, credit line, public domain status, image URLs,\ntags, and Wikidata links (Met) or provenance, exhibition history, and description (AIC).\n\nExamples:\n    get_artwork(436535, \"met\") → Van Gogh's Wheat Field with Cypresses\n    get_artwork(27992, \"aic\") → Seurat's A Sunday on La Grande Jatte\n\nReturns:\n    Full artwork metadata dict.","input_schema":{"additionalProperties":false,"properties":{"object_id":{"description":"Artwork ID from the institution.","type":"integer"},"institution":{"description":"Institution: 'met' (Metropolitan Museum) or 'aic' (Art Institute of Chicago).","type":"string"}},"required":["object_id","institution"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_departments","description":"List all curatorial departments at the Metropolitan Museum of Art.\n\nReturns department IDs and names. Use department IDs to filter search_artworks results.\n\nDepartments include: American Decorative Arts, Ancient West Asian Art, Arms and Armor,\nAsian Art, The Cloisters, European Paintings, Egyptian Art, Photographs, Modern Art, and more.\n\nReturns:\n    departments (list of {id, name}).","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/musicbrainz","name":"MusicBrainz","description":"Music metadata — artist profiles, album discographies, song/recording search.","category":"Media","source":"MusicBrainz (open music encyclopedia)","endpoint":"/mcp/musicbrainz/","tools":[{"name":"search_artists","description":"Search for music artists by name.\n\nReturns artist names, countries, active years, and genre tags.\n\nArgs:\n    query: Artist name (e.g. \"Radiohead\", \"Miles Davis\", \"a-ha\").\n    limit: Maximum results (1-25, default 10).","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"limit":{"default":10,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_artist_info","description":"Get detailed information about an artist by MusicBrainz ID.\n\nReturns full artist profile including name, type, country, lifespan, and tags.\n\nArgs:\n    artist_id: MusicBrainz UUID (e.g. \"a74b1b7f-71a5-4011-9441-d0b5e4122711\" for Radiohead).","input_schema":{"additionalProperties":false,"properties":{"artist_id":{"type":"string"}},"required":["artist_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_artist_releases","description":"Get albums and releases for an artist.\n\nReturns release titles, dates, countries, and track counts.\n\nArgs:\n    artist_id: MusicBrainz artist UUID.\n    limit: Maximum results (1-100, default 25).","input_schema":{"additionalProperties":false,"properties":{"artist_id":{"type":"string"},"limit":{"default":25,"type":"integer"}},"required":["artist_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_recordings","description":"Search for songs/recordings by title.\n\nReturns recording titles, artists, duration, and first release dates.\n\nArgs:\n    query: Song or track title (e.g. \"Bohemian Rhapsody\", \"Take On Me\").\n    limit: Maximum results (1-25, default 10).","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"limit":{"default":10,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nasa","name":"NASA","description":"NASA open APIs — Astronomy Picture of the Day, Near Earth Objects, Mars Rover Photos, EPIC Earth imagery, and DONKI space weather events.","category":"Science","source":"NASA Open APIs (api.nasa.gov)","endpoint":"/mcp/nasa/","tools":[{"name":"search_apod","description":"Get NASA's Astronomy Picture of the Day with scientific explanations.\n\nReturns high-quality astronomy images or videos with detailed explanations\nfrom professional astronomers. Data goes back to June 1995.\n\nExamples:\n    search_apod() -> today's picture\n    search_apod(date=\"2024-01-01\") -> specific date\n    search_apod(start_date=\"2024-01-01\", end_date=\"2024-01-07\") -> date range\n    search_apod(count=5) -> 5 random pictures","input_schema":{"additionalProperties":false,"properties":{"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Specific date (YYYY-MM-DD). Omit for today's picture."},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date for a date range (YYYY-MM-DD)."},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date for a date range (YYYY-MM-DD)."},"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Return N random APOD entries (1-100). Cannot combine with date/start_date."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_neo","description":"Search Near Earth Objects (asteroids and comets) by date range.\n\nReturns orbital data, size estimates, close approach distances, velocities,\nand whether each object is classified as potentially hazardous.\n\nMaximum 7-day range per query. Use for asteroid tracking, impact risk\nassessment, and space situational awareness.\n\nExamples:\n    search_neo(\"2024-01-01\", \"2024-01-07\") -> week of NEO data","input_schema":{"additionalProperties":false,"properties":{"start_date":{"description":"Start date (YYYY-MM-DD).","type":"string"},"end_date":{"description":"End date (YYYY-MM-DD), max 7 days from start.","type":"string"}},"required":["start_date","end_date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_mars_photos","description":"Search Mars Rover photos from Curiosity, Opportunity, Spirit, and Perseverance.\n\nEach rover has different cameras. Common cameras:\n- FHAZ/RHAZ: Front/Rear Hazard Avoidance (all rovers)\n- NAVCAM: Navigation Camera (all rovers)\n- MAST: Mast Camera (Curiosity)\n- PANCAM: Panoramic Camera (Opportunity, Spirit)\n\nExamples:\n    search_mars_photos(\"curiosity\", sol=1000) -> Curiosity photos from sol 1000\n    search_mars_photos(\"perseverance\", earth_date=\"2024-01-15\", camera=\"NAVCAM\")","input_schema":{"additionalProperties":false,"properties":{"rover":{"description":"Rover name: curiosity, opportunity, spirit, or perseverance.","type":"string"},"sol":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Martian sol (day) number. Default 1000 if neither sol nor earth_date given."},"earth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Earth date (YYYY-MM-DD). Alternative to sol."},"camera":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Camera abbreviation: FHAZ, RHAZ, MAST, CHEMCAM, MAHLI, NAVCAM, PANCAM, etc."},"page":{"default":1,"description":"Page number (25 results per page). Default 1.","type":"integer"}},"required":["rover"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_epic_imagery","description":"Get NASA EPIC full-disc Earth photographs from DSCOVR satellite at L1 point.\n\nReturns metadata and image URLs for full-color photographs of the\nsunlit side of Earth, taken from 1 million miles away. Available in\nnatural color and contrast-enhanced versions.\n\nExamples:\n    get_epic_imagery() -> most recent natural color images\n    get_epic_imagery(collection=\"enhanced\") -> enhanced images\n    get_epic_imagery(date=\"2024-01-15\") -> specific date","input_schema":{"additionalProperties":false,"properties":{"collection":{"default":"natural","description":"Image collection: 'natural' (color) or 'enhanced' (contrast-enhanced).","type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date (YYYY-MM-DD). Omit for most recent images."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_space_weather","description":"Search NASA DONKI space weather events.\n\nThe Space Weather Database Of Notifications, Knowledge, Information\n(DONKI) tracks solar and geomagnetic events that affect Earth.\n\nEvent types:\n- CME: Coronal Mass Ejections — solar plasma eruptions\n- GST: Geomagnetic Storms — disturbances in Earth's magnetosphere\n- FLR: Solar Flares — electromagnetic radiation bursts\n- IPS: Interplanetary Shocks — shock waves in solar wind\n- SEP: Solar Energetic Particles — high-energy particle events\n- MPC: Magnetopause Crossings\n- RBE: Radiation Belt Enhancements\n- HSS: High Speed Streams — fast solar wind streams\n\nExamples:\n    search_space_weather(\"CME\", \"2024-01-01\", \"2024-01-31\")\n    search_space_weather(\"FLR\", \"2024-03-01\", \"2024-03-15\")","input_schema":{"additionalProperties":false,"properties":{"event_type":{"description":"Event type: CME (Coronal Mass Ejection), GST (Geomagnetic Storm), FLR (Solar Flare), IPS (Interplanetary Shock), SEP (Solar Energetic Particle), MPC (Magnetopause Crossing), RBE (Radiation Belt Enhancement), HSS (High Speed Stream).","type":"string"},"start_date":{"description":"Start date (YYYY-MM-DD).","type":"string"},"end_date":{"description":"End date (YYYY-MM-DD).","type":"string"}},"required":["event_type","start_date","end_date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nav-jobs","name":"NAV Jobs (Norwegian Labour Market)","description":"Norwegian public job listings — search positions, employers, and occupations from NAV Arbeidsplassen.","category":"Economics","source":"NAV Arbeidsplassen (arbeidsplassen.nav.no)","endpoint":"/mcp/nav-jobs/","tools":[{"name":"search_nav_jobs","description":"Search Norwegian job listings from NAV Arbeidsplassen.\n\nNAV (Norwegian Labour and Welfare Administration) aggregates job listings\nfrom employers across Norway. Results include job title, employer, location,\napplication deadline, and occupation categories.\n\nArgs:\n    query: Free-text search (e.g. 'utvikler', 'sykepleier', 'ingeniør').\n    county: County name in uppercase (e.g. 'OSLO', 'ROGALAND').\n    municipal: Municipality name in uppercase (e.g. 'OSLO', 'BERGEN').\n    size: Results per request (25 or 100, default 25).\n    offset: Number of results to skip (default 0).\n\nReturns:\n    Object with jobs list, total count, size, and offset.","input_schema":{"additionalProperties":false,"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search query for Norwegian job listings (e.g. 'utvikler', 'sykepleier', 'ingeniør')."},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Norwegian county name in uppercase, e.g. 'OSLO', 'ROGALAND', 'VESTLAND', 'TRØNDELAG', 'NORDLAND', 'VESTFOLD OG TELEMARK'."},"municipal":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Norwegian municipality name in uppercase, e.g. 'OSLO', 'BERGEN', 'TRONDHEIM', 'STAVANGER', 'TROMSØ'. Added to the free-text query for approximate location filtering."},"size":{"default":25,"description":"Number of results — snapped to 25 or 100 (API constraint). Default 25.","type":"integer"},"offset":{"default":0,"description":"Number of results to skip for pagination (default 0).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_nav_job","description":"Get a single Norwegian job listing by its UUID from NAV Arbeidsplassen.\n\nReturns the job listing including title, employer, location,\napplication deadline, and occupation categories.\n\nArgs:\n    uuid: UUID of the job listing.\n\nReturns:\n    Job listing record, or {\"error\": \"not_found\"} if the UUID is unknown.","input_schema":{"additionalProperties":false,"properties":{"uuid":{"description":"UUID of the job listing to retrieve.","type":"string"}},"required":["uuid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/news-intelligence","name":"News Intelligence","description":"Unified news intelligence — search global media (GDELT, 150+ countries) and tech community (Hacker News) in parallel. Sentiment timelines, coverage volumes, and geographic breakdowns.","category":"Media","source":"GDELT 2.0 API, Hacker News (Algolia)","endpoint":"/mcp/news-intelligence/","tools":[{"name":"search_news","description":"Search news across GDELT (global media, 150+ countries) and Hacker News (tech community) in parallel.\n\nQueries both sources concurrently, normalizes articles into a unified format,\nand deduplicates by URL when the same story appears in both sources.\n\nExamples:\n    search_news(query=\"artificial intelligence\")\n    search_news(query=\"climate change\", timespan=\"7d\", source_country=\"US\")\n    search_news(query=\"Norway oil\", source_lang=\"Norwegian\")","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query for news articles.","type":"string"},"timespan":{"default":"24h","description":"GDELT time window (e.g. '24h', '7d', '3m').","type":"string"},"max_results":{"default":25,"description":"Max articles to return.","type":"integer"},"source_country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter GDELT by source country code."},"source_lang":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter GDELT by source language code."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trending_stories","description":"Get trending tech and startup stories from Hacker News.\n\nReturns stories sorted by engagement (points) from the specified time window.\nGreat for monitoring what the tech community is discussing right now.\n\nExamples:\n    get_trending_stories()\n    get_trending_stories(hours_ago=6, min_points=50)\n    get_trending_stories(hours_ago=168, min_points=100, max_results=10)","input_schema":{"additionalProperties":false,"properties":{"hours_ago":{"default":24,"description":"Lookback window in hours.","type":"integer"},"min_points":{"default":10,"description":"Minimum points threshold.","type":"integer"},"max_results":{"default":25,"description":"Max stories to return.","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_news_sentiment","description":"Get media sentiment timeline for a topic from global news sources (GDELT).\n\nReturns tone values (-100 to +100) over time. Negative values indicate\nnegative coverage, positive values indicate positive coverage.\n\nExamples:\n    get_news_sentiment(query=\"Tesla\")\n    get_news_sentiment(query=\"Norway economy\", timespan=\"3m\")\n    get_news_sentiment(query=\"OpenAI\", timespan=\"30d\", smooth=5)","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Topic to analyze sentiment for.","type":"string"},"timespan":{"default":"7d","description":"Time window (e.g. '24h', '7d', '3m').","type":"string"},"smooth":{"default":0,"description":"Smoothing factor for timeline.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_news_coverage","description":"Get media coverage volume timeline for a topic from global news sources (GDELT).\n\nReturns the volume of articles published over time, useful for detecting\nwhen a topic spikes in media attention.\n\nExamples:\n    get_news_coverage(query=\"Bitcoin\")\n    get_news_coverage(query=\"climate summit\", timespan=\"30d\")\n    get_news_coverage(query=\"election\", timespan=\"3m\", smooth=3)","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Topic to measure coverage for.","type":"string"},"timespan":{"default":"7d","description":"Time window (e.g. '24h', '7d', '3m').","type":"string"},"smooth":{"default":0,"description":"Smoothing factor for timeline.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_news_geography","description":"Get geographic breakdown of media coverage for a topic from GDELT.\n\nShows which countries' media are covering a topic and their relative volume.\nUseful for understanding the geographic spread of news coverage.\n\nExamples:\n    get_news_geography(query=\"Ukraine\")\n    get_news_geography(query=\"oil prices\", timespan=\"7d\")\n    get_news_geography(query=\"artificial intelligence\", timespan=\"3m\")","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Topic to analyze geographic coverage for.","type":"string"},"timespan":{"default":"24h","description":"Time window (e.g. '24h', '7d', '3m').","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_news_intelligence_sources","description":"List all news intelligence data sources, their coverage, and data types.\n\nShows which news databases and community platforms are queried\nduring news intelligence operations.\n\nExamples:\n    list_news_intelligence_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nhtsa","name":"NHTSA Vehicle Safety","description":"NHTSA vehicle safety data — VIN decoding, safety recalls, consumer complaints, and NCAP crash test ratings.","category":"Government","source":"NHTSA (US Department of Transportation)","endpoint":"/mcp/nhtsa/","tools":[{"name":"decode_vin","description":"Decode a VIN to get vehicle specifications — make, model, year, engine, drivetrain, and more.\n\nReturns decoded vehicle details from the NHTSA Vehicle Product Information Catalog (vPIC).\nSupports all standard 17-character VINs for vehicles sold in the US and Canada.","input_schema":{"additionalProperties":false,"properties":{"vin":{"description":"17-character Vehicle Identification Number (e.g. \"1HGCM82633A004352\").","type":"string"}},"required":["vin"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_recalls","description":"Get safety recalls for a specific vehicle make, model, and year.\n\nReturns recall campaigns with component affected, summary, consequence,\nremedy, and NHTSA campaign numbers. Covers all federally mandated recalls.","input_schema":{"additionalProperties":false,"properties":{"make":{"description":"Vehicle manufacturer (e.g. \"Honda\", \"Toyota\", \"Ford\").","type":"string"},"model":{"description":"Vehicle model name (e.g. \"Accord\", \"Camry\", \"F-150\").","type":"string"},"model_year":{"description":"4-digit model year (e.g. \"2020\").","type":"string"}},"required":["make","model","model_year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_complaints","description":"Get consumer complaints filed with NHTSA for a specific vehicle.\n\nReturns complaints with crash/fire indicators, injury/death counts,\naffected components, incident summaries, and dates. Useful for\nidentifying common issues with a vehicle.","input_schema":{"additionalProperties":false,"properties":{"make":{"description":"Vehicle manufacturer (e.g. \"Honda\", \"Toyota\", \"Ford\").","type":"string"},"model":{"description":"Vehicle model name (e.g. \"Accord\", \"Camry\", \"F-150\").","type":"string"},"model_year":{"description":"4-digit model year (e.g. \"2020\").","type":"string"},"limit":{"default":20,"description":"Max complaints to return (1-100). Default 20.","type":"integer"}},"required":["make","model","model_year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_safety_ratings","description":"Get NHTSA crash test safety ratings (NCAP 5-star system).\n\nReturns overall, frontal crash, side crash, and rollover ratings.\nAlso includes complaint, recall, and investigation counts per vehicle variant.","input_schema":{"additionalProperties":false,"properties":{"make":{"description":"Vehicle manufacturer (e.g. \"Honda\", \"Toyota\", \"Ford\").","type":"string"},"model":{"description":"Vehicle model name (e.g. \"Accord\", \"Camry\", \"F-150\").","type":"string"},"model_year":{"description":"4-digit model year (e.g. \"2020\").","type":"string"}},"required":["make","model","model_year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_makes","description":"List all vehicle makes with safety rating data for a given model year.\n\nUseful to discover which manufacturers and brands are available before\nquerying specific models. Returns make names and IDs.","input_schema":{"additionalProperties":false,"properties":{"model_year":{"description":"4-digit model year to list makes for (e.g. \"2024\").","type":"string"}},"required":["model_year"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nominatim","name":"Nominatim Geocoding","description":"Forward and reverse geocoding — address to coordinates and coordinates to address.","category":"Geography","source":"OpenStreetMap Nominatim","endpoint":"/mcp/nominatim/","tools":[{"name":"geocode_address","description":"Convert an address or place name to geographic coordinates.\n\nForward geocoding: searches OpenStreetMap for matching places and returns\ncoordinates, display name, and structured address components.\n\nArgs:\n    query: Address or place name (e.g. \"Buckingham Palace\", \"Karl Johans gate 22, Oslo\").\n    limit: Maximum results (1-20, default 5).","input_schema":{"additionalProperties":false,"properties":{"query":{"type":"string"},"limit":{"default":5,"type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"reverse_geocode","description":"Convert geographic coordinates to a human-readable address.\n\nReverse geocoding: looks up what's at the given latitude/longitude and\nreturns the full address with structured components.\n\nArgs:\n    lat: Latitude (-90 to 90, e.g. 59.9139 for Oslo).\n    lon: Longitude (-180 to 180, e.g. 10.7522 for Oslo).","input_schema":{"additionalProperties":false,"properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"required":["lat","lon"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/open-library","name":"Open Library","description":"Book metadata — search by title/author, work details, ISBNs, cover images.","category":"Reference","source":"Open Library (Internet Archive)","endpoint":"/mcp/open-library/","tools":[{"name":"search_books","description":"Search Open Library for books by title, author, or subject.\n\nReturns matching books with titles, authors, publication years, ISBNs,\nsubjects, and cover image IDs. Use the returned work key (e.g. /works/OL27448W)\nwith get_book() for full details.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — title, author, or subject (e.g. \"the lord of the rings\", \"tolkien\").","type":"string"},"limit":{"default":10,"description":"Max results to return (1-100). Default 10.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_book","description":"Get detailed information about a book/work by its Open Library work ID.\n\nReturns title, description, subjects, author references, cover IDs, and\ntimestamps. Work IDs end in \"W\" — find them via search_books().","input_schema":{"additionalProperties":false,"properties":{"olid":{"description":"Open Library work ID (e.g. \"OL27448W\" for The Lord of the Rings).","type":"string"}},"required":["olid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_authors","description":"Search Open Library for authors by name.\n\nReturns matching authors with names, birth/death dates, top works, and\nwork counts. Use the returned author key with get_author() for full bio.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Author name to search for (e.g. \"tolkien\", \"ursula le guin\").","type":"string"},"limit":{"default":10,"description":"Max results to return (1-100). Default 10.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_author","description":"Get detailed information about an author by Open Library author ID.\n\nReturns name, biography, birth/death dates, external links, and photo IDs.\nAuthor IDs end in \"A\" — find them via search_authors().","input_schema":{"additionalProperties":false,"properties":{"olid":{"description":"Open Library author ID (e.g. \"OL26320A\" for J.R.R. Tolkien).","type":"string"}},"required":["olid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_editions","description":"Get all editions of a work — different publishers, languages, formats.\n\nReturns edition details including publishers, publication dates, ISBNs,\npage counts, languages, and cover IDs. Useful for finding specific\ntranslations or print editions.","input_schema":{"additionalProperties":false,"properties":{"olid":{"description":"Open Library work ID (e.g. \"OL27448W\").","type":"string"},"limit":{"default":10,"description":"Max editions to return (1-100). Default 10.","type":"integer"}},"required":["olid"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_by_isbn","description":"Look up a specific book edition by its ISBN-10 or ISBN-13.\n\nReturns the edition's title, publishers, publication date, ISBNs, page\ncount, languages, covers, and linked work keys. Dashes in the ISBN are\nstripped automatically.","input_schema":{"additionalProperties":false,"properties":{"isbn":{"description":"ISBN-10 or ISBN-13 (e.g. \"9780618640157\" or \"0618640150\").","type":"string"}},"required":["isbn"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/streamflow","name":"USGS Streamflow","description":"US river and stream conditions — real-time discharge, gage height from USGS gauges.","category":"Environment","source":"USGS Water Services","endpoint":"/mcp/streamflow/","tools":[{"name":"search_stream_sites","description":"Search for USGS water monitoring sites.\n\nReturns active stream gauge stations with location data.\n\nArgs:\n    state_code: US state code (e.g. \"CO\" for Colorado, \"CA\" for California). Optional.\n    limit: Maximum results (1-100, default 20).","input_schema":{"additionalProperties":false,"properties":{"state_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"limit":{"default":20,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_stream_conditions","description":"Get current river/stream conditions at a USGS monitoring site.\n\nReturns real-time discharge (flow rate) and gage height readings.\n\nArgs:\n    site_code: USGS site code (e.g. \"09380000\" for Colorado River at Lees Ferry).","input_schema":{"additionalProperties":false,"properties":{"site_code":{"type":"string"}},"required":["site_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/space-weather","name":"Space Weather","description":"Space weather — solar flares, geomagnetic storms, ISS position tracking.","category":"Science","source":"NASA DONKI, Open Notify","endpoint":"/mcp/space-weather/","tools":[{"name":"get_solar_flares","description":"Get recent solar flare events from NASA.\n\nReturns flare class (A/B/C/M/X), timing, source location, and active region.\n\nArgs:\n    days: Number of days to look back (1-30, default 7).","input_schema":{"additionalProperties":false,"properties":{"days":{"default":7,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_geomagnetic_storms","description":"Get recent geomagnetic storm events from NASA.\n\nReturns storm timing and maximum Kp index (planetary K-index, 0-9 scale).\nKp >= 5 indicates a geomagnetic storm; Kp >= 7 is severe.\n\nArgs:\n    days: Number of days to look back (1-60, default 30).","input_schema":{"additionalProperties":false,"properties":{"days":{"default":30,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_iss_position","description":"Get the current position of the International Space Station.\n\nReturns latitude, longitude, and timestamp.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/email-validation","name":"Email Validation","description":"Email address validation — format checking, MX record verification, disposable and role address detection.","category":"Utilities","source":"Cloudflare DNS, curated lists","endpoint":"/mcp/email-validation/","tools":[{"name":"validate_email","description":"Validate an email address — checks format, MX records, disposable/role detection.\n\nReturns whether the format is valid, if the domain has MX records (can receive mail),\nwhether it's a known disposable email provider, and whether it's a role address\n(e.g. admin@, support@).\n\nArgs:\n    email: Email address to validate (e.g. \"user@example.com\").","input_schema":{"additionalProperties":false,"properties":{"email":{"type":"string"}},"required":["email"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"validate_email_batch","description":"Validate multiple email addresses at once (max 50).\n\nArgs:\n    emails: Comma-separated email addresses (e.g. \"a@example.com,b@test.org\").","input_schema":{"additionalProperties":false,"properties":{"emails":{"type":"string"}},"required":["emails"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/dns-lookup","name":"DNS Lookup","description":"DNS record lookup — A, AAAA, MX, NS, TXT, CNAME, SOA, SRV, CAA, and reverse DNS.","category":"Utilities","source":"Cloudflare DNS-over-HTTPS","endpoint":"/mcp/dns-lookup/","tools":[{"name":"dns_lookup","description":"Look up DNS records for a domain.\n\nReturns the DNS records of the specified type. Supported types:\nA, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR.\n\nArgs:\n    domain: Domain name to query (e.g. \"example.com\").\n    record_type: DNS record type (default \"A\"). One of: A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR.","input_schema":{"additionalProperties":false,"properties":{"domain":{"type":"string"},"record_type":{"default":"A","type":"string"}},"required":["domain"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"dns_mx_lookup","description":"Look up MX (mail exchange) records for a domain.\n\nReturns the mail servers responsible for receiving email for the domain,\nsorted by priority (lower = preferred).\n\nArgs:\n    domain: Domain name to query (e.g. \"gmail.com\").","input_schema":{"additionalProperties":false,"properties":{"domain":{"type":"string"}},"required":["domain"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"reverse_dns","description":"Perform reverse DNS lookup — find hostnames associated with an IP address.\n\nArgs:\n    ip: IPv4 or IPv6 address (e.g. \"8.8.8.8\" or \"2001:4860:4860::8888\").","input_schema":{"additionalProperties":false,"properties":{"ip":{"type":"string"}},"required":["ip"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/whois-lookup","name":"WHOIS Lookup","description":"Domain WHOIS lookup — registrar, registration/expiration dates, nameservers, DNSSEC status.","category":"Utilities","source":"RDAP (Registration Data Access Protocol)","endpoint":"/mcp/whois-lookup/","tools":[{"name":"whois_lookup","description":"Look up domain registration (WHOIS) information.\n\nReturns registrar, registration/expiration dates, nameservers, status,\nDNSSEC, and registrant contact (when available). Uses RDAP, the modern\nsuccessor to traditional WHOIS.\n\nArgs:\n    domain: Domain name to look up (e.g. \"example.com\"). Can include www. or https:// prefix.","input_schema":{"additionalProperties":false,"properties":{"domain":{"type":"string"}},"required":["domain"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/bolagsverket","name":"Bolagsverket","description":"Swedish company registry — organisation details, legal form, industry codes, and status.","category":"Legal","source":"Bolagsverket (Swedish Companies Registration Office)","endpoint":"/mcp/bolagsverket/","tools":[{"name":"lookup_bolagsverket_company","description":"Look up a Swedish company by its organisation number in Bolagsverket.\n\nReturns company record including name, organisation form, legal form,\nregistration date, business description, SNI industry codes, postal address,\nactive/deregistration status, and any ongoing proceedings (bankruptcy,\nliquidation).\n\nData sourced from Bolagsverket (Swedish Companies Registration Office) and\nSCB (Statistics Sweden) via the VärdefullaDatamängder API.\n\nArgs:\n    org_number: Swedish organisation number — 10 digits.\n\nReturns:\n    Company record, or {\"error\": \"not_found\"} if the org number is unknown.","input_schema":{"additionalProperties":false,"properties":{"org_number":{"description":"Swedish organisation number — 10 digits, with or without hyphen (e.g. \"5564866993\", \"556486-6993\").","type":"string"}},"required":["org_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_bolagsverket_companies","description":"Search Swedish companies by name in the Bolagsverket bulk-data cache.\n\nReturns matching companies from the locally cached Bolagsverket and SCB\nbulk files. Searches company name and alternate names (case-insensitive).\n\nArgs:\n    name: Company name or partial name to search for.\n    limit: Maximum results (default 20, max 100).\n\nReturns:\n    Object with count and results list.","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Company name to search for (at least 2 characters).","type":"string"},"limit":{"default":20,"description":"Maximum number of results to return (1–100).","type":"integer"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_bolagsverket_changes","description":"Get recent changes to Swedish company data from Bolagsverket.\n\nReturns field-level diffs (before/after values) for companies whose\ndata changed between ETL runs. Changes are detected by comparing\nweekly bulk-file snapshots from Bolagsverket and SCB.\n\nTracks: name changes, address changes, status changes (deregistration,\nliquidation), industry code (SNI) changes, and legal form changes.\n\nArgs:\n    since: ISO 8601 timestamp — return changes captured after this time.\n    limit: Maximum number of changes to return (1–100, default 50).\n\nReturns:\n    Object with count and list of change records, each containing\n    entity_id (org number), changed_at timestamp, and a list of\n    field changes with before/after values.","input_schema":{"additionalProperties":false,"properties":{"since":{"description":"ISO 8601 timestamp — return changes captured after this time (e.g. \"2026-04-01T00:00:00Z\").","type":"string"},"limit":{"default":50,"description":"Maximum number of changes to return (1–100, default 50).","maximum":100,"minimum":1,"type":"integer"}},"required":["since"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/bolagsverket-arsredovisning","name":"Bolagsverket Annual Reports","description":"Swedish annual reports — digitally filed årsredovisningar from Bolagsverket.","category":"Legal","source":"Bolagsverket (Swedish Companies Registration Office)","endpoint":"/mcp/bolagsverket-arsredovisning/","tools":[{"name":"list_bolagsverket_annual_reports","description":"List annual reports (årsredovisningar) filed with Bolagsverket for a Swedish company.\n\nReturns metadata for each digitally submitted annual report, including\ndocument ID, file format, reporting period end date, and registration date.\n\nArgs:\n    org_number: Swedish organisation number — 10 digits.\n\nReturns:\n    List of annual report metadata, or empty list if none found.","input_schema":{"additionalProperties":false,"properties":{"org_number":{"description":"Swedish organisation number — 10 digits, with or without hyphen (e.g. \"5564866993\", \"556486-6993\").","type":"string"}},"required":["org_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_bolagsverket_annual_report_info","description":"Get download information for a specific Bolagsverket annual report.\n\nThe annual report is a ZIP file containing the iXBRL filing.\n\nArgs:\n    document_id: Document ID obtained from list_bolagsverket_annual_reports.\n\nReturns:\n    Download info including URL and format, or {\"error\": \"not_found\"}.","input_schema":{"additionalProperties":false,"properties":{"document_id":{"description":"Document ID from the list_bolagsverket_annual_reports result.","type":"string"}},"required":["document_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/prh","name":"PRH (Finnish Company Registry)","description":"Finnish company registry — business details, legal form, industry codes, financial statement periods from PRH open data.","category":"Legal","source":"PRH (Patentti- ja rekisterihallitus / Finnish Patent and Registration Office)","endpoint":"/mcp/prh/","tools":[{"name":"lookup_prh_company","description":"Look up a Finnish company by its business ID (Y-tunnus).\n\nReturns company details including name, legal form, industry, registration\ndate, trade register status, website, and addresses.\n\nArgs:\n    business_id: Finnish business ID (Y-tunnus) in format \"1234567-8\".\n\nReturns:\n    Company record, or {\"error\": \"not_found\"} if the business ID is unknown.","input_schema":{"additionalProperties":false,"properties":{"business_id":{"description":"Finnish business ID (Y-tunnus) — format \"1234567-8\" (e.g. \"0112038-9\" for Nokia).","type":"string"}},"required":["business_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_prh_companies","description":"Search the Finnish Trade Register by name, location, company form, or industry.\n\nAt least one search parameter must be provided. Returns matching companies\nfrom PRH (Patentti- ja rekisterihallitus) open data.\n\nArgs:\n    name: Company name or partial name to search for.\n    location: Town or city in Finland.\n    company_form: Company form code (OY, OYJ, KY, OK, AY, etc.).\n    business_line: TOL 2008 industry code or description text.\n    max_results: Maximum number of results to return (1-50, default 10).\n\nReturns:\n    Object with count, total available results, and list of company records.","input_schema":{"additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Company name or partial name to search for."},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Town or city (e.g. 'Helsinki', 'Espoo', 'Tampere')."},"company_form":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Company form code: 'OY' (private limited), 'OYJ' (public limited), 'KY' (limited partnership), 'OK' (cooperative), 'AY' (general partnership)."},"business_line":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"TOL 2008 industry code or text (e.g. '62010' for software development)."},"max_results":{"default":10,"description":"Maximum number of results to return (1-50, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_prh_financial_periods","description":"List available digital financial statement periods for a Finnish company.\n\nReturns the filing dates for which PRH has received digital financial\nstatements (XBRL format). Use this to check what financial data is\navailable before requesting specific statements.\n\nArgs:\n    business_id: Finnish business ID (Y-tunnus).\n\nReturns:\n    Object with count and list of available financial periods.","input_schema":{"additionalProperties":false,"properties":{"business_id":{"description":"Finnish business ID (Y-tunnus) — format \"1234567-8\".","type":"string"}},"required":["business_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/cvr","name":"CVR (Danish Company Registry)","description":"Danish company registry — CVR lookup, name search, production units, owners, industry codes from Det Centrale Virksomhedsregister.","category":"Legal","source":"CVR via cvrapi.dk (free public API, Det Centrale Virksomhedsregister)","endpoint":"/mcp/cvr/","tools":[{"name":"lookup_cvr_company","description":"Look up a Danish company by its CVR number.\n\nReturns company details including name, address, company type, industry,\nemployees, owners, and production units.\n\nArgs:\n    cvr_number: Danish CVR number (8 digits).\n\nReturns:\n    Company record, or {\"error\": \"not_found\"} if the CVR number is unknown.","input_schema":{"additionalProperties":false,"properties":{"cvr_number":{"description":"Danish CVR number (8 digits, e.g. 10150817 for Carlsberg).","type":"integer"}},"required":["cvr_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_cvr_company","description":"Search for a Danish company by name in the Central Business Register (CVR).\n\nReturns the best-matching company with full details including address,\ncompany type, industry, owners, and production units.\n\nArgs:\n    name: Company name or partial name to search for.\n\nReturns:\n    Best-matching company record, or {\"error\": \"not_found\"} if no match.","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Company name to search for (e.g. 'Novo Nordisk', 'LEGO').","type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"lookup_cvr_production_unit","description":"Look up a Danish production unit by its P-nummer.\n\nProduction units are individual business locations registered under a\nparent company in the Danish CVR.\n\nArgs:\n    pno: Production unit number (P-nummer).\n\nReturns:\n    Company record for the parent company, or {\"error\": \"not_found\"}.","input_schema":{"additionalProperties":false,"properties":{"pno":{"description":"Danish production unit number (P-nummer, 10 digits).","type":"integer"}},"required":["pno"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/riksdagen","name":"Riksdagen (Swedish Parliament)","description":"Swedish Parliament data — document search, committee reports, bills, motions, vote records, and member profiles.","category":"Government","source":"Riksdagen (data.riksdagen.se)","endpoint":"/mcp/riksdagen/","tools":[{"name":"search_documents","description":"Search Swedish parliamentary documents — bills, motions, committee reports, and more.\n\nQuery the Riksdagen (Swedish Parliament) document archive with full-text search\nand structured filters. The archive contains 600K+ documents dating back decades.\n\nReturns:\n    Dict with 'count', 'total', 'page', 'pages', and 'documents' list.","input_schema":{"additionalProperties":false,"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search term"},"doc_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Document type code: 'prop' (proposition/bill), 'mot' (motion), 'bet' (committee report), 'skr' (government communication), 'sou' (inquiry report)"},"committee":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Committee code: 'FiU' (Finance), 'AU' (Labour), 'JuU' (Justice), 'SoU' (Social), 'UU' (Foreign Affairs), etc."},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Parliament session, e.g. '2025/26'. Format: YYYY/YY"},"page":{"default":1,"description":"Page number (default 1)","minimum":1,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_document","description":"Get full details for a specific Swedish parliamentary document.\n\nRetrieves the complete document including metadata and (where available) HTML content.\n\nReturns:\n    Document detail dict, or error if not found.","input_schema":{"additionalProperties":false,"properties":{"dok_id":{"description":"Document ID from search results (e.g. 'HD01FiU1')","type":"string"}},"required":["dok_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_votes","description":"List parliamentary votes in the Swedish Riksdagen.\n\nEach record represents one member's vote on one ballot point.\nFilter by session and/or document to narrow results.\n\nReturns:\n    Dict with 'count' and 'votes' list containing individual member votes.","input_schema":{"additionalProperties":false,"properties":{"session":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Parliament session, e.g. '2025/26'. Format: YYYY/YY"},"doc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter votes for a specific document designation (e.g. 'FiU1')"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_vote_detail","description":"Get full voting detail with individual member votes for a specific ballot.\n\nReturns the document context and every member's vote (Ja/Nej/Avstår/Frånvarande).\n\nReturns:\n    Dict with document info and 'votes' list, or error if not found.","input_schema":{"additionalProperties":false,"properties":{"votering_id":{"description":"Vote ID from vote list (e.g. '2025/26:FiU1:1')","type":"string"}},"required":["votering_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_members","description":"Search members of the Swedish Parliament (Riksdagen).\n\nReturns current members by default. Use status='samtliga' to include\nall historical members (2700+ total).\n\nReturns:\n    Dict with 'count', 'total', and 'members' list with party, constituency, assignments.","input_schema":{"additionalProperties":false,"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Member status: omit for current members, 'samtliga' for all historical members"},"party":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Party code: 'S' (Social Democrats), 'M' (Moderates), 'SD' (Sweden Democrats), 'C' (Centre), 'V' (Left), 'KD' (Christian Democrats), 'L' (Liberals), 'MP' (Green)"},"limit":{"default":50,"description":"Max results to return (default 50)","maximum":500,"minimum":1,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_member","description":"Get full details for a specific member of the Swedish Parliament.\n\nReturns personal information, party affiliation, constituency,\nand complete assignment history (committee roles, etc.).\n\nReturns:\n    Member detail dict, or error if not found.","input_schema":{"additionalProperties":false,"properties":{"person_id":{"description":"Member source ID from search results","type":"string"}},"required":["person_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/retsinformation","name":"Retsinformation (Danish Legislation)","description":"Danish legislation — daily harvest of changed laws, regulations, and circulars with ELI document retrieval.","category":"Legal","source":"Retsinformation (api.retsinformation.dk)","endpoint":"/mcp/retsinformation/","tools":[{"name":"harvest_changes","description":"Get recently changed Danish legislation documents from Retsinformation.\n\nReturns documents that were added, modified, or removed in the last 24 hours\n(or for a specific date within the last 10 days). Includes laws (LOV),\nregulations (BEK), circulars (CIR), and other official documents.\n\nEach document includes an ELI URL for retrieving the full text.\n\nReturns:\n    Dict with 'count' and 'documents' list. Each has accession_number,\n    document_type, change_date, reason_for_change, and eli_url.","input_schema":{"additionalProperties":false,"properties":{"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date (YYYY-MM-DD, within last 10 days). Omit for today's changes."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_document","description":"Get full details of a Danish legal document by its accession number.\n\nRetrieves the document XML via ELI (European Legislation Identifier) URI\nand parses key metadata: title, dates, status, subjects, and body text.\n\nDocument types include:\n- LOV: Laws (love)\n- BEK: Regulations (bekendtgørelser)\n- CIR: Circulars (cirkulærer)\n- VEJ: Guidelines (vejledninger)\n\nReturns:\n    Document detail dict with title, dates, status, subjects, and body_text excerpt.","input_schema":{"additionalProperties":false,"properties":{"accession_number":{"description":"Accession number from harvest results (e.g. 'B20260037005')","type":"string"}},"required":["accession_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_by_type","description":"Search recent Danish legislation changes filtered by document type.\n\nFilters today's (or a specific date's) harvest feed by document type.\nUseful for monitoring specific categories of legal changes.\n\nReturns:\n    Dict with 'count' and 'documents' list filtered by type.","input_schema":{"additionalProperties":false,"properties":{"doc_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Document type filter: 'LOV' (law), 'BEK' (regulation), 'CIR' (circular), 'VEJ' (guideline)"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date (YYYY-MM-DD, within last 10 days). Omit for today."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/finlex","name":"Finlex (Finnish Legislation)","description":"Finnish legislation — statutes, consolidated laws, and government proposals from Finlex open data.","category":"Legal","source":"Finlex (opendata.finlex.fi)","endpoint":"/mcp/finlex/","tools":[{"name":"list_statutes","description":"List Finnish statutes from the Statute Book of Finland (Suomen Saadoskokoelma).\n\nBrowse recently published statutes or filter by year. Each statute is identified\nby year and number (e.g. 2026/1). Use get_statute to retrieve full text.\n\nReturns:\n    Dict with 'count', 'page', and 'statutes' list.","input_schema":{"additionalProperties":false,"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by year (e.g. 2025)"},"language":{"default":"fin","description":"Language: 'fin' (Finnish, default), 'swe' (Swedish)","type":"string"},"page":{"default":1,"description":"Page number (default 1)","minimum":1,"type":"integer"},"limit":{"default":20,"description":"Results per page (default 20, max 50)","maximum":50,"minimum":1,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_statute","description":"Retrieve a specific Finnish statute with full text and article structure.\n\nReturns the statute's metadata (title, dates, ELI identifier) and its articles\nwith section numbers, headings, and content parsed from Akoma Ntoso XML.\n\nReturns:\n    Statute detail dict, or error if not found.","input_schema":{"additionalProperties":false,"properties":{"year":{"description":"Year of the statute (e.g. 2025)","type":"integer"},"number":{"description":"Statute number within the year (e.g. '1', '118')","type":"string"},"language":{"default":"fin","description":"Language: 'fin' (Finnish, default), 'swe' (Swedish)","type":"string"}},"required":["year","number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_government_proposals","description":"List Finnish government proposals (hallituksen esitykset / HE).\n\nGovernment proposals are bills submitted by the Finnish government to Parliament.\nThey contain the reasoning and draft legislation for proposed changes.\n\nReturns:\n    Dict with 'count', 'page', and 'proposals' list.","input_schema":{"additionalProperties":false,"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by year (e.g. 2025)"},"language":{"default":"fin","description":"Language: 'fin' (Finnish, default), 'swe' (Swedish)","type":"string"},"page":{"default":1,"description":"Page number (default 1)","minimum":1,"type":"integer"},"limit":{"default":20,"description":"Results per page (default 20, max 50)","maximum":50,"minimum":1,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_government_proposal","description":"Retrieve a specific Finnish government proposal with metadata and content preview.\n\nReturns the proposal's metadata (title, dates, ELI identifier) and a preview\nof the content (first 10 paragraphs).\n\nReturns:\n    Proposal detail dict, or error if not found.","input_schema":{"additionalProperties":false,"properties":{"year":{"description":"Year of the proposal (e.g. 2025)","type":"integer"},"number":{"description":"Proposal number within the year (e.g. '8')","type":"string"},"language":{"default":"fin","description":"Language: 'fin' (Finnish, default), 'swe' (Swedish)","type":"string"}},"required":["year","number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_consolidated_statutes","description":"List consolidated (updated/amended) Finnish statutes.\n\nConsolidated statutes reflect the current version of the law with all amendments\napplied. Use this instead of list_statutes when you need the up-to-date text.\n\nReturns:\n    Dict with 'count', 'page', and 'statutes' list.","input_schema":{"additionalProperties":false,"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by year (e.g. 2025)"},"language":{"default":"fin","description":"Language: 'fin' (Finnish, default), 'swe' (Swedish)","type":"string"},"page":{"default":1,"description":"Page number (default 1)","minimum":1,"type":"integer"},"limit":{"default":20,"description":"Results per page (default 20, max 50)","maximum":50,"minimum":1,"type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_consolidated_statute","description":"Retrieve a specific consolidated Finnish statute with full amended text.\n\nReturns the current version of the statute with all amendments applied,\nincluding metadata and article structure.\n\nReturns:\n    Statute detail dict, or error if not found.","input_schema":{"additionalProperties":false,"properties":{"year":{"description":"Year of the statute (e.g. 2024)","type":"integer"},"number":{"description":"Statute number within the year (e.g. '2')","type":"string"},"language":{"default":"fin","description":"Language: 'fin' (Finnish, default), 'swe' (Swedish)","type":"string"}},"required":["year","number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/language-detection","name":"Language Detection","description":"Detect the language of text with confidence scores — supports 55 languages including CJK.","category":"Utilities","source":"langdetect (open source, port of Google's language-detection)","endpoint":"/mcp/language-detection/","tools":[{"name":"detect_language","description":"Detect the language of a text passage with confidence scores.\n\nReturns the most likely language, its confidence score, and all candidate\nlanguages ranked by probability.\n\nArgs:\n    text: The text to analyze. Works best with at least 20 characters.","input_schema":{"additionalProperties":false,"properties":{"text":{"type":"string"}},"required":["text"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_supported_languages","description":"List all languages that can be detected.\n\nReturns language codes and their human-readable names.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/jokes","name":"Jokes","description":"Curated joke database with 120 jokes across 8 categories — get random jokes, search, or browse by category.","category":"Entertainment","source":"In-memory curated collection","endpoint":"/mcp/jokes/","tools":[{"name":"get_random_joke","description":"Get a random joke.\n\nReturns a joke with setup and punchline. For single-type jokes, the full joke is in the setup field.\nOptionally filter by category — use list_joke_categories() to see valid categories.","input_schema":{"additionalProperties":false,"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category (e.g. Programming, Dad Jokes, Science, Math). Omit for any category."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_random_jokes","description":"Get multiple random jokes.\n\nReturns a list of unique random jokes. Optionally filter by category.","input_schema":{"additionalProperties":false,"properties":{"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Number of jokes to return (1-20, default 5)."},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category. Omit for any category."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_jokes","description":"Search for jokes by keyword.\n\nSearches across setup text, punchlines, and categories. Case-insensitive.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches joke text, punchline, or category.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_joke_categories","description":"List all available joke categories.\n\nReturns the category names that can be used to filter random jokes.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/dog-breeds","name":"Dog Breeds","description":"Curated dog breed database — search 50+ breeds by group, size, origin, or keyword, with detailed characteristics.","category":"Reference","source":"In-memory curated collection","endpoint":"/mcp/dog-breeds/","tools":[{"name":"get_dog_breed","description":"Get detailed information about a specific dog breed.\n\nReturns breed characteristics including size, weight, temperament, coat type, and suitability for families.","input_schema":{"additionalProperties":false,"properties":{"breed_id":{"description":"Slug ID of the breed (e.g. 'labrador-retriever', 'german-shepherd').","type":"string"}},"required":["breed_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_dog_breeds","description":"List dog breeds with optional filters.\n\nFilters can be combined — for example, list all large breeds from Germany.","input_schema":{"additionalProperties":false,"properties":{"breed_group":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by breed group (e.g. Sporting, Herding, Working, Toy, Terrier, Hound, Non-Sporting)."},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by size (Small, Medium, Large, Giant)."},"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by country of origin (e.g. Germany, Japan, United Kingdom)."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_dog_breeds","description":"Search dog breeds by keyword.\n\nSearches across breed names, temperament traits, and descriptions. Case-insensitive.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches breed name, temperament traits, or description.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_random_dog_breed","description":"Get a random dog breed from the database.\n\nReturns full details for a randomly selected breed — useful for discovery or games.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_breed_groups","description":"List all available breed group names.\n\nReturns the group names that can be used to filter breeds (e.g. Sporting, Herding, Working).","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/cat-breeds","name":"Cat Breeds","description":"Curated cat breed database — 50+ breeds with temperament, coat type, size, origin, and care characteristics.","category":"Reference","source":"In-memory curated collection","endpoint":"/mcp/cat-breeds/","tools":[{"name":"get_cat_breed","description":"Get detailed information about a specific cat breed by its ID.\n\nReturns breed characteristics including size, weight, temperament, coat type, and compatibility info.","input_schema":{"additionalProperties":false,"properties":{"breed_id":{"description":"Breed ID slug (e.g. 'persian', 'maine-coon', 'russian-blue').","type":"string"}},"required":["breed_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_cat_breeds","description":"List cat breeds with optional filters.\n\nFilters can be combined (AND logic). Returns all breeds if no filters are specified.","input_schema":{"additionalProperties":false,"properties":{"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by country of origin (e.g. 'United States', 'Thailand'). Omit for all origins."},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by size: Small, Medium, or Large. Omit for all sizes."},"coat_length":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by coat length: Short, Medium, Long, or Hairless. Omit for all types."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_cat_breeds","description":"Search for cat breeds by keyword.\n\nSearches across breed name, origin, temperament traits, coat length, and description. Case-insensitive.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches breed name, origin, temperament, coat type, or description.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_random_cat_breed","description":"Get a random cat breed.\n\nReturns full details for a randomly selected breed from the database.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/random-facts","name":"Random Facts","description":"Curated database of 150+ interesting facts across 12 categories — science, history, nature, space, and more.","category":"Reference","source":"In-memory curated collection","endpoint":"/mcp/random-facts/","tools":[{"name":"get_random_fact","description":"Get a random interesting fact.\n\nReturns a fact with its category and source attribution. Optionally filter by category.","input_schema":{"additionalProperties":false,"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category (e.g. Science, History, Space). Omit for any category."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_random_facts","description":"Get multiple random facts at once.\n\nReturns a list of facts, optionally filtered by category. Facts are sampled without repeats.","input_schema":{"additionalProperties":false,"properties":{"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Number of random facts to return (default: 5, max: 50)."},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category (e.g. Science, History, Space). Omit for any category."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_facts","description":"Search for facts by keyword.\n\nSearches across fact text, categories, and source attributions. Case-insensitive.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches fact text, category, or source.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_fact_categories","description":"List all available fact categories.\n\nReturns the category names that can be used to filter random facts.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/random-words","name":"Random Words","description":"Random English word generator — 120 curated words across 4 types (noun, verb, adjective, adverb) with length filtering.","category":"Reference","source":"In-memory curated collection","endpoint":"/mcp/random-words/","tools":[{"name":"get_random_word","description":"Get a random English word.\n\nReturns a word with its type and length. Optionally filter by word type and length range.","input_schema":{"additionalProperties":false,"properties":{"word_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by word type (noun, verb, adjective, adverb). Omit for any type."},"min_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Minimum word length (inclusive)."},"max_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum word length (inclusive)."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_random_words","description":"Get multiple random English words at once.\n\nReturns a list of words, optionally filtered by type. Words are sampled without repeats.","input_schema":{"additionalProperties":false,"properties":{"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Number of random words to return (default: 5, max: 50)."},"word_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by word type (noun, verb, adjective, adverb). Omit for any type."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_words","description":"Search for words by substring.\n\nSearches across word text and word types. Case-insensitive.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search substring — matches word text or word type.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_word_types","description":"List all available word types.\n\nReturns the type names that can be used to filter random words (noun, verb, adjective, adverb).","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/cocktails","name":"Cocktail Recipes","description":"Curated cocktail recipe database — 60+ recipes with ingredients, instructions, and metadata. Search by name, ingredient, spirit, or category.","category":"Food & Drink","source":"In-memory curated collection","endpoint":"/mcp/cocktails/","tools":[{"name":"get_cocktail","description":"Get a specific cocktail recipe by its ID.\n\nReturns full recipe including ingredients, instructions, and metadata.","input_schema":{"additionalProperties":false,"properties":{"cocktail_id":{"description":"Cocktail slug ID (e.g. 'margarita', 'old-fashioned').","type":"string"}},"required":["cocktail_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_cocktails","description":"List cocktail recipes with optional filters.\n\nReturns matching cocktails filtered by category, base spirit, or alcoholic status.","input_schema":{"additionalProperties":false,"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category (e.g. Classic, Tiki, Sour, Highball, Martini, Shot, Mocktail)."},"base_spirit":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by base spirit (e.g. Vodka, Gin, Rum, Tequila, Whiskey)."},"alcoholic":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Filter by alcoholic (true) or non-alcoholic (false)."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_cocktails","description":"Search for cocktail recipes by keyword.\n\nSearches across cocktail names, ingredient names, and descriptions. Case-insensitive.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches cocktail name, ingredients, or description.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_random_cocktail","description":"Get a random cocktail recipe.\n\nReturns a random cocktail, optionally filtered by alcoholic or non-alcoholic.","input_schema":{"additionalProperties":false,"properties":{"alcoholic":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Filter by alcoholic (true) or non-alcoholic (false). Omit for any."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_cocktails_by_ingredient","description":"Find cocktails containing a specific ingredient.\n\nPartial, case-insensitive match on ingredient names.","input_schema":{"additionalProperties":false,"properties":{"ingredient":{"description":"Ingredient name to search for (e.g. 'lime', 'bourbon', 'mint').","type":"string"}},"required":["ingredient"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_base_spirits","description":"List all base spirits in the cocktail database.\n\nReturns the spirit names that can be used to filter cocktails.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/profanity-filter","name":"Profanity Filter","description":"Text content moderation — check text for profanity, censor it, and return clean versions using an in-memory word list.","category":"Utilities","source":"In-memory word list","endpoint":"/mcp/profanity-filter/","tools":[{"name":"check_text","description":"Check text for profanity.\n\nReturns whether the text contains profanity, a list of flagged words,\nthe total word count, and the number of distinct flagged words.","input_schema":{"additionalProperties":false,"properties":{"text":{"description":"Text to check for profanity.","type":"string"}},"required":["text"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"censor_text","description":"Censor profanity in text by replacing flagged words with a replacement string.\n\nReturns the censored text, original length, and the number of words censored.","input_schema":{"additionalProperties":false,"properties":{"text":{"description":"Text to censor.","type":"string"},"replacement":{"default":"***","description":"Replacement string for profane words.","type":"string"}},"required":["text"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_word_count","description":"Get the number of words in the profanity dictionary.\n\nReturns the size of the built-in profanity word list used for filtering.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/qr-code","name":"QR Code","description":"Generate QR code image URLs via goqr.me — encode text, URLs, or data with customizable size, format, colors, and error correction.","category":"Utilities","source":"goqr.me (api.qrserver.com)","endpoint":"/mcp/qr-code/","tools":[{"name":"generate_qr_code","description":"Generate a QR code URL for the given text or URL.\n\nReturns a URL that renders a QR code image. The URL can be used directly in an <img> tag\nor opened in a browser. No image data is returned — only the URL.","input_schema":{"additionalProperties":false,"properties":{"data":{"description":"The text or URL to encode in the QR code.","type":"string"},"size":{"default":200,"description":"Image size in pixels (10-1000).","maximum":1000,"minimum":10,"type":"integer"},"format":{"default":"png","description":"Image format: png, gif, jpeg, svg, eps.","type":"string"},"error_correction":{"default":"M","description":"Error correction level: L, M, Q, H.","type":"string"},"color":{"default":"000000","description":"QR code color as hex (e.g. 000000 for black).","type":"string"},"bg_color":{"default":"ffffff","description":"Background color as hex (e.g. ffffff for white).","type":"string"}},"required":["data"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_qr_formats","description":"List supported QR code image formats.\n\nReturns the available output formats for QR code generation.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_qr_error_correction_levels","description":"List available QR code error correction levels.\n\nReturns the error correction levels (L/M/Q/H) with descriptions of their recovery capability.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/horoscopes","name":"Horoscopes","description":"Zodiac sign information and deterministic daily horoscope readings — sign lookup, birthday-to-sign, compatibility, and daily fortunes.","category":"Entertainment","source":"In-memory curated collection","endpoint":"/mcp/horoscopes/","tools":[{"name":"list_zodiac_signs","description":"List all 12 zodiac signs with their details.\n\nReturns every sign's name, symbol, element, quality, ruling planet, date range,\npersonality traits, and compatible signs.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_zodiac_sign","description":"Get detailed information about a specific zodiac sign.\n\nReturns the sign's symbol, element, quality, ruling planet, date range,\npersonality traits, and compatible signs.","input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Zodiac sign name (e.g. Aries, Taurus, Gemini). Case-insensitive.","type":"string"}},"required":["name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_daily_horoscope","description":"Get the daily horoscope for a zodiac sign.\n\nReturns a horoscope reading, lucky number, lucky color, and mood for the day.\nThe reading is deterministic — the same sign and date always produce the same result.","input_schema":{"additionalProperties":false,"properties":{"sign":{"description":"Zodiac sign name (e.g. Leo, Scorpio). Case-insensitive.","type":"string"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date in YYYY-MM-DD format. Defaults to today."}},"required":["sign"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_zodiac_sign_by_birthday","description":"Determine which zodiac sign a person is based on their birthday.\n\nTakes a month and day and returns the corresponding zodiac sign with full details.","input_schema":{"additionalProperties":false,"properties":{"month":{"description":"Birth month (1-12).","type":"integer"},"day":{"description":"Birth day (1-31).","type":"integer"}},"required":["month","day"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"check_zodiac_compatibility","description":"Check astrological compatibility between two zodiac signs.\n\nReturns a compatibility score (0-100) and description based on element pairings\nand traditional astrological compatibility.","input_schema":{"additionalProperties":false,"properties":{"sign1":{"description":"First zodiac sign name. Case-insensitive.","type":"string"},"sign2":{"description":"Second zodiac sign name. Case-insensitive.","type":"string"}},"required":["sign1","sign2"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_astrological_elements","description":"List the four classical elements used in astrology.\n\nThe elements are Fire, Earth, Air, and Water. Each zodiac sign belongs to one element.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/riddles","name":"Riddles & Puzzles","description":"Curated riddle and brain teaser database with 80 riddles across 5 categories (logic, wordplay, math, lateral-thinking, classic) — get random riddles, search, and reveal answers.","category":"Entertainment","source":"In-memory curated collection","endpoint":"/mcp/riddles/","tools":[{"name":"get_random_riddle","description":"Get a random riddle WITHOUT the answer.\n\nReturns a brain teaser with question and hint. Use get_riddle_answer() with the riddle ID to reveal the answer.\nOptionally filter by category and/or difficulty.","input_schema":{"additionalProperties":false,"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by category (logic, wordplay, math, lateral-thinking, classic). Omit for any."},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by difficulty (easy, medium, hard). Omit for any."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_riddle_answer","description":"Reveal the answer to a specific riddle.\n\nTakes a riddle ID (from get_random_riddle or search_riddles) and returns the full riddle including the answer.","input_schema":{"additionalProperties":false,"properties":{"riddle_id":{"description":"The ID of the riddle to reveal the answer for.","type":"integer"}},"required":["riddle_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_riddles","description":"Search for riddles by keyword.\n\nSearches across question text, hints, and categories. Case-insensitive. Results do NOT include answers.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search keyword — matches question, hint, or category.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_riddle_categories","description":"List all available riddle categories.\n\nReturns the category names that can be used to filter random riddles.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/test-user","name":"Test User Generator","description":"Generate realistic fake user profiles (name, email, phone, address, DOB) for testing — supports US, UK, NO, DE, FR locales.","category":"Utilities","source":"In-memory curated collection","endpoint":"/mcp/test-user/","tools":[{"name":"generate_random_test_user","description":"Generate a single random test user with fake name, email, phone, address, date of birth, and username.\n\nAll data is generated in-memory using curated name/address lists per locale.\nUse list_test_user_locales() to see supported locale codes.","input_schema":{"additionalProperties":false,"properties":{"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Locale/nationality filter (US, UK, NO, DE, FR). Omit for random locale."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"generate_test_user_batch","description":"Generate a batch of random test users.\n\nReturns multiple fake users, each with name, email, phone, address, date of birth, and username.","input_schema":{"additionalProperties":false,"properties":{"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Number of test users to generate (1-50, default 5)."},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Locale/nationality filter (US, UK, NO, DE, FR). Omit for random locale."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_test_user_locales","description":"List all supported locales for test user generation.\n\nReturns locale codes (e.g. US, UK, NO, DE, FR) that can be used to filter generated users.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/barcode","name":"Barcode Generation","description":"Generate barcode image URLs for Code 128, Code 39, EAN-13, EAN-8, UPC-A, and QR formats with data validation.","category":"Utilities","source":"barcodeapi.org","endpoint":"/mcp/barcode/","tools":[{"name":"generate_barcode","description":"Generate a barcode image URL for the given data and type.\n\nReturns a URL that renders a barcode image. The URL can be used directly in an <img> tag\nor opened in a browser. No image data is returned — only the URL.\nSupported types: code128, code39, ean13, ean8, upc-a, qr.","input_schema":{"additionalProperties":false,"properties":{"barcode_type":{"description":"Barcode type: code128, code39, ean13, ean8, upc-a, qr.","type":"string"},"data":{"description":"The data to encode in the barcode.","type":"string"}},"required":["barcode_type","data"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_barcode_types","description":"List supported barcode types with descriptions.\n\nReturns the available barcode types including name, description, and expected data format.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/rhyme-finder","name":"Rhyme Finder","description":"Find perfect rhymes, near rhymes, sound-alike words, and spelling pattern matches powered by the Datamuse word API.","category":"Reference","source":"Datamuse","endpoint":"/mcp/rhyme-finder/","tools":[{"name":"find_rhymes","description":"Find perfect rhymes for a word.\n\nReturns words that rhyme perfectly with the given word, ranked by relevance score.\nIncludes syllable count when available.","input_schema":{"additionalProperties":false,"properties":{"word":{"description":"Word to find perfect rhymes for (e.g. 'love', 'time', 'moon').","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["word"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"find_near_rhymes","description":"Find near/approximate rhymes for a word.\n\nReturns words that approximately rhyme with the given word (e.g. 'north' and 'fourth').","input_schema":{"additionalProperties":false,"properties":{"word":{"description":"Word to find near/approximate rhymes for.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["word"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"find_sounds_like","description":"Find words that sound like a given word.\n\nUseful for finding homophones, near-homophones, and phonetically similar words.","input_schema":{"additionalProperties":false,"properties":{"word":{"description":"Word or phrase to find similar-sounding words for.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["word"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"find_spelled_like","description":"Find words matching a spelling pattern.\n\nSupports wildcards: ? matches a single character, * matches any number of characters.\nE.g. 'b?t' matches 'bat', 'bet', 'bit', 'bot', 'but'.","input_schema":{"additionalProperties":false,"properties":{"pattern":{"description":"Spelling pattern with optional wildcards (? = single char, * = any chars). E.g. 'b?t', 'pre*'.","type":"string"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum number of results (default: 20, max: 100)."}},"required":["pattern"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/insider-trading","name":"Insider Trading","description":"Corporate insider buy/sell transactions — Form 4 filings parsed for officer, director, and 10%+ owner trades.","category":"Finance","source":"SEC EDGAR (Form 4)","endpoint":"/mcp/insider-trading/","tools":[{"name":"get_insider_trades","description":"Get recent insider buy/sell transactions for a public company.\n\nParses SEC Form 4 filings to extract individual transactions by\ncorporate insiders (officers, directors, 10%+ owners). Shows who\ntraded, what they traded, how many shares, at what price, and\ntheir remaining holdings.\n\nTransaction codes:\n- P = Purchase (open market buy)\n- S = Sale (open market sell)\n- M = Exercise/conversion of derivative (e.g. stock option)\n- A = Grant/award\n- F = Tax withholding\n\nExamples:\n    get_insider_trades(\"AAPL\") → Recent Apple insider transactions\n    get_insider_trades(\"TSLA\", limit=10) → Last 10 Tesla Form 4 filings\n\nReturns:\n    Company info and list of transactions sorted by date (newest first),\n    each with owner details, shares, price, and post-transaction holdings.","input_schema":{"additionalProperties":false,"properties":{"ticker_or_cik":{"description":"Ticker symbol (e.g. \"AAPL\", \"TSLA\") or numeric CIK (e.g. \"320193\").","type":"string"},"limit":{"default":20,"description":"Maximum Form 4 filings to parse (default 20, max 50). Each filing may contain multiple transactions.","type":"integer"}},"required":["ticker_or_cik"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_insider_summary","description":"Get aggregated insider trading activity for a company.\n\nAnalyzes recent Form 4 filings and summarizes:\n- Net buying vs selling sentiment (are insiders buying or selling?)\n- Total shares bought and sold across all insiders\n- Per-insider breakdown: name, title, shares bought/sold, net position\n\nUseful for gauging insider confidence in a company's prospects.\nHeavy insider buying often signals management confidence; heavy\nselling may indicate concern (though selling for diversification\nor tax reasons is common).\n\nExamples:\n    get_insider_summary(\"AAPL\") → Apple insider buy/sell summary\n    get_insider_summary(\"NVDA\") → NVIDIA insider activity overview\n\nReturns:\n    Overall buy/sell sentiment, total shares bought and sold,\n    and per-insider summary with relationship and activity.","input_schema":{"additionalProperties":false,"properties":{"ticker_or_cik":{"description":"Ticker symbol (e.g. \"AAPL\") or numeric CIK (e.g. \"320193\").","type":"string"}},"required":["ticker_or_cik"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/gdelt","name":"GDELT Global Events","description":"Global event intelligence — article search, event timelines, tone analysis, and geographic coverage from 150+ countries.","category":"Media","source":"GDELT Project","endpoint":"/mcp/gdelt/","tools":[{"name":"search_articles","description":"Search global news articles across 150+ countries and 65+ languages.\n\nGDELT monitors news media worldwide, updated every 15 minutes. Returns\narticles with source, date, tone score, and thumbnail image.\n\nExamples:\n    search_articles(\"artificial intelligence\") → AI coverage from the last 24h\n    search_articles(\"oil prices\", timespan=\"7d\", sort=\"ToneDesc\") → positive oil news from the past week\n    search_articles(\"elections\", source_country=\"france\") → French election coverage\n\nReturns:\n    List of articles with URL, title, source, language, date, and tone score.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords, exact phrases in quotes, or GDELT syntax (e.g. \"climate change\", \"domain:bbc.com\").","type":"string"},"timespan":{"default":"24h","description":"Lookback window: \"24h\" (default), \"7d\", \"2w\", \"3m\". Max 3 months.","type":"string"},"max_results":{"default":25,"description":"Max articles to return (default 25, max 250).","type":"integer"},"sort":{"default":"HybridRel","description":"Sort order: \"HybridRel\" (relevance, default), \"DateDesc\", \"DateAsc\", \"ToneDesc\", \"ToneAsc\".","type":"string"},"source_country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by source country (e.g. \"US\", \"france\", \"norway\"). Optional."},"source_lang":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by source language (e.g. \"english\", \"spanish\"). Optional."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_event_timeline","description":"Get media coverage volume over time — tracks how a story rises and falls.\n\nReturns a time series of article counts matching the query. Useful for\ndetecting spikes in coverage, comparing before/after events, or monitoring\nongoing stories.\n\nExamples:\n    get_event_timeline(\"tariffs\") → tariff coverage over the past week\n    get_event_timeline(\"earthquake\", timespan=\"30d\") → earthquake coverage, monthly view\n    get_event_timeline(\"bitcoin\", smooth=5) → smoothed Bitcoin coverage trend\n\nReturns:\n    Time series with date and article volume at each time step.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords or GDELT syntax.","type":"string"},"timespan":{"default":"7d","description":"Lookback window: \"7d\" (default), \"24h\", \"2w\", \"3m\". Max 3 months.","type":"string"},"smooth":{"default":0,"description":"Moving-average smoothing (0-30 time steps). 0 = no smoothing (default).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_tone_timeline","description":"Get media tone/sentiment over time for a topic.\n\nTone ranges from negative (critical/alarming) to positive (optimistic/favorable).\nMost news falls between -10 and +5. Tracks how public sentiment shifts\naround events, announcements, or crises.\n\nExamples:\n    get_tone_timeline(\"Federal Reserve\") → Fed sentiment over the past week\n    get_tone_timeline(\"Tesla\", timespan=\"30d\") → Tesla media sentiment, monthly\n    get_tone_timeline(\"war\", timespan=\"3m\", smooth=3) → smoothed conflict tone\n\nReturns:\n    Time series with date and tone score at each time step.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords or GDELT syntax.","type":"string"},"timespan":{"default":"7d","description":"Lookback window: \"7d\" (default), \"24h\", \"2w\", \"3m\". Max 3 months.","type":"string"},"smooth":{"default":0,"description":"Moving-average smoothing (0-30 time steps). 0 = no smoothing (default).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_source_country_breakdown","description":"Get which countries' media are covering a topic, ranked by volume.\n\nShows where news about a topic originates from — which countries'\nmedia outlets are writing about it most. Useful for understanding\nregional interest and geographic spread of coverage.\n\nExamples:\n    get_source_country_breakdown(\"trade war\") → which countries cover trade war most\n    get_source_country_breakdown(\"AI regulation\", timespan=\"7d\") → AI regulation coverage by country\n    get_source_country_breakdown(\"climate summit\") → which nations' media cover climate talks\n\nReturns:\n    List of countries sorted by coverage volume (highest first).","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keywords or GDELT syntax.","type":"string"},"timespan":{"default":"24h","description":"Lookback window: \"24h\" (default), \"7d\", \"3m\". Max 3 months.","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/etf","name":"ETF Data","description":"ETF and mutual fund portfolio data — top holdings, asset allocation, and country exposure from SEC N-PORT filings.","category":"Finance","source":"SEC EDGAR (N-PORT-P)","endpoint":"/mcp/etf/","tools":[{"name":"get_etf_holdings","description":"Get top portfolio holdings for an ETF or mutual fund.\n\nReturns the largest holdings by market value from the fund's most recent\nN-PORT-P filing (quarterly portfolio disclosure filed with SEC).\n\nEach holding includes name, CUSIP, market value, percentage of NAV,\nshare count, asset category, and country of domicile.\n\nExamples:\n    get_etf_holdings(\"SPY\") → Top 25 holdings of SPDR S&P 500 ETF\n    get_etf_holdings(\"QQQ\", limit=10) → Top 10 Invesco QQQ holdings\n    get_etf_holdings(\"VTI\", limit=50) → Top 50 Vanguard Total Stock Market\n\nReturns:\n    Fund name, report date, net assets, total holding count,\n    and a list of holdings with value, weight, and classification.","input_schema":{"additionalProperties":false,"properties":{"ticker_or_cik":{"description":"ETF or mutual fund ticker (e.g. \"SPY\", \"QQQ\", \"VTI\") or numeric CIK.","type":"string"},"limit":{"default":25,"description":"Maximum holdings to return, sorted by market value (default 25).","type":"integer"}},"required":["ticker_or_cik"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_etf_allocation","description":"Get asset allocation breakdown for an ETF or mutual fund.\n\nReturns portfolio composition grouped by asset category (equity, debt,\nderivatives, etc.) and by country — from the most recent N-PORT-P filing.\n\nUseful for understanding an ETF's diversification, geographic exposure,\nand asset mix without reading the full holdings list.\n\nExamples:\n    get_etf_allocation(\"SPY\") → S&P 500 ETF allocation (mostly US equity)\n    get_etf_allocation(\"BND\") → Vanguard Bond ETF allocation (debt categories)\n    get_etf_allocation(\"VT\") → Vanguard Total World — global country breakdown\n\nReturns:\n    Fund info, asset category breakdown with NAV percentages,\n    and country breakdown with NAV percentages.","input_schema":{"additionalProperties":false,"properties":{"ticker_or_cik":{"description":"ETF or mutual fund ticker (e.g. \"SPY\", \"QQQ\", \"BND\") or numeric CIK.","type":"string"}},"required":["ticker_or_cik"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/unsdg","name":"UN SDG","description":"UN Sustainable Development Goals — 231 indicators across 17 goals covering poverty, health, education, climate, and inequality for 193 countries.","category":"Economics","source":"UN Stats SDG API v5","endpoint":"/mcp/unsdg/","tools":[{"name":"list_sdg_goals","description":"List all 17 UN Sustainable Development Goals.\n\nReturns each goal's code (1-17), title, and description. Use the goal code\nto explore targets and indicators via get_goal_targets.\n\nExamples:\n    list_sdg_goals() → All 17 goals (poverty, hunger, health, education, etc.)","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"properties":{"result":{"items":{"additionalProperties":true,"type":"object"},"type":"array"}},"required":["result"],"type":"object","x-fastmcp-wrap-result":true}},{"name":"get_goal_targets","description":"Get targets and indicators for a specific SDG goal.\n\nReturns the goal's targets (e.g. 1.1, 1.2) with their indicators and\ndata series codes. Use series codes with get_sdg_series_data for actual values.\n\nExamples:\n    get_goal_targets(1) → Targets for 'No Poverty' (1.1 extreme poverty, 1.2 national poverty...)\n    get_goal_targets(13) → Targets for 'Climate Action'","input_schema":{"additionalProperties":false,"properties":{"goal_code":{"description":"SDG goal number (1-17). E.g. 1 = No Poverty, 13 = Climate Action.","type":"integer"}},"required":["goal_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_sdg_indicator_data","description":"Get observation data for SDG indicators.\n\nReturns time-series data for the specified indicators, optionally filtered\nby country and time period. Each observation includes value, source,\ngeographic area, and any dimension breakdowns (age, sex, location, etc.).\n\nExamples:\n    get_sdg_indicator_data(['1.1.1'], [156], 2010, 2023) → China poverty rate 2010-2023\n    get_sdg_indicator_data(['4.1.1'], [578]) → Norway education completion data\n    get_sdg_indicator_data(['13.2.2']) → All countries' greenhouse gas emissions\n\nReturns:\n    Paginated observations with value, source, geo area, time period, and dimensions.","input_schema":{"additionalProperties":false,"properties":{"indicator_codes":{"description":"Indicator code(s), e.g. ['1.1.1'] for extreme poverty rate.","items":{"type":"string"},"type":"array"},"area_codes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"Geo area code(s). E.g. [578] for Norway, [840] for USA. Use search_sdg_geo_areas to find codes."},"time_start":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Start year (e.g. 2015)."},"time_end":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"End year (e.g. 2023)."},"page":{"default":1,"description":"Page number (default 1).","type":"integer"},"page_size":{"default":50,"description":"Results per page, max 200 (default 50).","type":"integer"}},"required":["indicator_codes"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_sdg_series_data","description":"Get observation data for specific SDG data series.\n\nMore granular than indicator data — a single indicator may have multiple series\nwith different measurement methodologies. Use get_goal_targets to discover\navailable series codes.\n\nExamples:\n    get_sdg_series_data(['SI_POV_DAY1'], [840], 2000, 2023) → US $2.15/day poverty\n    get_sdg_series_data(['EN_ATM_GHGT_AIP'], [578]) → Norway greenhouse gas index\n\nReturns:\n    Paginated observations with value, source, and disaggregation dimensions.","input_schema":{"additionalProperties":false,"properties":{"series_codes":{"description":"Series code(s), e.g. ['SI_POV_DAY1'] for poverty rate.","items":{"type":"string"},"type":"array"},"area_codes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"Geo area code(s). E.g. [578] for Norway."},"time_start":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Start year."},"time_end":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"End year."},"page":{"default":1,"description":"Page number.","type":"integer"},"page_size":{"default":50,"description":"Results per page, max 200.","type":"integer"}},"required":["series_codes"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_sdg_geo_areas","description":"Search for SDG geo area codes by name.\n\nReturns matching country and region codes that can be used with the\nindicator and series data tools.\n\nExamples:\n    search_sdg_geo_areas('Norway') → [{'code': '578', 'name': 'Norway'}]\n    search_sdg_geo_areas('Africa') → All African regions and sub-regions","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for country or region name (e.g. 'Norway', 'Africa').","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"properties":{"result":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"}},"required":["result"],"type":"object","x-fastmcp-wrap-result":true}},{"name":"get_sdg_series_dimensions","description":"Get available dimensions (disaggregations) for a data series.\n\nShows what breakdowns are available — age groups, sex, location type,\nreporting type, etc. Useful for understanding what granularity exists\nbefore querying data.\n\nExamples:\n    get_sdg_series_dimensions('SI_POV_DAY1') → Age, Sex, Reporting Type dimensions","input_schema":{"additionalProperties":false,"properties":{"series_code":{"description":"Series code, e.g. 'SI_POV_DAY1'.","type":"string"}},"required":["series_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_sdg_data_availability","description":"Get which countries and regions have data for a specific series.\n\nUseful for checking data coverage before querying — not all series\nhave data for all countries.\n\nExamples:\n    get_sdg_data_availability('SI_POV_DAY1') → Countries with poverty data","input_schema":{"additionalProperties":false,"properties":{"series_code":{"description":"Series code, e.g. 'SI_POV_DAY1'.","type":"string"}},"required":["series_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/oecd","name":"OECD Statistics","description":"OECD economic statistics — GDP, trade, education, health, labour, and environment data across 38+ member economies.","category":"Economics","source":"OECD SDMX REST API","endpoint":"/mcp/oecd/","tools":[{"name":"search_datasets","description":"Search the OECD dataset catalog by keyword.\n\nReturns matching datasets with their full dataflow IDs needed for\nget_data, get_dataset_structure, and compare_countries calls.\nOECD covers 38+ member economies with data on GDP, trade, education,\nhealth, labor, environment, governance, and more.\n\nArgs:\n    query: Search term (e.g. \"gdp\", \"productivity\", \"education\").\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of matching datasets with id, name, agency, and description.\n    Use the 'id' field as the dataflow parameter in other tools.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for OECD datasets (e.g. \"gdp\", \"productivity\", \"education\", \"trade\", \"labour\", \"health\").","type":"string"},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_datasets","description":"List available OECD datasets, optionally filtered by topic.\n\nBrowse the full OECD data catalog. Use this to discover what\ndatasets exist before querying specific data.\n\nArgs:\n    topic: Optional topic filter keyword. Omit to list all datasets.\n    limit: Maximum datasets to return (1-200, default 50).\n\nReturns:\n    List of datasets with id, name, and description.","input_schema":{"additionalProperties":false,"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional topic filter (e.g. \"health\", \"labour\", \"education\", \"environment\"). Omit to list all."},"limit":{"default":50,"description":"Maximum datasets to return (1-200, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_dataset_structure","description":"Get the dimension structure of an OECD dataset.\n\nShows what dimensions (filters) are available for a dataset and their\nvalid values. Use this before get_data to understand what country codes,\nindicators, frequencies, and other parameters are accepted.\n\nArgs:\n    dataflow: OECD dataflow identifier from search_datasets.\n\nReturns:\n    List of dimensions with their valid codes/values. Each dimension\n    shows its position in the SDMX key and sample values.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"OECD dataflow identifier from search_datasets (e.g. \"OECD.SDD.TPS,DSD_PDB@DF_PDB_LV,1.0\").","type":"string"}},"required":["dataflow"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Fetch data from an OECD dataset.\n\nQuery any OECD dataset using an SDMX dimension key filter.\nUse get_dataset_structure first to find valid dimension values\nand their positions in the key.\n\nOECD does not support startPeriod/endPeriod filters.\nUse last_n_observations to limit the time range.\n\nArgs:\n    dataflow: OECD dataflow identifier. Use search_datasets to find IDs.\n    key_filter: SDMX dimension key with * wildcards for any position.\n    last_n_observations: Return only the last N time periods.\n    limit: Maximum observations to return (1-1000, default 200).\n\nReturns:\n    Observations with all dimension labels and values.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"OECD dataflow identifier (e.g. \"OECD.SDD.TPS,DSD_PDB@DF_PDB_LV,1.0\"). Use search_datasets to find IDs.","type":"string"},"key_filter":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"SDMX dimension key (dot-separated, * for wildcard, e.g. \"A.USA.*.*.*\"). Use get_dataset_structure to find valid values."},"last_n_observations":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Return only the last N time periods (1-100)."},"limit":{"default":200,"description":"Maximum observations to return (1-1000, default 200).","type":"integer"}},"required":["dataflow"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_countries","description":"Compare data across countries for a given OECD dataset.\n\nFetches the same indicator for multiple countries side by side.\nUseful for cross-country analysis of GDP, productivity, education,\nhealth, and other OECD statistics.\n\nArgs:\n    dataflow: OECD dataflow identifier.\n    country_codes: ISO alpha-3 country codes to compare. Maximum 20.\n    last_n_observations: Return last N time periods (1-100, default 5).\n\nReturns:\n    Data grouped by country for easy comparison.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"OECD dataflow identifier (e.g. \"OECD.SDD.TPS,DSD_PDB@DF_PDB_LV,1.0\").","type":"string"},"country_codes":{"description":"ISO alpha-3 country codes to compare (e.g. [\"USA\", \"DEU\", \"JPN\", \"NOR\"]). Maximum 20.","items":{"type":"string"},"type":"array"},"last_n_observations":{"default":5,"description":"Return last N time periods per country (1-100, default 5).","type":"integer"}},"required":["dataflow","country_codes"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ilostat","name":"ILOSTAT (ILO Labour Statistics)","description":"International Labour Organization statistics — employment, unemployment, wages, working conditions, labour force participation, child labour, and migration data for 190+ countries.","category":"Economics","source":"ILO (SDMX 2.1)","endpoint":"/mcp/ilostat/","tools":[{"name":"search_datasets","description":"Search the ILOSTAT dataset catalog by keyword.\n\nReturns matching datasets with their dataflow IDs needed for\nget_data, get_dataset_structure, and compare_countries calls.\nILOSTAT covers employment, unemployment, wages, working conditions,\nlabour force participation, child labour, migration, and social\nprotection across 190+ countries.\n\nArgs:\n    query: Search term (e.g. \"unemployment\", \"wages\", \"child labour\").\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    List of matching datasets with id, name, agency, and description.\n    Use the 'id' field as the dataflow parameter in other tools.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for ILOSTAT datasets (e.g. \"unemployment\", \"wages\", \"child labour\", \"migration\", \"working poverty\").","type":"string"},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_datasets","description":"List available ILOSTAT datasets, optionally filtered by topic.\n\nBrowse the full ILOSTAT data catalog. Use this to discover what\ndatasets exist before querying specific data.\n\nArgs:\n    topic: Optional topic filter keyword. Omit to list all datasets.\n    limit: Maximum datasets to return (1-100, default 50).\n\nReturns:\n    List of datasets with id, name, and description.","input_schema":{"additionalProperties":false,"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional topic filter (e.g. \"employment\", \"wages\", \"labour force\", \"migration\"). Omit to list all."},"limit":{"default":50,"description":"Maximum datasets to return (1-100, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_dataset_structure","description":"Get the dimension structure of an ILOSTAT dataset.\n\nShows what dimensions (filters) are available for a dataset and their\nvalid values. Use this before get_data to understand what country codes,\nsex breakdowns, age groups, and other parameters are accepted.\n\nArgs:\n    dataflow: ILOSTAT dataflow identifier from search_datasets.\n\nReturns:\n    List of dimensions with their valid codes/values. Each dimension\n    shows its position in the SDMX key and sample values.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"ILOSTAT dataflow identifier from search_datasets (e.g. \"DF_UNE_2EAP_SEX_AGE_RT\", \"DF_EMP_TEMP_SEX_AGE_NB\").","type":"string"}},"required":["dataflow"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Fetch data from an ILOSTAT dataset.\n\nQuery any ILOSTAT dataset by country and time period. Covers\nemployment, unemployment, wages, working conditions, labour force\nparticipation, child labour, migration, and social protection\nacross 190+ countries worldwide.\n\nArgs:\n    dataflow: ILOSTAT dataflow identifier. Use search_datasets to find IDs.\n    countries: ISO alpha-2/3 country codes. Omit for all countries.\n    start_period: Start period filter (e.g. \"2015\").\n    end_period: End period filter (e.g. \"2023\").\n    dimension_filter: Advanced SDMX dimension key. Overrides countries.\n    limit: Maximum observations to return (1-1000, default 200).\n\nReturns:\n    Observations with all dimension labels and values.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"ILOSTAT dataflow identifier (e.g. \"DF_UNE_2EAP_SEX_AGE_RT\"). Use search_datasets to find IDs.","type":"string"},"countries":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"ISO alpha-2/3 country codes (e.g. [\"USA\", \"DEU\", \"NOR\"]). Omit for all countries."},"start_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start period (e.g. \"2015\", \"2020-Q1\", \"2020-01\")."},"end_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End period (e.g. \"2023\", \"2023-Q4\", \"2023-12\")."},"dimension_filter":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Advanced: SDMX dimension key filter (dot-separated, e.g. \"USA.A.UNE_DEAP_RT.SEX_T.YGE15\"). Overrides countries param. Use get_dataset_structure to find valid dimension values."},"limit":{"default":200,"description":"Maximum observations to return (1-1000, default 200).","type":"integer"}},"required":["dataflow"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_countries","description":"Compare data across countries for a given ILOSTAT dataset.\n\nFetches the same indicator for multiple countries side by side.\nUseful for cross-country analysis of unemployment rates, wage levels,\nlabour force participation, and other ILO labour statistics.\n\nArgs:\n    dataflow: ILOSTAT dataflow identifier.\n    country_codes: ISO alpha-2/3 country codes to compare. Maximum 20.\n    start_period: Start period. Omit for most recent data.\n    end_period: End period. Omit for most recent data.\n\nReturns:\n    Data grouped by country for easy comparison.","input_schema":{"additionalProperties":false,"properties":{"dataflow":{"description":"ILOSTAT dataflow identifier (e.g. \"DF_UNE_2EAP_SEX_AGE_RT\").","type":"string"},"country_codes":{"description":"ISO alpha-2/3 country codes to compare (e.g. [\"USA\", \"DEU\", \"JPN\", \"NOR\"]). Maximum 20.","items":{"type":"string"},"type":"array"},"start_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start period (e.g. \"2020\"). Omit for most recent data."},"end_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End period (e.g. \"2023\"). Omit for most recent data."}},"required":["dataflow","country_codes"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ioda","name":"IODA (Internet Outage Detection)","description":"Internet outage detection and analysis — real-time alerts, processed events, aggregated summaries, and time-series signal data for countries, ASNs, and regions. Monitors BGP, active probing, and traffic data.","category":"Security","source":"IODA (Georgia Tech Internet Intelligence Lab)","endpoint":"/mcp/ioda/","tools":[{"name":"get_outage_alerts","description":"Get recent internet outage alerts from IODA (Georgia Tech).\n\nReturns alerts about detected internet connectivity disruptions worldwide.\nMonitors BGP routing, active probing, and traffic data to detect outages\naffecting countries, autonomous systems (ASNs), and regions.\n\nArgs:\n    country_code: ISO 3166-1 alpha-2 country code to filter by (e.g. \"US\", \"DE\", \"NO\").\n    asn: Autonomous System Number to filter by (e.g. \"15169\" for Google).\n    hours: Lookback window in hours (1-720, default 24).\n    limit: Maximum results to return (1-200, default 20).\n\nReturns:\n    Dict with 'source', 'count', and 'alerts' list. Each alert includes\n    entity info, datasource, severity level, timestamp, and signal values.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code to filter by (e.g. \"US\", \"DE\", \"NO\")."},"asn":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Autonomous System Number to filter by (e.g. \"15169\" for Google, \"13335\" for Cloudflare)."},"hours":{"default":24,"description":"Lookback window in hours (1-720, default 24).","type":"number"},"limit":{"default":20,"description":"Maximum results to return (1-200, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_outage_events","description":"Get processed internet outage events with severity and duration.\n\nUnlike raw alerts, events are correlated and processed to show distinct\noutage incidents with start/end times, severity scores, and affected\ndatasources. Use this for a cleaner view of actual outage incidents.\n\nArgs:\n    country_code: ISO 3166-1 alpha-2 country code to filter by (e.g. \"US\", \"DE\", \"NO\").\n    asn: Autonomous System Number to filter by (e.g. \"15169\" for Google).\n    hours: Lookback window in hours (1-720, default 24).\n    limit: Maximum results to return (1-200, default 20).\n\nReturns:\n    Dict with 'source', 'count', and 'events' list. Each event includes\n    entity info, start/end times, severity score, and contributing datasources.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code to filter by (e.g. \"US\", \"DE\", \"NO\")."},"asn":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Autonomous System Number to filter by (e.g. \"15169\" for Google)."},"hours":{"default":24,"description":"Lookback window in hours (1-720, default 24).","type":"number"},"limit":{"default":20,"description":"Maximum results to return (1-200, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_outage_summary","description":"Get aggregated outage summaries showing which entities had the most disruptions.\n\nProvides a high-level overview of outage activity, ranked by severity.\nUseful for identifying the most impacted countries, ASNs, or regions\nin a given time window.\n\nArgs:\n    country_code: ISO 3166-1 alpha-2 country code to filter by (e.g. \"US\", \"DE\", \"NO\").\n    hours: Lookback window in hours (1-720, default 24).\n    limit: Maximum results to return (1-200, default 20).\n\nReturns:\n    Dict with 'source', 'count', and 'summaries' list. Each summary includes\n    entity info, aggregate score, outage count, and contributing datasources.","input_schema":{"additionalProperties":false,"properties":{"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code to filter by (e.g. \"US\", \"DE\", \"NO\")."},"hours":{"default":24,"description":"Lookback window in hours (1-720, default 24).","type":"number"},"limit":{"default":20,"description":"Maximum results to return (1-200, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_signals","description":"Get raw time-series signal data for a specific internet entity.\n\nReturns the actual measurement values over time for a given entity and\ndatasource. Useful for visualizing connectivity trends, detecting drops,\nand analyzing the magnitude of outages.\n\nArgs:\n    entity_type: Entity type: \"country\", \"asn\", \"region\", or \"county\".\n    entity_code: Entity code (e.g. \"US\" for country, \"15169\" for ASN).\n    hours: Lookback window in hours (1-720, default 24).\n    datasource: Data source: \"bgp\", \"ucsd-nt\", \"merit-nt\", \"gtr\", or \"ping-slash24\".\n    max_points: Maximum data points in the time series (1-5000, default 500).\n\nReturns:\n    Dict with 'source' and 'signal' containing the time-series data\n    including datasource, entity info, time range, step size, and values array.","input_schema":{"additionalProperties":false,"properties":{"entity_type":{"description":"Entity type: \"country\", \"asn\", \"region\", or \"county\".","type":"string"},"entity_code":{"description":"Entity code (e.g. \"US\" for country, \"15169\" for ASN).","type":"string"},"hours":{"default":24,"description":"Lookback window in hours (1-720, default 24).","type":"number"},"datasource":{"default":"bgp","description":"Data source: \"bgp\", \"ucsd-nt\", \"merit-nt\", \"gtr\", or \"ping-slash24\" (default \"bgp\").","type":"string"},"max_points":{"default":500,"description":"Maximum data points in the time series (1-5000, default 500).","type":"integer"}},"required":["entity_type","entity_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_entities","description":"Search for internet entities (countries, ASNs, regions) in IODA's database.\n\nFind entity codes needed for other IODA tools. For example, search for\n\"Google\" to find its ASN (15169), or \"Norway\" to find its country code.\n\nArgs:\n    query: Search term (e.g. \"United States\", \"Google\", \"Cloudflare\").\n    entity_type: Filter by entity type: \"country\", \"asn\", \"region\", or \"county\".\n    limit: Maximum results to return (1-200, default 20).\n\nReturns:\n    Dict with 'source', 'count', and 'entities' list. Each entity includes\n    type, code, name, and additional attributes.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term (e.g. \"United States\", \"Google\", \"Cloudflare\").","type":"string"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by entity type: \"country\", \"asn\", \"region\", or \"county\"."},"limit":{"default":20,"description":"Maximum results to return (1-200, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nih-reporter","name":"NIH RePORTER","description":"Search 2.9M+ NIH-funded research projects — $50B+/year across all scientific disciplines. Project details, investigators, funding amounts, abstracts, and linked publications.","category":"Science","source":"NIH RePORTER API","endpoint":"/mcp/nih-reporter/","tools":[{"name":"search_projects","description":"Search NIH-funded research projects across all NIH institutes.\n\nCovers 2.9M+ projects with $50B+/year in funding. Includes project details,\nprincipal investigators, award amounts, and abstracts. Data from NIH RePORTER.\n\nArgs:\n    query: Search term for project titles, abstracts, and terms.\n    fiscal_years: Fiscal years to filter by.\n    org_names: Organization names to filter by.\n    pi_name: Principal investigator name to filter by.\n    activity_codes: NIH activity codes to filter by.\n    limit: Number of results (1–50, default 20).\n\nReturns:\n    List of matching projects with title, PI, organization, funding amount, and abstract excerpt.\n    Use project_num with get_project or get_publications for more details.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for NIH-funded projects (e.g. \"cancer immunotherapy\", \"CRISPR gene editing\", \"Alzheimer biomarkers\").","type":"string"},"fiscal_years":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"Fiscal years to filter by (e.g. [2023, 2024]). Omit for all years."},"org_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Organization names to filter by (e.g. [\"Harvard\", \"MIT\"])."},"pi_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Principal investigator name to filter by."},"activity_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"NIH activity codes (e.g. [\"R01\", \"R21\", \"U01\"]). R01=standard research, R21=exploratory, K=career development, U=cooperative agreement, P=program project."},"limit":{"default":20,"description":"Number of results (1–50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_project","description":"Get detailed information about a specific NIH-funded project.\n\nReturns the full project record including abstract, investigators, funding,\ndates, and MeSH terms. Use the project_num from search_projects results.\n\nArgs:\n    project_num: NIH project number.\n\nReturns:\n    Project details with abstract, investigators, organization, funding amount,\n    activity dates, and research terms. Returns found=false if project not found.","input_schema":{"additionalProperties":false,"properties":{"project_num":{"description":"NIH project number (e.g. \"R01CA227622\", \"5R01AI123456-03\"). Found in search_projects results.","type":"string"}},"required":["project_num"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_publications","description":"Get PubMed publications linked to an NIH-funded project.\n\nReturns PubMed IDs (PMIDs) for papers that acknowledged NIH funding from the\nspecified project. Use PMIDs with PubMed for full paper details.\n\nArgs:\n    project_num: NIH core project number.\n    limit: Number of results (1–50, default 20).\n\nReturns:\n    List of PubMed IDs linked to the project. Use with pubmed server for full paper details.","input_schema":{"additionalProperties":false,"properties":{"project_num":{"description":"NIH core project number (e.g. \"R01CA227622\"). Found in search_projects results.","type":"string"},"limit":{"default":20,"description":"Number of results (1–50, default 20).","type":"integer"}},"required":["project_num"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_funding_trends","description":"Track NIH funding trends for a research topic across fiscal years.\n\nShows how many projects were funded and total sampled award amounts for each year.\nUseful for understanding research funding priorities and growth areas.\n\nArgs:\n    query: Research topic to track.\n    fiscal_years: Fiscal years to compare.\n\nReturns:\n    Per-year project counts and sampled funding totals. Note: funding totals are\n    based on up to 500 sampled projects per year, not exhaustive sums.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Research topic to track funding for (e.g. \"machine learning\", \"mRNA vaccines\", \"climate health\").","type":"string"},"fiscal_years":{"description":"Fiscal years to compare (e.g. [2020, 2021, 2022, 2023, 2024]). Minimum 1, maximum 20.","items":{"type":"integer"},"type":"array"}},"required":["query","fiscal_years"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nsf-awards","name":"NSF Awards","description":"Search NSF research awards and grants — keyword search, PI lookup, institution filtering. Covers all NSF-funded research across science, engineering, and education.","category":"Science","source":"NSF Award API","endpoint":"/mcp/nsf-awards/","tools":[{"name":"search_awards","description":"Search NSF research awards and grants by keyword.\n\nCovers all NSF-funded research across science, engineering, and education.\nIncludes award details, principal investigators, institutions, and funding amounts.\n\nReturns:\n    List of matching awards with title, PI, institution, funding amount, and abstract excerpt.\n    Use award id with get_award for full details.","input_schema":{"additionalProperties":false,"properties":{"keyword":{"description":"Search term for NSF awards (e.g. \"machine learning\", \"climate change\", \"quantum computing\").","type":"string"},"awardee_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Institution name to filter by (e.g. \"MIT\", \"Stanford University\")."},"start_date_start":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter awards starting after this date (MM/DD/YYYY format)."},"start_date_end":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter awards starting before this date (MM/DD/YYYY format)."},"limit":{"default":25,"description":"Number of results (1–25, default 25).","type":"integer"}},"required":["keyword"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_award","description":"Get detailed information about a specific NSF award.\n\nReturns the full award record including abstract, PI, institution, funding,\nand program information. Use the id from search_awards results.\n\nReturns:\n    Award details with abstract, PI, institution, funding amount, dates,\n    and program info. Returns found=false if award not found.","input_schema":{"additionalProperties":false,"properties":{"award_id":{"description":"NSF award ID (e.g. \"2548201\"). Found in search_awards results.","type":"string"}},"required":["award_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_by_pi","description":"Search NSF awards by principal investigator name.\n\nFind all NSF grants awarded to a specific researcher. Optionally filter\nby keyword to narrow to a research area.\n\nReturns:\n    List of awards for the specified PI with title, institution, funding, and dates.","input_schema":{"additionalProperties":false,"properties":{"pi_last_name":{"description":"Principal investigator's last name.","type":"string"},"pi_first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Principal investigator's first name (optional, narrows results)."},"keyword":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional keyword to further filter results."},"limit":{"default":25,"description":"Number of results (1–25, default 25).","type":"integer"}},"required":["pi_last_name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/regulations-gov","name":"Regulations.gov (US Federal Rulemaking)","description":"US federal rulemaking — search proposed rules, final rules, notices, and public comments across all federal agencies via Regulations.gov.","category":"Government","source":"Regulations.gov API (US GSA)","endpoint":"/mcp/regulations-gov/","tools":[{"name":"search_documents","description":"Search US federal regulatory documents on Regulations.gov.\n\nCovers proposed rules, final rules, notices, and supporting materials from all\nfederal agencies (EPA, FDA, SEC, DOT, etc.). Use to find active rulemaking,\ncomment periods, and regulatory actions.\n\nReturns:\n    List of matching documents with title, agency, docket, posting date, and\n    whether the document is open for public comment. Use document id with\n    get_document for full details.","input_schema":{"additionalProperties":false,"properties":{"search_term":{"description":"Search term for federal regulatory documents (e.g. \"clean air\", \"data privacy\", \"drug safety\").","type":"string"},"agency_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by agency abbreviation (e.g. 'EPA', 'FDA', 'DOT', 'SEC', 'NHTSA')."},"document_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by type: 'Proposed Rule', 'Rule', 'Supporting & Related Material', 'Other'."},"posted_date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter documents posted on or after this date (YYYY-MM-DD)."},"posted_date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter documents posted on or before this date (YYYY-MM-DD)."},"docket_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by docket ID (e.g. 'EPA-HQ-OAR-2023-0434')."},"page_size":{"default":25,"description":"Number of results (5–25, default 25).","type":"integer"}},"required":["search_term"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_document","description":"Get detailed information about a specific federal regulatory document.\n\nReturns the full document record including agency, docket, dates, Federal Register\nnumber, and comment period details.\n\nReturns:\n    Document details including agency, docket, posting and comment dates,\n    and Federal Register number. Returns found=false if not found.","input_schema":{"additionalProperties":false,"properties":{"document_id":{"description":"Regulations.gov document ID (e.g. \"EPA-HQ-OAR-2023-0434-1020\"). Found in search results.","type":"string"}},"required":["document_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_dockets","description":"Search US federal regulatory dockets (rulemaking proceedings).\n\nA docket is a container for all documents related to a single rulemaking action.\nUse to find ongoing regulatory proceedings, track rulemaking history, and\nunderstand the scope of regulatory activity by agency.\n\nReturns:\n    List of matching dockets with title, agency, type, and last modified date.\n    Use docket id with get_docket for details, or filter search_documents by docket_id.","input_schema":{"additionalProperties":false,"properties":{"search_term":{"description":"Search term for regulatory dockets (e.g. \"emissions standards\", \"drug approval\", \"financial reporting\").","type":"string"},"agency_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by agency abbreviation (e.g. 'EPA', 'FDA', 'SEC')."},"page_size":{"default":25,"description":"Number of results (5–25, default 25).","type":"integer"}},"required":["search_term"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_docket","description":"Get details for a specific regulatory docket.\n\nReturns:\n    Docket details including title, agency, type, and last modified date.\n    Returns found=false if not found.","input_schema":{"additionalProperties":false,"properties":{"docket_id":{"description":"Docket ID (e.g. \"EPA-HQ-OAR-2023-0434\"). Found in search results or document records.","type":"string"}},"required":["docket_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_comments","description":"Search public comments submitted on federal regulations.\n\nComments are submitted by individuals, organizations, and other stakeholders\nduring public comment periods on proposed rules and notices.\n\nReturns:\n    List of matching comments with title, agency, docket, and posting date.","input_schema":{"additionalProperties":false,"properties":{"search_term":{"description":"Search term for public comments (e.g. \"oppose\", \"support\", \"environmental impact\").","type":"string"},"agency_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by agency abbreviation."},"docket_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by docket ID to see comments on a specific rulemaking."},"page_size":{"default":25,"description":"Number of results (5–25, default 25).","type":"integer"}},"required":["search_term"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/coingecko","name":"CoinGecko Crypto","description":"Real-time and historical cryptocurrency prices, market data, trending coins, and market rankings for 10,000+ coins. Prices, market caps, volumes, charts, and category filtering.","category":"Finance","source":"CoinGecko API","endpoint":"/mcp/coingecko/","tools":[{"name":"search_coins","description":"Search for cryptocurrencies by name or ticker symbol.\n\nFind coin IDs for use with other tools. Covers 10,000+ coins tracked by CoinGecko.\n\nArgs:\n    query: Coin name or ticker symbol.\n\nReturns:\n    List of matching coins with ID, name, symbol, and market cap rank.\n    Use the ID with get_price, get_coin_detail, or get_market_chart.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Coin name or symbol (e.g. \"bitcoin\", \"eth\", \"solana\", \"dogecoin\").","type":"string"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_price","description":"Get current prices for one or more cryptocurrencies.\n\nReturns real-time prices with 24h change and market cap. Supports any fiat\nor crypto as the quote currency.\n\nArgs:\n    coin_ids: List of CoinGecko coin IDs (up to 10).\n    vs_currency: Quote currency (default 'usd').\n\nReturns:\n    Current price, market cap, and 24h change percentage for each coin.","input_schema":{"additionalProperties":false,"properties":{"coin_ids":{"description":"Coin IDs (e.g. [\"bitcoin\", \"ethereum\"]). Use search_coins to find IDs.","items":{"type":"string"},"type":"array"},"vs_currency":{"default":"usd","description":"Currency for prices: usd, eur, nok, gbp, btc, etc.","type":"string"}},"required":["coin_ids"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_coin_detail","description":"Get comprehensive details for a cryptocurrency.\n\nIncludes description, market data (price, market cap, volume, supply), ATH/ATL,\nprice changes across timeframes, categories, and genesis date.\n\nArgs:\n    coin_id: CoinGecko coin ID.\n\nReturns:\n    Full coin profile with market data, supply metrics, and price history.","input_schema":{"additionalProperties":false,"properties":{"coin_id":{"description":"CoinGecko coin ID (e.g. \"bitcoin\", \"ethereum\", \"solana\"). Use search_coins to find it.","type":"string"}},"required":["coin_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_market_chart","description":"Get historical price chart data for a cryptocurrency.\n\nReturns timestamped price data points for charting or analysis. Granularity\ndepends on time range: hourly for short periods, daily for longer ones.\n\nArgs:\n    coin_id: CoinGecko coin ID.\n    vs_currency: Quote currency (default 'usd').\n    days: Number of days of history (1–365, default 30).\n\nReturns:\n    Time series of prices (up to 100 sampled points), plus latest market cap and volume.","input_schema":{"additionalProperties":false,"properties":{"coin_id":{"description":"CoinGecko coin ID (e.g. \"bitcoin\"). Use search_coins to find it.","type":"string"},"vs_currency":{"default":"usd","description":"Quote currency (default 'usd').","type":"string"},"days":{"default":30,"description":"Days of history (1–365, default 30). 1=hourly, 2-90=hourly, 91+=daily.","type":"integer"}},"required":["coin_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trending","description":"Get trending cryptocurrencies — most searched coins in the last 24 hours.\n\nShows what the crypto community is paying attention to right now.\nUpdated frequently based on CoinGecko search volume.\n\nReturns:\n    Top trending coins with name, symbol, market cap rank, and BTC price.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_markets","description":"Get top cryptocurrencies ranked by market capitalization.\n\nReturns current price, market cap, volume, 24h change, and supply data\nfor the largest coins. Can filter by category.\n\nArgs:\n    vs_currency: Quote currency (default 'usd').\n    limit: Number of results (1–50, default 20).\n    category: Filter by category (optional).\n\nReturns:\n    List of top coins with price, market cap, volume, and 24h change.","input_schema":{"additionalProperties":false,"properties":{"vs_currency":{"default":"usd","description":"Quote currency (default 'usd').","type":"string"},"limit":{"default":20,"description":"Number of results (1–50, default 20).","type":"integer"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Category filter: 'decentralized-finance-defi', 'stablecoins', 'meme-token', 'layer-1', 'layer-2', 'gaming', etc."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/who-gho","name":"WHO GHO (Global Health Observatory)","description":"WHO Global Health Observatory — 2000+ health indicators covering diseases, mortality, risk factors, health systems, and UHC coverage across 194 member states.","category":"Health","source":"WHO GHO OData API","endpoint":"/mcp/who-gho/","tools":[{"name":"search_health_indicators","description":"Search for WHO health indicators by keyword.\n\nThe Global Health Observatory contains 2000+ indicators covering diseases,\nrisk factors, health systems, mortality, and more. Use this to discover\nindicator codes before calling get_health_indicator_data().\n\nReturns:\n    count and list of indicators with code and name.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term (e.g. 'life expectancy', 'malaria', 'tuberculosis', 'obesity').","type":"string"},"max_results":{"default":25,"description":"Maximum number of indicators to return.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_health_indicator_data","description":"Get data for a specific WHO health indicator.\n\nReturns time series data optionally filtered by country, year range, and sex.\nEach observation includes the numeric value, display value (may include\nconfidence intervals), and dimensional breakdowns.\n\nArgs:\n    indicator_code: WHO GHO indicator code. Use search_health_indicators() to find codes.\n    country: ISO alpha-3 country code. Omit for all countries.\n    year_from: Start year (inclusive).\n    year_to: End year (inclusive).\n    sex: Filter by sex: 'male', 'female', or 'both'.\n    max_results: Maximum data points to return.\n\nReturns:\n    indicator code, observation count, source, and observations list.","input_schema":{"additionalProperties":false,"properties":{"indicator_code":{"description":"WHO GHO indicator code (e.g. 'WHOSIS_000001' for life expectancy). Use search_health_indicators() to find codes.","type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO alpha-3 country code (e.g. 'NOR', 'USA', 'GBR'). Omit for all countries."},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start year (inclusive)."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End year (inclusive)."},"sex":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by sex: 'male', 'female', or 'both'."},"max_results":{"default":500,"description":"Maximum data points to return.","type":"integer"}},"required":["indicator_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_countries_health","description":"Compare countries on a specific health indicator.\n\nReturns the latest available value for each country, making it easy to\nbenchmark health outcomes across nations. Includes both sexes by default\nwhen available.\n\nArgs:\n    indicator_code: WHO GHO indicator code to compare.\n    countries: List of ISO alpha-3 country codes.\n    year: Specific year. Omit for latest available.\n\nReturns:\n    indicator, year filter, and per-country latest values with all observations.","input_schema":{"additionalProperties":false,"properties":{"indicator_code":{"description":"WHO GHO indicator code to compare across countries.","type":"string"},"countries":{"description":"List of ISO alpha-3 country codes (e.g. ['NOR', 'SWE', 'DNK', 'FIN']).","items":{"type":"string"},"type":"array"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Specific year to compare. Omit for latest available."}},"required":["indicator_code","countries"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_country_health_profile","description":"Get a comprehensive health profile for a country.\n\nReturns latest values across 12 key health indicators: life expectancy,\nhealthy life expectancy, infant/child/maternal mortality, obesity, alcohol,\ntobacco, physician density, nurse density, health expenditure, and UHC\ncoverage index.\n\nArgs:\n    country: ISO alpha-3 country code.\n\nReturns:\n    country, source, and list of 12 indicator snapshots with latest values.","input_schema":{"additionalProperties":false,"properties":{"country":{"description":"ISO alpha-3 country code (e.g. 'NOR', 'USA', 'GBR', 'JPN').","type":"string"}},"required":["country"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/semantic-scholar","name":"Semantic Scholar","description":"Search 200M+ academic papers, explore citation graphs, find author profiles, and get AI-powered paper recommendations across all scientific disciplines.","category":"Science","source":"Semantic Scholar API","endpoint":"/mcp/semantic-scholar/","tools":[{"name":"search_papers","description":"Search 200M+ academic papers in Semantic Scholar.\n\nFind papers across all scientific disciplines. Returns titles, authors,\ncitation counts, venues, and links to open-access PDFs when available.\nUse paper IDs from results with get_paper, get_citations, get_references,\nand recommend_papers.\n\nArgs:\n    query: Search keywords or phrase.\n    limit: Number of results (1-100, default 10).\n    offset: Pagination offset for paging through results.\n    year: Year or year range filter.\n    fields_of_study: Filter by academic field(s).\n\nReturns:\n    Papers with paperId, title, year, venue, authors, citationCount, doi.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query for academic papers (e.g. \"transformer attention mechanism\", \"CRISPR gene editing\", \"climate change mitigation\").","type":"string"},"limit":{"default":10,"description":"Number of results to return (1-100, default 10).","type":"integer"},"offset":{"default":0,"description":"Pagination offset for additional results (default 0).","type":"integer"},"year":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Year filter — single year (\"2023\"), range (\"2020-2023\"), or open range (\"2020-\")."},"fields_of_study":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter by academic field (e.g. [\"Computer Science\"], [\"Medicine\", \"Biology\"])."}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_paper","description":"Get detailed information about a specific academic paper.\n\nRetrieve full paper details including abstract, citation/reference counts,\nauthors, fields of study, and AI-generated TLDR summary. Accepts multiple\nID formats: Semantic Scholar paper ID, DOI, ArXiv ID, PMID, or CorpusId.\n\nArgs:\n    paper_id: Paper identifier in any supported format.\n\nReturns:\n    Full paper details with abstract, authors, citations, TLDR, and links.","input_schema":{"additionalProperties":false,"properties":{"paper_id":{"description":"Paper identifier — S2 ID (40-char hex), DOI (e.g. \"10.1038/s41586-021-03819-2\"), ArXiv ID (e.g. \"2301.12345\"), or prefixed ID (e.g. \"PMID:12345\", \"CorpusId:12345\").","type":"string"}},"required":["paper_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_citations","description":"Get papers that cite a given paper.\n\nExplore a paper's citation graph by finding all papers that reference it.\nUseful for tracking research impact, finding follow-up work, and\ndiscovering how a paper has influenced subsequent research.\n\nArgs:\n    paper_id: Paper identifier in any supported format.\n    limit: Number of citing papers to return (1-100, default 20).\n    offset: Pagination offset.\n\nReturns:\n    List of citing papers with title, year, venue, authors, citationCount.","input_schema":{"additionalProperties":false,"properties":{"paper_id":{"description":"Paper identifier (S2 ID, DOI, ArXiv ID, or prefixed ID).","type":"string"},"limit":{"default":20,"description":"Number of citing papers to return (1-100, default 20).","type":"integer"},"offset":{"default":0,"description":"Pagination offset (default 0).","type":"integer"}},"required":["paper_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_references","description":"Get papers referenced by a given paper.\n\nExplore a paper's bibliography — the works it cites. Useful for\nunderstanding a paper's foundations, finding seminal works in a field,\nand building reading lists from authoritative sources.\n\nArgs:\n    paper_id: Paper identifier in any supported format.\n    limit: Number of referenced papers to return (1-100, default 20).\n    offset: Pagination offset.\n\nReturns:\n    List of referenced papers with title, year, venue, authors, citationCount.","input_schema":{"additionalProperties":false,"properties":{"paper_id":{"description":"Paper identifier (S2 ID, DOI, ArXiv ID, or prefixed ID).","type":"string"},"limit":{"default":20,"description":"Number of referenced papers to return (1-100, default 20).","type":"integer"},"offset":{"default":0,"description":"Pagination offset (default 0).","type":"integer"}},"required":["paper_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_authors","description":"Search for academic authors by name.\n\nFind researchers by name and see their publication counts, citation counts,\nh-index, and institutional affiliations. Use authorId from results with\nget_author for detailed profiles.\n\nArgs:\n    query: Author name to search for.\n    limit: Number of results (1-100, default 10).\n\nReturns:\n    Authors with authorId, name, paperCount, citationCount, hIndex, affiliations.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Author name to search for (e.g. \"Yann LeCun\", \"Geoffrey Hinton\").","type":"string"},"limit":{"default":10,"description":"Number of results to return (1-100, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_author","description":"Get an author's profile by Semantic Scholar author ID.\n\nRetrieve detailed author information including paper count, citation count,\nh-index, and affiliations.\n\nArgs:\n    author_id: Numeric S2 author ID from search_authors results.\n\nReturns:\n    Author profile with name, paperCount, citationCount, hIndex, affiliations.","input_schema":{"additionalProperties":false,"properties":{"author_id":{"description":"Semantic Scholar author ID (numeric, e.g. \"1688882\").","type":"string"}},"required":["author_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"recommend_papers","description":"Get paper recommendations based on a seed paper.\n\nUses Semantic Scholar's recommendation engine to find related papers\nyou might want to read next. Useful for literature review, discovering\nadjacent research, and expanding knowledge in a topic area.\n\nArgs:\n    paper_id: Paper to get recommendations for.\n    limit: Number of recommendations (1-100, default 10).\n\nReturns:\n    Recommended papers similar to the seed paper.","input_schema":{"additionalProperties":false,"properties":{"paper_id":{"description":"Paper identifier (S2 ID, DOI, ArXiv ID, or prefixed ID) to get recommendations for.","type":"string"},"limit":{"default":10,"description":"Number of recommendations (1-100, default 10).","type":"integer"}},"required":["paper_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/noaa-tides","name":"NOAA Tides & Currents","description":"Tidal predictions, observed water levels, and coastal station meteorological data for U.S. coastlines.","category":"Environment","source":"NOAA CO-OPS Tides & Currents","endpoint":"/mcp/noaa-tides/","tools":[{"name":"get_tide_predictions","description":"Get tide predictions for a NOAA CO-OPS station.\n\nReturns predicted high/low tide times and heights, or water level predictions\nat regular intervals. Use 'hilo' interval for high/low tide times, or a numeric\ninterval for evenly-spaced predictions.\n\nArgs:\n    station: NOAA station identifier.\n    begin_date: Start date (yyyyMMdd).\n    end_date: End date (yyyyMMdd).\n    datum: Tidal datum reference level.\n    interval: Prediction granularity.\n    units: Measurement units.\n\nReturns:\n    Predictions with time, value (water level), and type (high/low if hilo).","input_schema":{"additionalProperties":false,"properties":{"station":{"description":"NOAA station ID (e.g. '9414290' for San Francisco, '8518750' for The Battery NYC).","type":"string"},"begin_date":{"description":"Start date in yyyyMMdd format (e.g. '20260320').","type":"string"},"end_date":{"description":"End date in yyyyMMdd format (e.g. '20260321'). Max 1 year for high/low.","type":"string"},"datum":{"default":"MLLW","description":"Tidal datum reference. Common: MLLW (default), MSL, NAVD, MHHW.","type":"string"},"interval":{"default":"hilo","description":"Prediction interval: 'hilo' for high/low only, 'h' for hourly, or minutes (1,5,6,10,15,30,60).","type":"string"},"units":{"default":"metric","description":"Units: 'metric' (meters, Celsius) or 'english' (feet, Fahrenheit).","type":"string"}},"required":["station","begin_date","end_date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_water_levels","description":"Get observed (actual) water level data from a NOAA tide station.\n\nReturns real-time or historical water level observations at 6-minute intervals.\nCompare with predictions to see storm surge, wind effects, or other anomalies.\n\nArgs:\n    station: NOAA station identifier.\n    begin_date: Start date (yyyyMMdd).\n    end_date: End date (yyyyMMdd).\n    datum: Tidal datum reference level.\n    units: Measurement units.\n\nReturns:\n    Observations with time, value (water level), sigma (std dev), and quality flag.","input_schema":{"additionalProperties":false,"properties":{"station":{"description":"NOAA station ID (e.g. '9414290' for San Francisco).","type":"string"},"begin_date":{"description":"Start date in yyyyMMdd format.","type":"string"},"end_date":{"description":"End date in yyyyMMdd format. Max 1 month for 6-minute data.","type":"string"},"datum":{"default":"MLLW","description":"Tidal datum reference. Common: MLLW (default), MSL, NAVD.","type":"string"},"units":{"default":"metric","description":"Units: 'metric' or 'english'.","type":"string"}},"required":["station","begin_date","end_date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_station_data","description":"Get meteorological observations from a NOAA coastal station.\n\nRetrieves current or recent readings for water temperature, air temperature,\nwind speed/direction, barometric pressure, and other environmental parameters.\n\nArgs:\n    station: NOAA station identifier.\n    product: Type of meteorological data.\n    date: Time filter.\n    units: Measurement units.\n\nReturns:\n    Readings with time and measured values (varies by product).","input_schema":{"additionalProperties":false,"properties":{"station":{"description":"NOAA station ID (e.g. '9414290').","type":"string"},"product":{"description":"Data product: 'water_temperature', 'air_temperature', 'wind', 'air_pressure', 'humidity'.","type":"string"},"date":{"default":"latest","description":"Date filter: 'latest' for most recent, 'today', 'recent' (last 72h).","type":"string"},"units":{"default":"metric","description":"Units: 'metric' or 'english'.","type":"string"}},"required":["station","product"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_stations","description":"Search for NOAA tide prediction stations.\n\nFind stations by US state. Returns station IDs, names, and coordinates\nthat can be used with other tide tools.\n\nArgs:\n    state: US state abbreviation to filter by.\n    max_results: Maximum results.\n\nReturns:\n    List of stations with id, name, state, latitude, longitude.","input_schema":{"additionalProperties":false,"properties":{"state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by US state abbreviation (e.g. 'CA', 'NY', 'FL')."},"max_results":{"default":50,"description":"Maximum number of stations to return (1-500).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/faostat","name":"FAOSTAT (FAO Food & Agriculture)","description":"FAO food and agriculture statistics — crop production, livestock, trade, prices, food security, land use, fertilizers, and emissions data for 193+ countries from 1961 to present.","category":"Economics","source":"FAOSTAT API","endpoint":"/mcp/faostat/","tools":[{"name":"search_datasets","description":"Search the FAOSTAT dataset catalog by keyword.\n\nSearch across all FAO domains for datasets matching your query.\nFAOSTAT covers crop production, livestock, trade, prices, food\nsecurity, land use, fertilizers, emissions, and more for 193+ countries.\n\nArgs:\n    query: Search term (e.g. \"wheat\", \"rice\", \"food prices\").\n    limit: Number of results to return (1-50, default 20).\n\nReturns:\n    Matching datasets with domain codes needed for get_data calls.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search term for FAOSTAT datasets (e.g. \"wheat\", \"rice production\", \"food prices\", \"fertilizer\", \"livestock\").","type":"string"},"limit":{"default":20,"description":"Number of results to return (1-50, default 20).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_datasets","description":"List available FAOSTAT dataset groups and domains.\n\nBrowse the full FAOSTAT catalog organized by topic group. Use this\nto discover available domains before querying data. Key groups:\nProduction (QCL, QI, QV), Trade (TCL, TM), Prices (PP, CP),\nFood Security (FS), Food Balances (FBS), Emissions (GT, GCE).\n\nArgs:\n    group: Optional group name filter. Omit to list all datasets.\n    limit: Maximum datasets to return (1-200, default 50).\n\nReturns:\n    List of datasets with group and domain codes.","input_schema":{"additionalProperties":false,"properties":{"group":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional group filter (e.g. \"Production\", \"Trade\", \"Prices\", \"Food Security\", \"Emissions\"). Omit to list all."},"limit":{"default":50,"description":"Maximum datasets to return (1-200, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_domain_dimensions","description":"Get available dimensions and filter options for a FAOSTAT domain.\n\nShows what filters (area, element, item, year) are available for\na dataset, so you know what parameters to pass to get_data.\nUse get_dimension_codes to see the valid values for each dimension.\n\nArgs:\n    domain: FAOSTAT domain code from list_datasets.\n\nReturns:\n    List of dimensions with IDs and labels.","input_schema":{"additionalProperties":false,"properties":{"domain":{"description":"FAOSTAT domain code (e.g. \"QCL\" for crops, \"TCL\" for trade, \"PP\" for prices, \"FS\" for food security). Use list_datasets to find codes.","type":"string"}},"required":["domain"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_dimension_codes","description":"Get valid codes for a specific dimension of a FAOSTAT domain.\n\nLook up what area codes, element codes, item codes, or year values\nare valid for a domain. Use these codes in get_data filters.\n\nCommon area codes: 231 (USA), 351 (China), 100 (India), 5000 (World).\nCommon element codes vary by domain (e.g. 2510=Production quantity).\n\nArgs:\n    domain: FAOSTAT domain code.\n    dimension: Dimension name (area, element, item, year, etc.).\n    limit: Maximum codes to return (1-500, default 100).\n\nReturns:\n    List of valid codes with labels and descriptions.","input_schema":{"additionalProperties":false,"properties":{"domain":{"description":"FAOSTAT domain code (e.g. \"QCL\", \"TCL\", \"PP\").","type":"string"},"dimension":{"description":"Dimension name (e.g. \"area\" for countries, \"element\" for indicators, \"item\" for commodities, \"year\" for time periods).","type":"string"},"limit":{"default":100,"description":"Maximum codes to return (1-500, default 100).","type":"integer"}},"required":["domain","dimension"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_data","description":"Fetch data from a FAOSTAT domain.\n\nQuery any FAOSTAT dataset filtered by area (country/region),\nelement (indicator), item (commodity), and year. Covers production,\ntrade, prices, food security, land use, emissions, and more\nfor 193+ countries from 1961 to present.\n\nArgs:\n    domain: FAOSTAT domain code. Use list_datasets to find codes.\n    areas: FAO area codes. Omit for all areas.\n    elements: Element codes for indicator type.\n    items: Item codes for commodities.\n    years: Year values.\n    area_cs: Area coding system (M49, FAO, ISO2, ISO3).\n    limit: Maximum records to return (1-2000, default 500).\n\nReturns:\n    Data records with area, element, item, year, value, unit, and flags.","input_schema":{"additionalProperties":false,"properties":{"domain":{"description":"FAOSTAT domain code (e.g. \"QCL\" for crops/livestock, \"TCL\" for trade, \"PP\" for producer prices, \"FS\" for food security, \"FBS\" for food balances). Use list_datasets to find codes.","type":"string"},"areas":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"FAO area codes (e.g. [\"231\", \"351\", \"5000\"] for USA, China, World). Use get_dimension_codes to find codes. Omit for all areas."},"elements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Element codes for the indicator type (e.g. [\"2510\"] for production quantity, [\"2610\"] for import quantity). Use get_dimension_codes to find valid codes."},"items":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Item codes for commodities (e.g. [\"15\"] for wheat, [\"27\"] for rice). Use get_dimension_codes to find valid codes."},"years":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Year values (e.g. [\"2020\", \"2021\", \"2022\"]). Omit for all available years."},"area_cs":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Area coding system: \"M49\" (default), \"FAO\", \"ISO2\", or \"ISO3\"."},"limit":{"default":500,"description":"Maximum records to return (1-2000, default 500).","type":"integer"}},"required":["domain"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"compare_countries","description":"Compare data across countries/regions for a FAOSTAT domain.\n\nFetches the same indicator for multiple areas side by side.\nUseful for cross-country analysis of production, trade volumes,\nfood prices, food security metrics, and more.\n\nArgs:\n    domain: FAOSTAT domain code.\n    area_codes: FAO area codes to compare. Maximum 20.\n    elements: Element codes to filter by.\n    items: Item codes to filter by.\n    years: Year values to filter by.\n    area_cs: Area coding system.\n\nReturns:\n    Data grouped by area for easy comparison.","input_schema":{"additionalProperties":false,"properties":{"domain":{"description":"FAOSTAT domain code (e.g. \"QCL\", \"FS\", \"PP\").","type":"string"},"area_codes":{"description":"FAO area codes to compare (e.g. [\"231\", \"351\", \"100\"] for USA, China, India). Maximum 20.","items":{"type":"string"},"type":"array"},"elements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Element codes to filter by."},"items":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Item codes to filter by."},"years":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Year values to filter by."},"area_cs":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Area coding system: \"M49\", \"FAO\", \"ISO2\", or \"ISO3\"."}},"required":["domain","area_codes"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/opensky","name":"OpenSky Network (Aircraft Tracking)","description":"Live aircraft tracking via ADS-B — real-time positions, flight trajectories, and aircraft search. Covers global airspace with position, altitude, speed, heading, and callsign data.","category":"Transport","source":"OpenSky Network API","endpoint":"/mcp/opensky/","tools":[{"name":"get_aircraft_states","description":"Get live aircraft positions from the OpenSky Network.\n\nReturns real-time ADS-B state vectors for aircraft currently in\nthe air. Filter by geographic bounding box or specific ICAO24\ntransponder addresses. Data includes position, altitude, speed,\nheading, and country of origin.\n\nTip: Use a bounding box to focus on a region (e.g. lamin=40,\nlamax=50, lomin=-5, lomax=10 for Western Europe).\n\nArgs:\n    lamin: Lower latitude bound. All 4 bbox params required together.\n    lamax: Upper latitude bound.\n    lomin: Lower longitude bound.\n    lomax: Upper longitude bound.\n    icao24: ICAO24 hex addresses to filter by. Max 10.\n    limit: Maximum aircraft to return (1-2000, default 200).\n\nReturns:\n    Live aircraft with position, altitude, speed, heading, callsign.","input_schema":{"additionalProperties":false,"properties":{"lamin":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Lower latitude bound (WGS-84 degrees, e.g. 45.0). All four bbox params required together."},"lamax":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Upper latitude bound (e.g. 50.0)."},"lomin":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Lower longitude bound (e.g. -5.0)."},"lomax":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Upper longitude bound (e.g. 5.0)."},"icao24":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"ICAO24 hex addresses to filter (e.g. [\"3c6444\", \"a1b2c3\"]). Max 10."},"limit":{"default":200,"description":"Maximum aircraft to return (1-2000, default 200).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_flight_track","description":"Get the flight trajectory (waypoints) for an aircraft.\n\nReturns the path an aircraft has taken, with latitude, longitude,\naltitude, and heading at each waypoint. Use time_value=0 for the\ncurrent live track, or a specific Unix timestamp for a historical\nflight (up to 30 days back).\n\nArgs:\n    icao24: ICAO24 hex address (6 hex characters, e.g. \"3c6444\").\n    time_value: Unix timestamp within the flight. 0 for live track.\n\nReturns:\n    Flight path with callsign, start/end times, and waypoints\n    (time, lat, lon, altitude, heading, on_ground).","input_schema":{"additionalProperties":false,"properties":{"icao24":{"description":"ICAO24 hex address of the aircraft (e.g. \"3c6444\"). Use search_aircraft to find addresses.","type":"string"},"time_value":{"default":0,"description":"Unix timestamp within the flight. Use 0 for current/live track.","type":"integer"}},"required":["icao24"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_aircraft","description":"Search for a specific aircraft by ICAO24 address or callsign.\n\nTwo search modes:\n- By ICAO24: directly queries for the aircraft (no bbox needed).\n- By callsign: searches within a bounding box region and filters\n  by callsign match. Bounding box is required for callsign search.\n\nArgs:\n    icao24: ICAO24 hex address to look up directly.\n    callsign: Callsign to search for (requires bounding box).\n    lamin: Lower latitude bound (for callsign search).\n    lamax: Upper latitude bound.\n    lomin: Lower longitude bound.\n    lomax: Upper longitude bound.\n    limit: Maximum results (1-200, default 50).\n\nReturns:\n    Matching aircraft with position, altitude, speed, heading.","input_schema":{"additionalProperties":false,"properties":{"icao24":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ICAO24 hex address to look up (e.g. \"3c6444\"). Directly queries the aircraft."},"callsign":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Callsign to search for (e.g. \"DLH9MT\", \"RYR1234\"). Requires bounding box."},"lamin":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Lower latitude bound (required for callsign search)."},"lamax":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Upper latitude bound."},"lomin":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Lower longitude bound."},"lomax":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Upper longitude bound."},"limit":{"default":50,"description":"Maximum results (1-200, default 50).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nonprofits","name":"US Nonprofits (IRS 990)","description":"Search 1.6M+ US nonprofits and access IRS 990 financial filings — revenue, expenses, assets, compensation, and tax-exempt status.","category":"Government","source":"ProPublica Nonprofit Explorer API","endpoint":"/mcp/nonprofits/","tools":[{"name":"search_nonprofits","description":"Search 1.6M+ IRS-registered US nonprofit organizations.\n\nFind nonprofits by name, location, category (NTEE code), or tax-exempt type.\nReturns basic info: EIN, name, city, state, NTEE code, and tax-exempt subsection.\n\nExamples:\n    search_nonprofits(\"hospital\", state=\"NY\") → New York hospitals\n    search_nonprofits(\"climate\", ntee=3) → Environmental nonprofits about climate\n    search_nonprofits(\"ProPublica\") → Find a specific organization\n\nReturns:\n    total_results, page, num_pages, organizations (list of matches).","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — name, city, or keyword. Example: 'red cross'.","type":"string"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter US state code. Example: 'CA'."},"ntee":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"NTEE major group: 1=Arts, 2=Education, 3=Environment, 4=Health, 5=Human Services, 6=International, 7=Public Benefit, 8=Religion, 9=Mutual Benefit, 10=Unknown."},"c_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"501(c) subsection code. Use 3 for 501(c)(3) charitable orgs."},"page":{"default":0,"description":"Page number (0-indexed, 25 results per page).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_nonprofit","description":"Get detailed information and IRS 990 financial filings for a US nonprofit.\n\nReturns organization details (address, NTEE code, ruling date, income, assets)\nplus parsed financial data from all available Form 990/990-EZ/990-PF filings:\nrevenue, expenses, assets, liabilities, compensation, and more.\n\nExamples:\n    get_nonprofit(\"14-2007220\") → ProPublica Inc financials\n    get_nonprofit(\"530196605\") → American Red Cross\n\nReturns:\n    Organization details and list of filings with key financial fields.","input_schema":{"additionalProperties":false,"properties":{"ein":{"description":"Employer Identification Number. Example: '14-2007220' or '142007220'.","type":"string"}},"required":["ein"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/offshore-leaks","name":"ICIJ Offshore Leaks","description":"Search the ICIJ Offshore Leaks Database — Panama Papers, Paradise Papers, Pandora Papers. 800K+ offshore entities, officers, intermediaries, and addresses from leaked financial documents.","category":"Legal","source":"ICIJ Offshore Leaks Database (Reconciliation API)","endpoint":"/mcp/offshore-leaks/","tools":[{"name":"search_offshore_leaks","description":"Search the ICIJ Offshore Leaks Database for entities, officers, and intermediaries.\n\nCovers data from Panama Papers, Paradise Papers, Pandora Papers, Offshore Leaks,\nand Bahamas Leaks — over 800,000 offshore entities, their officers, and intermediaries.\n\nUse this to investigate offshore company structures, identify connected parties,\nor verify entities appearing in leaked financial documents.\n\nExamples:\n    search_offshore_leaks(\"Mossack Fonseca\") → Entities matching the law firm\n    search_offshore_leaks(\"Smith\", node_type=\"Officer\", country=\"GB\") → UK-linked officers\n    search_offshore_leaks(\"trust\", source=\"pandora-papers\") → Trusts in Pandora Papers\n\nReturns:\n    List of matches with node_id, name, type, description, and match score.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — name of entity, person, or intermediary. Example: 'Mossack Fonseca'.","type":"string"},"node_type":{"default":"Entity","description":"Node type to search: Entity (companies/trusts), Officer (directors/shareholders), Address, Intermediary (law firms/agents), Other, Node (all).","type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code filter. Example: 'PA' for Panama, 'VGB' for British Virgin Islands."},"source":{"default":"all","description":"Investigation to search: all, panama-papers, paradise-papers, pandora-papers, offshore-leaks, bahamas-leaks.","type":"string"},"limit":{"default":10,"description":"Max results (1-25).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_offshore_entity","description":"Get detailed properties for an offshore leaks node by ID.\n\nReturns structured data including name, country, jurisdiction, status,\nincorporation/dissolution dates, data source, and related notes.\nEntity nodes include additional fields like IBC/RUC numbers.\n\nUse node_ids from search_offshore_leaks results.\n\nReturns:\n    Detailed node properties including data source investigation name.","input_schema":{"additionalProperties":false,"properties":{"node_id":{"description":"Node ID from a search result. Example: '10022201'.","type":"string"},"node_type":{"default":"Entity","description":"Node type: Entity, Officer, Address, Intermediary, Other.","type":"string"}},"required":["node_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/thesportsdb","name":"TheSportsDB (Sports Data)","description":"Sports data — leagues, teams, players, events, and standings from TheSportsDB.","category":"Entertainment","source":"TheSportsDB (thesportsdb.com)","endpoint":"/mcp/thesportsdb/","tools":[{"name":"search_teams","description":"Search for sports teams by name across all sports.\n\nReturns matching teams with basic info including sport, league, country,\nand stadium. Use the returned team ID with get_team, get_last_events,\nor get_next_events.\n\nExamples:\n    search_teams(\"Arsenal\") -> Arsenal FC, Arsenal de Sarandi, etc.\n    search_teams(\"Real Madrid\") -> Real Madrid CF","input_schema":{"additionalProperties":false,"properties":{"team_name":{"description":"Team name to search for (e.g. 'Arsenal', 'Barcelona', 'Lakers').","type":"string"}},"required":["team_name"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_team","description":"Get detailed information for a specific team by its ID.\n\nReturns full team profile including stadium details, description, badge URL,\njersey image, website, and league information.\n\nUse search_teams first to find the team ID.","input_schema":{"additionalProperties":false,"properties":{"team_id":{"description":"Numeric team ID from TheSportsDB (e.g. '133604' for Arsenal).","type":"string"}},"required":["team_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_players","description":"Search for players by team name and/or player name.\n\nAt least one of team_name or player_name must be provided. Returns player\nprofiles including nationality, position, height, weight, and biography.\n\nExamples:\n    search_players(player_name=\"Messi\") -> Lionel Messi\n    search_players(team_name=\"Arsenal\", player_name=\"Saka\") -> Bukayo Saka","input_schema":{"additionalProperties":false,"properties":{"team_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Team name to filter players by (e.g. 'Arsenal')."},"player_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Player name to search for (e.g. 'Messi', 'LeBron')."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_league_table","description":"Get league standings/table for a given league and season.\n\nReturns the complete standings with points, wins, draws, losses,\ngoals for/against, and goal difference for each team.\n\nCommon league IDs: 4328 (EPL), 4335 (La Liga), 4331 (Bundesliga),\n4332 (Serie A), 4334 (Ligue 1).","input_schema":{"additionalProperties":false,"properties":{"league_id":{"description":"Numeric league ID (e.g. '4328' for English Premier League).","type":"string"},"season":{"description":"Season in YYYY or YYYY-YYYY format (e.g. '2024-2025').","type":"string"}},"required":["league_id","season"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_events_by_date","description":"Get sporting events scheduled for a specific date.\n\nReturns events with home/away teams, scores (if completed), venue,\nand status. Optionally filter by sport.\n\nExamples:\n    get_events_by_date(\"2025-03-15\") -> all sports events on that date\n    get_events_by_date(\"2025-03-15\", sport=\"Soccer\") -> only soccer matches","input_schema":{"additionalProperties":false,"properties":{"date":{"description":"Date in YYYY-MM-DD format (e.g. '2025-03-15').","type":"string"},"sport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Sport filter (e.g. 'Soccer', 'Basketball', 'Ice Hockey'). Omit for all sports."}},"required":["date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_last_events","description":"Get the last 5 completed events for a team.\n\nReturns recent match results including scores, opponents, venue, and date.\nUseful for checking recent form.","input_schema":{"additionalProperties":false,"properties":{"team_id":{"description":"Numeric team ID (e.g. '133604' for Arsenal). Use search_teams to find it.","type":"string"}},"required":["team_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_next_events","description":"Get the next 5 upcoming events for a team.\n\nReturns scheduled fixtures with opponents, date, time, and venue.\nUseful for checking upcoming matches.","input_schema":{"additionalProperties":false,"properties":{"team_id":{"description":"Numeric team ID (e.g. '133604' for Arsenal). Use search_teams to find it.","type":"string"}},"required":["team_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/flights","name":"Flight Search","description":"Multi-source flight search — currently Amadeus GDS, with Kiwi, SAS EuroBonus, and Seats.aero planned.","category":"Transport","source":"Amadeus GDS","endpoint":"/mcp/flights/","tools":[{"name":"search_flights","description":"Search for flights across multiple data sources.\n\nQueries the Amadeus GDS API. Additional sources (Kiwi, SAS EuroBonus,\nSeats.aero) are planned. Results are sorted by price or points depending\non mode.\n\nExamples:\n    search_flights(origin=\"OSL\", destination=\"JFK\", departure_date=\"2026-06-15\")\n    search_flights(origin=\"OSL\", destination=\"JFK\", departure_date=\"2026-06-15\", return_date=\"2026-06-22\", cabin_class=\"business\")\n    search_flights(origin=\"OSL\", destination=\"JFK\", departure_date=\"2026-06-15\", mode=\"award\")","input_schema":{"additionalProperties":false,"properties":{"origin":{"description":"Origin IATA airport code (e.g. 'OSL').","type":"string"},"destination":{"description":"Destination IATA airport code (e.g. 'JFK').","type":"string"},"departure_date":{"description":"Departure date (YYYY-MM-DD).","type":"string"},"return_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Return date for round-trip (YYYY-MM-DD). Omit for one-way."},"adults":{"default":1,"description":"Number of adult passengers.","type":"integer"},"cabin_class":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Cabin class: economy, premium_economy, business, or first."},"mode":{"default":"all","description":"Search mode: 'revenue' (paid flights), 'award' (points/miles), or 'all'.","type":"string"},"max_results":{"default":20,"description":"Maximum number of results to return.","type":"integer"}},"required":["origin","destination","departure_date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_award_flights","description":"Search specifically for award flights (points/miles redemptions).\n\nQueries for award flights (points/miles). Currently uses Amadeus;\nSAS EuroBonus and Seats.aero are planned. Results are sorted by points cost.\n\nExamples:\n    search_award_flights(origin=\"OSL\", destination=\"JFK\", departure_date=\"2026-06-15\")\n    search_award_flights(origin=\"OSL\", destination=\"LAX\", departure_date=\"2026-07-01\", cabin_class=\"business\")","input_schema":{"additionalProperties":false,"properties":{"origin":{"description":"Origin IATA airport code (e.g. 'OSL').","type":"string"},"destination":{"description":"Destination IATA airport code (e.g. 'JFK').","type":"string"},"departure_date":{"description":"Departure date (YYYY-MM-DD).","type":"string"},"return_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Return date for round-trip (YYYY-MM-DD). Omit for one-way."},"adults":{"default":1,"description":"Number of adult passengers.","type":"integer"},"cabin_class":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Cabin class: economy, premium_economy, business, or first."},"max_results":{"default":10,"description":"Maximum number of results to return.","type":"integer"}},"required":["origin","destination","departure_date"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_flight_sources","description":"List all registered flight data sources and their status.\n\nShows which sources are available, what modes they support (revenue/award),\nand whether they are currently enabled.\n\nExamples:\n    list_flight_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"sas_awards_search","description":"Search for SAS EuroBonus award seat availability on routes from Oslo to North America.\n\nChecks Business and Premium Economy award seats on SAS flights. This is a\nslow tool (15-90 seconds depending on destination count) as it queries each\ndestination sequentially.\n\nExamples:\n    sas_awards_search()\n    sas_awards_search(destinations=[\"MIA\", \"LAX\"], priority_only=True)\n    sas_awards_search(passengers=2, max_stay_days=14)","input_schema":{"additionalProperties":false,"properties":{"destinations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"IATA codes to check (e.g. ['MIA', 'LAX']). Omit to check all 11 configured destinations."},"passengers":{"default":3,"description":"Number of seats required on both legs.","type":"integer"},"min_stay_days":{"default":2,"description":"Minimum stay duration in days.","type":"integer"},"max_stay_days":{"default":10,"description":"Maximum stay duration in days.","type":"integer"},"priority_only":{"default":false,"description":"Return only results for priority destinations (MIA, LAX).","type":"boolean"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"sas_awards_list_destinations","description":"List all configured SAS EuroBonus award search destinations.\n\nShows destination codes, names, cabin class rules, and priority flags.\n\nExamples:\n    sas_awards_list_destinations()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"sas_awards_get_config","description":"Return the current SAS EuroBonus search configuration.\n\nShows origin, default passenger count, stay ranges, and lookahead window.\n\nExamples:\n    sas_awards_get_config()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nvd","name":"NVD (National Vulnerability Database)","description":"Search the NIST National Vulnerability Database — CVE records with CVSS scores, CWE weaknesses, advisory references, affected products, and change history. 250K+ vulnerabilities from 1999 to present.","category":"Security","source":"NIST NVD 2.0 API (nvd.nist.gov)","endpoint":"/mcp/nvd/","tools":[{"name":"search_cves","description":"Search the NIST National Vulnerability Database for CVEs.\n\nQuery CVE records by keyword, severity, date range, or affected product.\nReturns vulnerability details including CVSS scores, CWE weaknesses,\nreferences, and affected products (CPE names).\n\nArgs:\n    keyword: Keyword to search in CVE descriptions.\n    cve_id: Specific CVE ID for exact match lookup.\n    severity: CVSS v3 severity filter: LOW, MEDIUM, HIGH, or CRITICAL.\n    pub_start_date: Filter CVEs published after this date (ISO 8601).\n    pub_end_date: Filter CVEs published before this date (ISO 8601).\n    cpe_name: CPE match string for affected product.\n    results_per_page: Maximum results (1-50, default 10).\n\nReturns:\n    Dict with 'source', 'count', 'total_results', and 'cves' list.\n    Each CVE includes id, description, CVSS scores, CWEs, and references.","input_schema":{"additionalProperties":false,"properties":{"keyword":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Keyword to search CVE descriptions (e.g. \"buffer overflow\", \"SQL injection\")."},"cve_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Specific CVE ID (e.g. \"CVE-2024-0001\"). Returns exact match."},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"CVSS v3 severity: \"LOW\", \"MEDIUM\", \"HIGH\", or \"CRITICAL\"."},"pub_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start of publication date range (ISO 8601, e.g. \"2024-01-01T00:00:00.000\")."},"pub_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End of publication date range (ISO 8601, e.g. \"2024-12-31T23:59:59.999\")."},"cpe_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"CPE match string for affected product (e.g. \"cpe:2.3:a:apache:log4j:*:*:*:*:*:*:*:*\")."},"results_per_page":{"default":10,"description":"Maximum results to return (1-50, default 10).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_cve","description":"Get full details for a specific CVE from the National Vulnerability Database.\n\nReturns complete vulnerability information including CVSS scores from\nmultiple sources, CWE weakness classifications, advisory references,\nand affected product CPE names.\n\nArgs:\n    cve_id: CVE identifier (e.g. \"CVE-2021-44228\" for Log4Shell).\n\nReturns:\n    Dict with 'source' and 'cve' containing full vulnerability details,\n    or 'cve': None if the CVE ID is not found.","input_schema":{"additionalProperties":false,"properties":{"cve_id":{"description":"CVE identifier (e.g. \"CVE-2024-0001\", \"CVE-2021-44228\").","type":"string"}},"required":["cve_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_cve_history","description":"Get the change history for a specific CVE.\n\nShows how a CVE record has been modified over time, including initial\nanalysis, score changes, reference additions, and status updates.\nUseful for tracking how vulnerability assessments evolved.\n\nArgs:\n    cve_id: CVE identifier (e.g. \"CVE-2021-44228\").\n\nReturns:\n    Dict with 'source', 'count', and 'history' list. Each entry includes\n    event name, creation date, source, and change details.","input_schema":{"additionalProperties":false,"properties":{"cve_id":{"description":"CVE identifier (e.g. \"CVE-2024-0001\").","type":"string"}},"required":["cve_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/nve-flood","name":"NVE Flood Warnings (Norway)","description":"Norwegian flood warnings from NVE — current county-level risk assessments, regional details with municipalities, and detailed flood warnings with severity levels (green/yellow/orange/red).","category":"Environment","source":"NVE (Norwegian Water Resources and Energy Directorate)","endpoint":"/mcp/nve-flood/","tools":[{"name":"get_county_overview","description":"Get current flood warning levels for all Norwegian counties.\n\nReturns a summary of flood risk across Norway with activity levels\n(1=green/safe, 2=yellow/moderate, 3=orange/significant, 4=red/extreme).\nUse this to quickly check if any part of Norway has elevated flood risk.\n\nReturns:\n    County list with activity levels, plus count of counties with elevated warnings.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_region_details","description":"Get municipalities and active warnings for a Norwegian county.\n\nDrill down into a specific county to see which municipalities are affected\nand what warnings are active.\n\nReturns:\n    Region details with municipality list and any active warnings.","input_schema":{"additionalProperties":false,"properties":{"county_id":{"description":"Norwegian county ID (e.g. '03' for Oslo, '46' for Vestland, '50' for Trøndelag).","type":"string"}},"required":["county_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_flood_warnings","description":"Get flood warnings for Norway, optionally filtered by county or municipality.\n\nReturns detailed flood warnings from the Norwegian Water Resources and Energy\nDirectorate (NVE). Warnings include activity level, affected areas, and\ndescriptive text explaining the flood risk.\n\nActivity levels: 1=green (safe), 2=yellow (moderate), 3=orange (significant), 4=red (extreme).\n\nReturns:\n    List of flood warnings with severity, affected areas, and validity period.","input_schema":{"additionalProperties":false,"properties":{"county_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by county ID (e.g. '46' for Vestland). Omit for all of Norway."},"municipality_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by municipality ID (e.g. '0301' for Oslo). Overrides county_id if set."},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date in YYYY-MM-DD format. Defaults to today."},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date in YYYY-MM-DD format. Defaults to 3 days from today."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/ted","name":"TED (EU/EEA Public Procurement)","description":"EU/EEA public procurement notices from TED (Tenders Electronic Daily) — search tenders, contract notices, awards, and modifications across all EU/EEA member states including Norway.","category":"Government","source":"TED (Tenders Electronic Daily) — Publications Office of the EU","endpoint":"/mcp/ted/","tools":[{"name":"search_notices","description":"Search EU/EEA public procurement notices on TED (Tenders Electronic Daily).\n\nCovers all EU/EEA member states including Norway, Iceland, and Liechtenstein.\nIncludes contract notices, awards, prior information notices, and modifications\nfor procurement above EU threshold values.\n\nAt least one filter parameter is required. Combine filters to narrow results\n(e.g. country='NOR' + cpv_code='72000000' for Norwegian IT procurement).\n\nReturns:\n    Paginated list of procurement notices with title, buyer, deadline, estimated\n    value, CPV codes, and TED URL. Use publication_number with get_notice for\n    full details including lot descriptions and award information.","input_schema":{"additionalProperties":false,"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free text search across notice titles and descriptions (e.g. \"software\", \"construction\", \"consulting\")."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by buyer country using 3-letter ISO code (e.g. 'NOR' for Norway, 'DEU' for Germany, 'FRA' for France, 'SWE' for Sweden)."},"cpv_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by CPV (Common Procurement Vocabulary) code — 8-digit EU classification (e.g. '72000000' for IT services, '45000000' for construction)."},"published_after":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter notices published on or after this date (YYYY-MM-DD or YYYYMMDD)."},"published_before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter notices published on or before this date (YYYY-MM-DD or YYYYMMDD)."},"notice_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by notice type: 'cn-standard' (contract notice), 'can-standard' (contract award), 'pin-only' (prior information), 'can-modif' (modification), 'veat' (voluntary transparency), 'corr' (corrigendum)."},"procedure_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by procedure: 'open', 'restricted', 'neg-w-call' (negotiated with call), 'neg-wo-call' (negotiated without call), 'comp-dial' (competitive dialogue), 'innovation'."},"page":{"default":1,"description":"Page number (default 1).","type":"integer"},"page_size":{"default":20,"description":"Results per page (1-50, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_notice","description":"Get detailed information about a specific TED procurement notice.\n\nReturns the full notice including lot-level descriptions, buyer identity,\naward winners, contract values, and links to the official TED page.\n\nReturns:\n    Detailed notice with buyer, lots, winners, values, and dates.\n    Returns found=false if the publication number is not found.","input_schema":{"additionalProperties":false,"properties":{"publication_number":{"description":"TED publication number in format NNNN-YYYY (e.g. \"555-2026\", \"96926-2016\"). Found in search results.","type":"string"}},"required":["publication_number"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/doffin","name":"Doffin (Norwegian Public Procurement)","description":"Norwegian public procurement notices from Doffin — search tenders, contract awards, and planning notices across all Norwegian public sector buyers.","category":"Government","source":"Doffin (DFØ — Direktoratet for forvaltning og økonomistyring)","endpoint":"/mcp/doffin/","tools":[{"name":"search_notices","description":"Search Norwegian public procurement notices on Doffin (doffin.no).\n\nDoffin is Norway's national database for public procurement (offentlige anskaffelser).\nCovers all Norwegian public tenders — both below and above EU/EEA threshold values.\nIncludes municipalities, county authorities, state agencies, and public enterprises.\n\nAt least one filter parameter is required. Combine filters to narrow results\n(e.g. text='IKT' + location='NO03' for IT procurement in Oslo).\n\nReturns:\n    Paginated list of procurement notices with heading, buyer, deadline, estimated\n    value, CPV codes, and Doffin URL. Use the notice ID with get_notice for\n    full details including buyer address, procedure type, and award information.","input_schema":{"additionalProperties":false,"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free text search across notice titles and descriptions (e.g. \"IKT\", \"rådgivning\", \"konsulentbistand\", \"veibygging\")."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by notice status: 'ACTIVE' (open for bids), 'EXPIRED' (deadline passed), 'AWARDED' (contract awarded), 'CANCELLED'."},"notice_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by notice type: 'COMPETITION' (open tender), 'RESULT' (award notice), 'PLANNING' (prior information), 'MODIFICATION', 'CORRIGENDUM'."},"cpv_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by CPV (Common Procurement Vocabulary) code — 8-digit EU classification (e.g. '72000000' for IT services, '45000000' for construction)."},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by Norwegian NUTS region code: 'NO03' (Oslo), 'NO08' (Vestland), 'NO0A' (Trøndelag), 'NO07' (Vestfold og Telemark), etc."},"page":{"default":1,"description":"Page number, 1-based (default 1).","type":"integer"},"page_size":{"default":20,"description":"Results per page (1-50, default 20).","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_notice","description":"Get detailed information about a specific Doffin procurement notice.\n\nReturns the full notice including buyer details (name, org number, address),\nprocedure type, competition documents URL, award information, and whether\nthe notice was also published on TED (EU procurement).\n\nReturns:\n    Detailed notice with buyer, procedure, value, and award information.\n    Returns found=false if the notice ID is not found.","input_schema":{"additionalProperties":false,"properties":{"notice_id":{"description":"Doffin notice ID in format YYYY-NNNNNN (e.g. \"2026-105515\"). Found in search results.","type":"string"}},"required":["notice_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_doffin_changes","description":"Get recent changes to Norwegian public procurement tenders from Doffin.\n\nReturns field-level diffs (before/after values) for tenders whose data\nchanged between periodic snapshot cycles. The system monitors active,\nawarded, and cancelled tenders every 6 hours.\n\nTracks: deadline changes, status transitions (active→awarded/cancelled),\nestimated value updates, heading/description changes.\n\nArgs:\n    since: ISO 8601 timestamp — return changes captured after this time.\n    limit: Maximum number of changes to return (1–100, default 50).\n\nReturns:\n    Object with count and list of change records, each containing\n    entity_id (notice ID), changed_at timestamp, and a list of\n    field changes with before/after values.","input_schema":{"additionalProperties":false,"properties":{"since":{"description":"ISO 8601 timestamp — return changes captured after this time (e.g. \"2026-04-01T00:00:00Z\").","type":"string"},"limit":{"default":50,"description":"Maximum number of changes to return (1–100, default 50).","maximum":100,"minimum":1,"type":"integer"}},"required":["since"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/skipsregisteret","name":"Skipsregisteret (Norwegian Ship Registry)","description":"Search Norwegian Ship Registers (NIS/NOR/BYGG) — vessel lookup, ownership, technical specs, and reserved names from the Norwegian Maritime Authority (Sjøfartsdirektoratet).","category":"Government","source":"Sjøfartsdirektoratet (Norwegian Maritime Authority)","endpoint":"/mcp/skipsregisteret/","tools":[{"name":"search_vessels","description":"Search Norwegian ship registers (NIS and NOR) for vessels.\n\nNIS (Norwegian International Ship Register) covers ships in international trade.\nNOR (Norwegian Ordinary Ship Register) covers ships in domestic and short-sea trade.\n\nReturns matching vessels with name, call sign, IMO number, registration status,\nand owner information. Use get_vessel_details with the vessel_id for full details\nincluding technical specifications, construction data, and document history.","input_schema":{"additionalProperties":false,"properties":{"text":{"description":"Search text — vessel name, call sign, or IMO number (e.g. \"VIKING VISION\", \"LNXF\", \"8907034\").","type":"string"},"language":{"default":"en","description":"Response language: 'en' (English) or 'no' (Norwegian). Default: 'en'.","type":"string"}},"required":["text"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_vessel_details","description":"Get full details for a Norwegian-registered vessel.\n\nCombines vessel registration data and technical specifications into a single\nresponse. Includes ownership, home port, construction info, bareboat status,\ndocument history, and technical specs (dimensions, tonnage, vessel type,\nbuild material, propulsion, and classification society).\n\nUse search_vessels first to find the vessel_id.","input_schema":{"additionalProperties":false,"properties":{"vessel_id":{"description":"Vessel ID from search results (e.g. 30054). A positive integer.","type":"integer"}},"required":["vessel_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_reserved_names","description":"Check reserved vessel names in Norwegian ship registers (NIS/NOR).\n\nReserved names are vessel names that have been claimed but may not yet be\nin active use. Useful for checking name availability before registering a vessel.\n\nReturns matching reserved names with their register (NIS or NOR).","input_schema":{"additionalProperties":false,"properties":{"text":{"description":"Search text for reserved vessel names (e.g. \"VIKING\", \"POLARIS\").","type":"string"},"language":{"default":"en","description":"Response language: 'en' (English) or 'no' (Norwegian). Default: 'en'.","type":"string"}},"required":["text"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/interaksjoner","name":"Interaksjoner (Norwegian Drug Interactions)","description":"Norwegian drug interaction checker — check interactions between medications using FEST data from DMP (Direktoratet for medisinske produkter). Look up trade names by ATC code.","category":"Health","source":"interaksjoner.no (DIPS ASA / DMP — Direktoratet for medisinske produkter)","endpoint":"/mcp/interaksjoner/","tools":[{"name":"check_interactions","description":"Check drug-drug interactions for Norwegian medications via interaksjoner.no.\n\nThis tool checks interactions between two or more medications using data from\nFEST (Forskrivnings- og EkspedisjonsSTøtte), the official Norwegian prescription\nand dispensing support database maintained by DMP (Direktoratet for medisinske produkter).\n\nSeverity levels:\n- Level 4: \"Bør ikke kombineres\" — should not be combined, risk of serious adverse effects\n- Level 2: \"Ta forholdsregler\" — take precautions, monitor patient\n- Level 1: \"Akademisk interesse\" — academic interest, can generally be combined\n\nReturns:\n    Recognized drugs with ATC codes, list of interactions with severity levels,\n    descriptions, and clinical notes. If no interactions are found, returns\n    no_interactions_found=true.","input_schema":{"additionalProperties":false,"properties":{"drugs":{"description":"List of drug names, substance names, or ATC codes to check for interactions. Accepts Norwegian trade names (e.g. 'Paracet', 'Marevan'), international substance names (e.g. 'paracetamol', 'warfarin'), or ATC codes (e.g. 'N02BE01'). Maximum 40 drugs per query.","items":{"type":"string"},"type":"array"}},"required":["drugs"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_trade_names","description":"Get Norwegian trade names (brand names) for a given ATC code.\n\nMaps an ATC (Anatomical Therapeutic Chemical) classification code to the\ncommercial drug names available in Norway. Useful for identifying which\nbrand-name products contain a given active substance.\n\nReturns:\n    ATC code, list of trade names, and count.","input_schema":{"additionalProperties":false,"properties":{"atc_code":{"description":"ATC code to look up trade names for. Examples: 'N02BE01' (paracetamol), 'B01AA03' (warfarin), 'C07AB02' (metoprolol).","type":"string"}},"required":["atc_code"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/cyber-intelligence","name":"Cyber Intelligence","description":"Unified cyber intelligence — domain investigation (WHOIS + DNS), CVE vulnerability search (NVD), and internet outage monitoring (IODA). Parallel queries across all four sources.","category":"Security","source":"NIST NVD, RDAP, Cloudflare DoH, IODA (Georgia Tech)","endpoint":"/mcp/cyber-intelligence/","tools":[{"name":"investigate_domain","description":"Investigate a domain by querying WHOIS and DNS records in parallel.\n\nReturns registrar, registration/expiration dates, nameservers, DNSSEC status,\nand DNS records (A, AAAA, MX, NS, TXT) for a unified domain intelligence view.\n\nExamples:\n    investigate_domain(domain=\"google.com\")\n    investigate_domain(domain=\"suspicious-site.xyz\")","input_schema":{"additionalProperties":false,"properties":{"domain":{"description":"Domain name to investigate (e.g. example.com).","type":"string"}},"required":["domain"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"search_vulnerabilities","description":"Search the NVD for CVE vulnerabilities matching a keyword.\n\nReturns CVE records with CVSS scores, severity ratings, and affected products\nfrom the NIST National Vulnerability Database.\n\nExamples:\n    search_vulnerabilities(keyword=\"log4j\")\n    search_vulnerabilities(keyword=\"Apache HTTP Server\", limit=5)","input_schema":{"additionalProperties":false,"properties":{"keyword":{"description":"Search keyword for CVE vulnerabilities (e.g. 'Apache', 'log4j').","type":"string"},"limit":{"default":10,"description":"Max results.","type":"integer"}},"required":["keyword"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_outage_overview","description":"Get internet outage alerts from IODA (Internet Outage Detection and Analysis).\n\nMonitors BGP routing, active probing, and traffic data to detect outages\naffecting countries and autonomous systems.\n\nExamples:\n    get_outage_overview()\n    get_outage_overview(country_code=\"RU\", hours=48)","input_schema":{"additionalProperties":false,"properties":{"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code to filter (e.g. 'US', 'NO')."},"hours":{"default":24,"description":"Lookback window in hours.","type":"number"},"limit":{"default":20,"description":"Max alerts.","type":"integer"}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"full_cyber_investigation","description":"Run a full cyber intelligence investigation across all four sources in parallel.\n\nCombines NVD vulnerability search, domain WHOIS/RDAP lookup, DNS record queries,\nand IODA internet outage monitoring into a single unified response.\n\nEach source runs concurrently for fast results. Sources that fail return\ngracefully with error details while other results are still returned.\n\nExamples:\n    full_cyber_investigation(query=\"Apache exposure\", domain=\"apache.org\", vulnerability_keyword=\"Apache\")\n    full_cyber_investigation(query=\"Russia internet health\", country_code=\"RU\")\n    full_cyber_investigation(query=\"suspicious domain\", domain=\"sketchy-site.xyz\")","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Investigation label or summary term.","type":"string"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Domain to investigate (WHOIS + DNS)."},"vulnerability_keyword":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"CVE vulnerability search keyword."},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO country code for outage alerts."},"outage_hours":{"default":24,"description":"Outage lookback window in hours.","type":"number"},"limit":{"default":10,"description":"Max results per source.","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_cyber_intelligence_sources","description":"List all cyber intelligence data sources, their coverage, and data types.\n\nShows which vulnerability databases, domain registries, DNS resolvers,\nand outage monitoring systems are queried during investigation.\n\nExamples:\n    list_cyber_intelligence_sources()","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/reddit","name":"Reddit","description":"Search Reddit posts, browse subreddits, and read comments. Find discussions, opinions, and community insights on any topic.","category":"Media","source":"Reddit (reddit.com)","endpoint":"/mcp/reddit/","tools":[{"name":"search_reddit","description":"Search Reddit posts by keyword, optionally within a specific subreddit.\n\nReturns:\n    Dictionary with 'count' and 'posts' list. Each post has id, title,\n    author, subreddit, url, permalink, selftext, score, upvote_ratio,\n    num_comments, created_utc, is_self, link_flair_text.","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms (e.g. \"machine learning\", \"Python async\"). Searches across post titles and body text.","type":"string"},"subreddit":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Restrict search to a specific subreddit (e.g. \"python\", \"MachineLearning\"). Optional."},"sort":{"default":"relevance","description":"Sort order: relevance, hot, top, new, comments. Default: relevance.","type":"string"},"time_filter":{"default":"all","description":"Time filter: hour, day, week, month, year, all. Default: all.","type":"string"},"limit":{"default":10,"description":"Number of results (1-25, default 10).","type":"integer"}},"required":["query"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_subreddit_posts","description":"Get posts from a specific subreddit sorted by hot, new, top, or rising.\n\nReturns:\n    Dictionary with 'count' and 'posts' list.","input_schema":{"additionalProperties":false,"properties":{"subreddit":{"description":"Subreddit name without r/ prefix (e.g. \"python\", \"worldnews\", \"AskReddit\").","type":"string"},"sort":{"default":"hot","description":"Sort: hot, new, top, rising, controversial. Default: hot.","type":"string"},"time_filter":{"default":"day","description":"Time filter for top/controversial: hour, day, week, month, year, all.","type":"string"},"limit":{"default":10,"description":"Number of posts (1-25, default 10).","type":"integer"}},"required":["subreddit"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_subreddit_info","description":"Get metadata about a subreddit — name, description, subscribers, active users, etc.\n\nReturns:\n    Subreddit info: name, title, description, subscribers, active_users,\n    created_utc, over18, url, subreddit_type.","input_schema":{"additionalProperties":false,"properties":{"subreddit":{"description":"Subreddit name without r/ prefix (e.g. \"python\", \"worldnews\").","type":"string"}},"required":["subreddit"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_reddit_post_comments","description":"Get a Reddit post and its top-level comments by post ID.\n\nReturns:\n    Dictionary with 'post' (full post data) and 'comments' list.\n    Each comment has id, author, body, score, created_utc, depth.","input_schema":{"additionalProperties":false,"properties":{"post_id":{"description":"Reddit post ID (the short alphanumeric ID, e.g. \"1abc2d\").","type":"string"},"sort":{"default":"top","description":"Sort: top, best, new, controversial, old, qa. Default: top.","type":"string"},"limit":{"default":10,"description":"Number of comments (1-50, default 10).","type":"integer"}},"required":["post_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/smhi-warnings","name":"SMHI Weather Warnings (Sweden)","description":"Swedish weather warnings from SMHI — impact-based warnings for meteorological and hydrological events including wind, snow, rain, thunder, fire risk, flooding, and high sea levels.","category":"Environment","source":"SMHI (Swedish Meteorological and Hydrological Institute)","endpoint":"/mcp/smhi-warnings/","tools":[{"name":"get_weather_warnings","description":"Get current SMHI weather warnings for Sweden.\n\nReturns active weather warnings from the Swedish Meteorological and\nHydrological Institute (SMHI). Warnings cover meteorological events\n(wind, snow, rain, thunder, fire risk) and hydrological events\n(flooding, high water levels).\n\nWarning levels: MESSAGE (informational), YELLOW (moderate),\nORANGE (significant), RED (extreme).\n\nReturns:\n    List of warnings with severity, affected areas, and time periods.","input_schema":{"additionalProperties":false,"properties":{"warning_level":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by warning level code: MESSAGE, YELLOW, ORANGE, or RED. Omit for all levels."},"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by event type code: THUNDER, WIND, SNOW, RAIN, FIRE, HIGH_TEMPERATURES, etc. Omit for all types."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_warning_metadata","description":"List available SMHI warning levels and event types.\n\nReturns the full set of warning level codes (MESSAGE, YELLOW, ORANGE, RED)\nand event type codes (THUNDER, WIND, SNOW, etc.) used in Swedish weather\nwarnings. Useful for understanding the classification system before\nquerying active warnings.\n\nReturns:\n    Warning levels and event types with their descriptions.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/dmi-warnings","name":"DMI Weather Warnings (Denmark)","description":"Danish weather warnings from DMI — current national warnings with severity levels (Low/Moderate/Severe/Dangerous) covering rain, wind, snow, thunderstorms, fog, black ice, heat, and flooding.","category":"Environment","source":"DMI (Danish Meteorological Institute)","endpoint":"/mcp/dmi-warnings/","tools":[{"name":"get_weather_warnings","description":"Get current DMI weather warnings for Denmark.\n\nReturns active weather warnings from the Danish Meteorological Institute\n(DMI). Warnings cover meteorological events including wind, rain,\nsnow, thunderstorms, fog, black ice, heat, and flooding.\n\nWarning severity types: 1 (Low/risk notice), 2 (Moderate),\n3 (Severe), 4 (Dangerous).\n\nReturns:\n    List of warnings with severity, affected areas, and time periods.","input_schema":{"additionalProperties":false,"properties":{"severity":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filter by minimum warning type: 1=Low, 2=Moderate, 3=Severe, 4=Dangerous. Omit for all levels."},"cause":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by warning cause code: regn, vind, sne, konvektion, isslag, tage, temperatur, forvand. Omit for all types."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_warning_causes","description":"List DMI warning cause types and severity levels.\n\nReturns the full set of warning cause codes (regn, vind, sne, etc.)\nand severity levels (1-4) used in Danish weather warnings. Useful\nfor understanding the classification system before querying active\nwarnings.\n\nReturns:\n    Warning causes and severity levels with descriptions.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/fmi-warnings","name":"FMI Weather Warnings (Finland)","description":"Finnish weather warnings from FMI via MeteoAlarm — CAP-format alerts for meteorological and natural hazard events including wind, snow, rain, thunder, fog, forest fire, flooding, and coastal events.","category":"Environment","source":"FMI (Finnish Meteorological Institute) via MeteoAlarm","endpoint":"/mcp/fmi-warnings/","tools":[{"name":"get_weather_warnings","description":"Get current FMI weather warnings for Finland.\n\nReturns active weather warnings from the Finnish Meteorological\nInstitute (FMI) via MeteoAlarm. Warnings cover meteorological events\n(wind, snow, rain, thunder, fog, temperature extremes) and natural\nhazards (forest fire, avalanches, flooding, coastal events).\n\nSeverity levels: yellow (moderate), orange (severe), red (extreme).\n\nReturns:\n    List of warnings with severity, affected areas, and time periods.","input_schema":{"additionalProperties":false,"properties":{"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by severity level: yellow, orange, or red. Omit for all levels."},"awareness_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by awareness type: wind, snow-ice, thunderstorm, fog, high-temperature, low-temperature, coastal-event, forest-fire, avalanches, rain, flooding, rain-flood. Omit for all types."}},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_warning_metadata","description":"List available FMI warning severity levels and awareness types.\n\nReturns the full set of severity levels (yellow, orange, red) and\nawareness types (wind, snow-ice, thunderstorm, etc.) used in Finnish\nweather warnings. Useful for understanding the classification system\nbefore querying active warnings.\n\nReturns:\n    Severity levels and awareness types with their descriptions.","input_schema":{"additionalProperties":false,"properties":{},"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/webhooks","name":"Webhook Subscriptions","description":"Manage webhook subscriptions for push-based data delivery — subscribe to entity changes, list subscriptions, and track delivery status.","category":"Platform","source":"Internal","endpoint":"/mcp/webhooks/","tools":[{"name":"subscribe","description":"Create a webhook subscription for data change notifications.\n\nWhen data matching the entity_type changes, a signed POST request\nwill be sent to the callback_url with the change payload.\n\nThe returned secret is used to verify webhook signatures (HMAC-SHA256).\nStore it securely — it is only shown once.\n\nArgs:\n    api_key: Your Gnist API key.\n    entity_type: The type of entity to monitor for changes.\n    callback_url: HTTPS endpoint to receive webhook deliveries.\n\nReturns:\n    Subscription details including id and signing secret, or error.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"},"entity_type":{"description":"Entity type to subscribe to (e.g. 'brreg_company', 'doffin_tender').","type":"string"},"callback_url":{"description":"HTTPS URL where webhook events will be delivered.","type":"string"}},"required":["api_key","entity_type","callback_url"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"unsubscribe","description":"Remove a webhook subscription (soft delete).\n\nThe subscription will stop receiving deliveries immediately.\n\nArgs:\n    api_key: Your Gnist API key.\n    subscription_id: The subscription UUID to deactivate.\n\nReturns:\n    Confirmation or error if subscription not found.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"},"subscription_id":{"description":"UUID of the subscription to remove.","type":"string"}},"required":["api_key","subscription_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_subscriptions","description":"List all active webhook subscriptions for your API key.\n\nReturns subscriptions with their entity type, callback URL, and status.\n\nArgs:\n    api_key: Your Gnist API key.\n\nReturns:\n    List of active subscriptions.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"}},"required":["api_key"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"reset_subscription","description":"Reset a subscription's circuit breaker.\n\nWhen a subscription has too many consecutive delivery failures,\nits circuit breaker opens and deliveries are paused. Use this\ntool to manually re-enable delivery.\n\nArgs:\n    api_key: Your Gnist API key.\n    subscription_id: The subscription UUID to reset.\n\nReturns:\n    Confirmation or error if subscription not found.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"},"subscription_id":{"description":"UUID of the subscription to reset.","type":"string"}},"required":["api_key","subscription_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_deliveries","description":"List recent webhook deliveries.\n\nShows delivery attempts with status (pending/delivered/failed),\nnumber of attempts, and HTTP response codes.\n\nArgs:\n    api_key: Your Gnist API key.\n    subscription_id: Optional filter to a specific subscription.\n    limit: Maximum deliveries to return (1-200, default 50).\n\nReturns:\n    List of recent deliveries.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"},"subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter to a specific subscription UUID. Omit for all subscriptions."},"limit":{"default":50,"description":"Maximum number of deliveries to return.","maximum":200,"minimum":1,"type":"integer"}},"required":["api_key"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"get_webhook_metrics","description":"Get webhook delivery metrics.\n\nReturns aggregated delivery statistics per subscription: total deliveries,\nsuccess/failure/pending counts, and last delivery timestamp.\n\nArgs:\n    api_key: Your Gnist API key.\n    subscription_id: Optional filter to a specific subscription.\n    hours: Time window in hours (1-720, default 24).\n\nReturns:\n    Delivery metrics grouped by subscription.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"},"subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter to a specific subscription UUID. Omit for all subscriptions."},"hours":{"default":24,"description":"Time window in hours (default 24, max 720).","maximum":720,"minimum":1,"type":"integer"}},"required":["api_key"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]},{"mount_path":"/monitors","name":"Entity Monitors","description":"Create and manage entity monitors — watch specific entities for data changes and receive alerts via webhooks or Atom feeds.","category":"Platform","source":"Internal","endpoint":"/mcp/monitors/","tools":[{"name":"create_monitor","description":"Create an entity monitor to watch for data changes.\n\nWhen the monitored entity changes, an alert is generated and\ndelivered to your webhook subscriptions for that entity type.\n\nSet up a webhook subscription first (using the subscribe tool),\nthen create a monitor for the specific entity you want to watch.\n\nArgs:\n    api_key: Your Gnist API key.\n    entity_type: The type of entity to monitor.\n    entity_id: The specific entity identifier.\n\nReturns:\n    Monitor details including id, entity_type, and entity_id, or error.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"},"entity_type":{"description":"Entity type to monitor (e.g. 'brreg_company', 'doffin_tender', 'sec_edgar_filing').","type":"string"},"entity_id":{"description":"ID of the entity to monitor (e.g. org number, notice ID).","type":"string"}},"required":["api_key","entity_type","entity_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_monitors","description":"List all active entity monitors for your API key.\n\nReturns monitors with their entity type, entity ID, and status.\n\nArgs:\n    api_key: Your Gnist API key.\n\nReturns:\n    List of active monitors.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"}},"required":["api_key"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"delete_monitor","description":"Remove an entity monitor (soft delete).\n\nThe monitor will stop generating alerts immediately.\n\nArgs:\n    api_key: Your Gnist API key.\n    monitor_id: The monitor UUID to deactivate.\n\nReturns:\n    Confirmation or error if monitor not found.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"},"monitor_id":{"description":"UUID of the monitor to remove.","type":"string"}},"required":["api_key","monitor_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"list_monitor_alerts","description":"List alerts for an entity monitor, newest first.\n\nAlerts are generated when change detection finds new data\nfor the monitored entity.\n\nArgs:\n    api_key: Your Gnist API key.\n    monitor_id: The monitor UUID to list alerts for.\n    limit: Maximum alerts to return (1-200, default 50).\n\nReturns:\n    List of alerts with status and timestamps.","input_schema":{"additionalProperties":false,"properties":{"api_key":{"description":"Your Gnist API key (starts with 'gnist_').","type":"string"},"monitor_id":{"description":"UUID of the monitor to list alerts for.","type":"string"},"limit":{"default":50,"description":"Maximum number of alerts to return.","maximum":200,"minimum":1,"type":"integer"}},"required":["api_key","monitor_id"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}},{"name":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","input_schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"},"output_schema":{"additionalProperties":true,"type":"object"}}]}]}