diff --git a/litellm/proxy/mcp_registry.json b/litellm/proxy/mcp_registry.json
index 1f1d4a272a2..20e62838b07 100644
--- a/litellm/proxy/mcp_registry.json
+++ b/litellm/proxy/mcp_registry.json
@@ -278,6 +278,7 @@
"registry_url": null,
"transport": "http",
"url": "https://mcp.nimbleway.com/mcp",
+ "auth_type": "bearer_token",
"env_vars": [
{"name": "NIMBLE_API_KEY", "description": "Nimble API Key", "secret": true}
]
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 f37bd87d69a..2ab2ac7dbdb 100644
--- a/tests/unit/proxy/_experimental/mcp_server/test_mcp_discovery.py
+++ b/tests/unit/proxy/_experimental/mcp_server/test_mcp_discovery.py
@@ -106,6 +106,7 @@ class TestMCPRegistryFile:
"registry_url": None,
"transport": "http",
"url": "https://mcp.nimbleway.com/mcp",
+ "auth_type": "bearer_token",
"env_vars": [
{
"name": "NIMBLE_API_KEY",
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/CreateMCPServer.integration.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/CreateMCPServer.integration.test.tsx
index 65656a053ce..835994c14c0 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/CreateMCPServer.integration.test.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/CreateMCPServer.integration.test.tsx
@@ -1934,20 +1934,23 @@ describe("CreateMCPServer", () => {
describe("when prefillData is provided", () => {
it("should populate form fields from discovery data", async () => {
const prefillData = {
- name: "github-mcp",
- title: "GitHub MCP",
- description: "GitHub integration server",
- category: "Development",
+ name: "nimble",
+ title: "Nimble",
+ description: "Nimble search server",
+ category: "Search",
transport: "http",
- url: "https://github-mcp.example.com",
+ url: "https://mcp.nimbleway.com/mcp",
+ auth_type: "bearer_token",
};
render();
await waitFor(() => {
- // Server name should be sanitized (hyphens replaced with underscores)
const nameInput = getServerNameInput();
- expect(nameInput).toHaveValue("github_mcp");
+ expect(nameInput).toHaveValue("nimble");
+ expect(screen.getByPlaceholderText("https://your-mcp-server.com")).toHaveValue("https://mcp.nimbleway.com/mcp");
+ expect(screen.getByText("Bearer Token")).toBeInTheDocument();
+ expect(screen.getByText("Authentication Value")).toBeInTheDocument();
});
});
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/CreateMCPServer.tsx b/ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/CreateMCPServer.tsx
index 07618abb9a4..b457e9ee88a 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/CreateMCPServer.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/CreateMCPServer.tsx
@@ -384,6 +384,7 @@ const CreateMCPServer: React.FC = ({
alias: sanitizedName,
description: prefillData.description || "",
transport: transport,
+ auth_type: prefillData.auth_type || undefined,
};
if (transport === "stdio") {
diff --git a/ui/litellm-dashboard/src/components/mcp_tools/types.tsx b/ui/litellm-dashboard/src/components/mcp_tools/types.tsx
index 2a6b3f2793b..4aceab15beb 100644
--- a/ui/litellm-dashboard/src/components/mcp_tools/types.tsx
+++ b/ui/litellm-dashboard/src/components/mcp_tools/types.tsx
@@ -549,6 +549,7 @@ export interface DiscoverableMCPServer {
category: string;
registry_url?: string | null;
transport: string;
+ auth_type?: string | null;
url?: string | null;
command?: string | null;
args?: string[] | null;