diff --git a/litellm/proxy/mcp_registry.json b/litellm/proxy/mcp_registry.json index 70e81f127c9..1f1d4a272a2 100644 --- a/litellm/proxy/mcp_registry.json +++ b/litellm/proxy/mcp_registry.json @@ -269,6 +269,19 @@ {"name": "EXA_API_KEY", "description": "Exa API Key", "secret": true} ] }, + { + "name": "nimble", + "title": "Nimble", + "description": "Web search, SERP, and site extraction data for AI agents", + "icon_url": "https://avatars.githubusercontent.com/u/94446617?v=4", + "category": "Search", + "registry_url": null, + "transport": "http", + "url": "https://mcp.nimbleway.com/mcp", + "env_vars": [ + {"name": "NIMBLE_API_KEY", "description": "Nimble API Key", "secret": true} + ] + }, { "name": "tavily", "title": "Tavily", diff --git a/tests/unit/proxy/_experimental/mcp_server/test_mcp_discovery.py b/tests/unit/proxy/_experimental/mcp_server/test_mcp_discovery.py index d35cb7234dc..f37bd87d69a 100644 --- a/tests/unit/proxy/_experimental/mcp_server/test_mcp_discovery.py +++ b/tests/unit/proxy/_experimental/mcp_server/test_mcp_discovery.py @@ -91,6 +91,30 @@ class TestMCPRegistryFile: assert linear["url"] == "https://mcp.linear.app/mcp" assert "/sse" not in linear["url"] + def test_nimble_uses_streamable_http_with_api_key(self, registry_path): + """Nimble should expose its authenticated streamable HTTP endpoint.""" + with open(registry_path, "r") as f: + data = json.load(f) + + nimble = next(s for s in data["servers"] if s["name"] == "nimble") + assert nimble == { + "name": "nimble", + "title": "Nimble", + "description": "Web search, SERP, and site extraction data for AI agents", + "icon_url": "https://avatars.githubusercontent.com/u/94446617?v=4", + "category": "Search", + "registry_url": None, + "transport": "http", + "url": "https://mcp.nimbleway.com/mcp", + "env_vars": [ + { + "name": "NIMBLE_API_KEY", + "description": "Nimble API Key", + "secret": True, + } + ], + } + def test_well_known_servers_present(self, registry_path): """Ensure key well-known MCPs are in the registry.""" with open(registry_path, "r") as f: