{
  "specVersion": "1.0",
  "host": {
    "displayName": "Nødebo — real-world data MCP gateway",
    "identifier": "did:web:nodebo.ai",
    "documentationUrl": "https://nodebo.ai/docs",
    "logoUrl": "https://nodebo.ai/logo.png",
    "trustManifest": {
      "identity": "did:web:nodebo.ai",
      "identityType": "did",
      "attestations": [
        {
          "type": "jwks",
          "uri": "https://nodebo.ai/.well-known/jwks.json",
          "mediaType": "application/jwk-set+json"
        }
      ],
      "$signing": "Detached JWS (RFC 7515), alg=RS256, kid matches /.well-known/jwks.json. Payload = RFC 8785 (JCS) canonicalization of this trustManifest object with the 'signature' and '$signing' members removed. Verify: reconstruct the signing input as <protected>.<base64url(JCS-payload)>, then RSA-PKCS1v15/SHA-256 verify the detached signature against the JWKS key. Re-sign with scripts/ard_sign.py after any trustManifest change.",
      "signature": "eyJhbGciOiJSUzI1NiIsImtpZCI6IlNaOEhDa2g3WGZ4ay1TRUtYMVBJcUNsOXhJWE4zem5yUko0YkQ4dEtjYWsiLCJ0eXAiOiJKV1MifQ..ehJQkFxBk0KmngiA-OZnEpmav8rspPqGf6rGLgy2CeVmVIYCWUSma9I2tJ3P3kQ_F-fvh0UIgPHMKcDO734Ahkr9RXyK3Zw1v1L422Tg0C1Fdui2S4S_bVD1g8pJqXoB2MM3PmzWHcnxy_gil_0a2eIkz4KpH0ZhNLAEevS8G_sWLY8BbZahG74MjDgyadQSzTWIxxo9zPScaLhxjl4FxzmljF4iW9MeGPbAs_HVx1UWZveor-8PcI5zz4fHDeeXIST7hv4vM4-CUbVl5L04-iJVKX8D_M2Rb5mLdfWJ90Ncmf-YypE1Hyn-7beMaRlqROQthxvkJTzwQs3xrFvSEg"
    }
  },
  "entries": [
    {
      "identifier": "urn:ai:nodebo.ai:gateway:mcp",
      "displayName": "Nødebo MCP Gateway (standard)",
      "type": "application/mcp-server-card+json",
      "url": "https://nodebo.ai/.well-known/mcp/gateway.json",
      "description": "One MCP endpoint aggregating Nødebo's fleet of real-world data servers: economics & markets, geography & mapping, weather & environment, corporate & compliance, sports, news, currency, public/holiday data, developer tools, and security. Per-user API key; team-scoped access control and per-backend credential injection are enforced gateway-side. Backend servers are reached THROUGH this gateway — they are not independently routable.",
      "tags": [
        "mcp",
        "gateway",
        "open-data",
        "real-world-data",
        "multi-domain"
      ],
      "capabilities": [
        "openweathermap",
        "openmeteo",
        "openaq",
        "fred",
        "ecb",
        "eurostat",
        "worldbank",
        "finnhub",
        "metalprice",
        "frankfurter",
        "secedgar",
        "fdic",
        "tradegov",
        "gleif",
        "opensanctions",
        "openrouteservice",
        "nominatim",
        "overpass",
        "wyscout",
        "thesportsdb",
        "gnews",
        "nagerdate",
        "gitlab",
        "virustotal",
        "ipinfo"
      ],
      "representativeQueries": [
        "get the current weather and multi-day forecast for a city",
        "convert 1000 USD to EUR at today's exchange rate",
        "look up a company's Legal Entity Identifier (LEI) and registration",
        "screen a name against global sanctions and PEP lists",
        "get the latest US unemployment rate or CPI from FRED",
        "geocode an address and get a driving route between two points",
        "fetch a public company's most recent SEC filing",
        "get recent air-quality (PM2.5) readings near a location"
      ],
      "version": "1.0.0",
      "updatedAt": "2026-07-19T00:00:00Z",
      "metadata": {
        "endpoint": "https://nodebo.ai/mcp",
        "transport": "streamable-http",
        "backendServers": "26+",
        "authProtocol": "bearer-api-key"
      }
    },
    {
      "identifier": "urn:ai:nodebo.ai:gateway:metamcp",
      "displayName": "Nødebo MetaMCP Gateway (experimental, meta-disclosure)",
      "type": "application/mcp-server-card+json",
      "url": "https://nodebo.ai/.well-known/mcp/metamcp.json",
      "description": "Lean opt-in MCP lane: advertises ~9 meta tools instead of the full catalog. The agent discovers tools on demand (nodebo_search_tools / nodebo_describe_tool) and calls any backend tool via nodebo_invoke — far less connect-time context. Same API key + access control as the standard lane.",
      "tags": [
        "mcp",
        "gateway",
        "experimental",
        "on-demand-discovery",
        "low-context"
      ],
      "capabilities": [
        "nodebo_search_tools",
        "nodebo_list_servers",
        "nodebo_describe_tool",
        "nodebo_invoke"
      ],
      "representativeQueries": [
        "discover and call the right nodebo tool without preloading the full catalog",
        "search nodebo's tools by keyword then invoke one"
      ],
      "version": "0.1.0",
      "updatedAt": "2026-07-19T00:00:00Z",
      "metadata": {
        "endpoint": "https://nodebo.ai/metamcp",
        "transport": "streamable-http",
        "experimental": true,
        "discoveryModel": "search-then-invoke",
        "authProtocol": "bearer-api-key"
      }
    },
    {
      "identifier": "urn:ai:nodebo.ai:registry:tools",
      "displayName": "Nødebo Tool Registry",
      "type": "application/ai-registry+json",
      "url": "https://nodebo.ai/api/v1/registry/search",
      "description": "Search Nødebo's indexed capabilities by plain-language intent. Backs nodebo_search_tools / mcp-server-list. Lets external agents resolve which nodebo server/tool satisfies a need before connecting through the gateway.",
      "tags": [
        "registry",
        "search",
        "discovery"
      ],
      "representativeQueries": [
        "which nodebo server has exchange-rate data",
        "list every tool that geocodes an address"
      ],
      "version": "1.0.0",
      "updatedAt": "2026-07-19T00:00:00Z",
      "metadata": {
        "federation": "referrals"
      }
    },
    {
      "identifier": "urn:ai:nodebo.ai:catalog:servers",
      "displayName": "Nødebo backend servers (nested catalog)",
      "type": "application/ai-catalog+json",
      "description": "Representative backend servers across Nødebo's domains. NOTE: backend servers are only reachable THROUGH the gateway entries above — they are not independently routable endpoints.",
      "tags": [
        "nested-catalog",
        "backend-servers"
      ],
      "data": {
        "specVersion": "1.0",
        "host": {
          "displayName": "Nødebo backend servers",
          "identifier": "did:web:nodebo.ai"
        },
        "entries": [
          {
            "identifier": "urn:ai:nodebo.ai:server:fred",
            "displayName": "FRED (Federal Reserve economic data)",
            "type": "application/mcp-server-card+json",
            "description": "US macroeconomic series: rates, inflation (CPI), employment, GDP, and thousands more indicators.",
            "tags": [
              "economics",
              "macro",
              "rates",
              "inflation"
            ],
            "metadata": {
              "reachableVia": "urn:ai:nodebo.ai:gateway:mcp",
              "toolPrefix": "fred_"
            }
          },
          {
            "identifier": "urn:ai:nodebo.ai:server:frankfurter",
            "displayName": "Frankfurter (currency exchange)",
            "type": "application/mcp-server-card+json",
            "description": "Foreign-exchange reference rates and historical conversion, sourced from central-bank data.",
            "tags": [
              "currency",
              "fx",
              "exchange-rates"
            ],
            "metadata": {
              "reachableVia": "urn:ai:nodebo.ai:gateway:mcp",
              "toolPrefix": "frankfurter_"
            }
          },
          {
            "identifier": "urn:ai:nodebo.ai:server:openrouteservice",
            "displayName": "OpenRouteService (routing & geo)",
            "type": "application/mcp-server-card+json",
            "description": "Directions, distance/isochrones, and geocoding for driving, cycling, and walking.",
            "tags": [
              "geo",
              "routing",
              "maps",
              "directions"
            ],
            "metadata": {
              "reachableVia": "urn:ai:nodebo.ai:gateway:mcp",
              "toolPrefix": "openrouteservice_"
            }
          },
          {
            "identifier": "urn:ai:nodebo.ai:server:gleif",
            "displayName": "GLEIF (legal entity identifiers)",
            "type": "application/mcp-server-card+json",
            "description": "Look up and validate LEIs; resolve a legal entity's registration, ownership, and status.",
            "tags": [
              "corporate",
              "compliance",
              "lei",
              "entity"
            ],
            "metadata": {
              "reachableVia": "urn:ai:nodebo.ai:gateway:mcp",
              "toolPrefix": "gleif_"
            }
          },
          {
            "identifier": "urn:ai:nodebo.ai:server:openweathermap",
            "displayName": "OpenWeatherMap",
            "type": "application/mcp-server-card+json",
            "description": "Current weather, forecast, and geocoding by place name or coordinates.",
            "tags": [
              "weather",
              "environment",
              "forecast"
            ],
            "metadata": {
              "reachableVia": "urn:ai:nodebo.ai:gateway:mcp",
              "toolPrefix": "openweathermap_"
            }
          }
        ]
      }
    }
  ]
}
