From fdaa1637588ddd38a325caaa614d171c51799468 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Sat, 11 Oct 2025 15:07:54 -0700 Subject: [PATCH] docs(claude_responses_api.md): update docs with mcp server tutorial --- .../docs/tutorials/claude_responses_api.md | 79 +++++++++++++++++- docs/my-website/img/oauth_2_success.png | Bin 0 -> 68740 bytes .../mcp_server/mcp_server_manager.py | 18 ++-- litellm/proxy/_new_secret_config.yaml | 14 +++- 4 files changed, 100 insertions(+), 11 deletions(-) create mode 100644 docs/my-website/img/oauth_2_success.png diff --git a/docs/my-website/docs/tutorials/claude_responses_api.md b/docs/my-website/docs/tutorials/claude_responses_api.md index d86b5e2d461..098c311b30f 100644 --- a/docs/my-website/docs/tutorials/claude_responses_api.md +++ b/docs/my-website/docs/tutorials/claude_responses_api.md @@ -209,4 +209,81 @@ claude --model claude-bedrock - \ No newline at end of file + + + +## Connecting MCP Servers + +You can also connect MCP servers to Claude Code via LiteLLM Proxy. + +:::note + +Limitations: + +- Currently, only HTTP MCP servers are supported +- Does not work in Cursor IDE yet. + +::: + +1. Add the MCP server to your `config.yaml` + +In this example, we'll add the Github MCP server to our `config.yaml` + +```yaml title="config.yaml" showLineNumbers +mcp_servers: + github_mcp: + url: "https://api.githubcopilot.com/mcp" + auth_type: oauth2 + authorization_url: https://github.com/login/oauth/authorize + token_url: https://github.com/login/oauth/access_token + client_id: os.environ/GITHUB_OAUTH_CLIENT_ID + client_secret: os.environ/GITHUB_OAUTH_CLIENT_SECRET + scopes: ["public_repo", "user:email"] +``` + +2. Start LiteLLM Proxy + +```bash +litellm --config /path/to/config.yaml + +# RUNNING on http://0.0.0.0:4000 +``` + +3. Use the MCP server in Claude Code + +```bash +claude mcp add --transport http litellm_proxy http://0.0.0.0:4000 --header "Authorization: Bearer sk-LITELLM_VIRTUAL_KEY" +``` + +4. Authenticate via Claude Code + +a. Start Claude Code + +```bash +claude +``` + +b. Authenticate via Claude Code + +```bash +/mcp +``` + +c. Select the MCP server + +```bash +> litellm_proxy +``` + +d. Start Oauth flow via Claude Code + +```bash +> 1. Authenticate + 2. Reconnect + 3. Disable +``` + +e. Once completed, you should see this success message: + + + diff --git a/docs/my-website/img/oauth_2_success.png b/docs/my-website/img/oauth_2_success.png new file mode 100644 index 0000000000000000000000000000000000000000..4011b55d35c6d85c3ba77301294ed1ff2d3469ab GIT binary patch literal 68740 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 AhX4Qo literal 0 HcmV?d00001 diff --git a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py index 28581c778c6..da1f35a608a 100644 --- a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py +++ b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py @@ -355,12 +355,12 @@ class MCPServerManager: ) # Update tool name to server name mapping (for both prefixed and base names) - self.tool_name_to_mcp_server_name_mapping[ - base_tool_name - ] = server_prefix - self.tool_name_to_mcp_server_name_mapping[ - prefixed_tool_name - ] = server_prefix + self.tool_name_to_mcp_server_name_mapping[base_tool_name] = ( + server_prefix + ) + self.tool_name_to_mcp_server_name_mapping[prefixed_tool_name] = ( + server_prefix + ) registered_count += 1 verbose_logger.debug( @@ -1276,7 +1276,7 @@ class MCPServerManager: get_prisma_client_or_throw, ) - verbose_logger.info("Loading MCP servers from database into registry...") + verbose_logger.debug("Loading MCP servers from database into registry...") # perform authz check to filter the mcp servers user has access to prisma_client = get_prisma_client_or_throw( @@ -1292,7 +1292,9 @@ class MCPServerManager: ) self.add_update_server(server) - verbose_logger.info(f"Registry now contains {len(self.get_registry())} servers") + verbose_logger.debug( + f"Registry now contains {len(self.get_registry())} servers" + ) def get_mcp_server_by_id(self, server_id: str) -> Optional[MCPServer]: """ diff --git a/litellm/proxy/_new_secret_config.yaml b/litellm/proxy/_new_secret_config.yaml index c0772f964ba..d2e68067acd 100644 --- a/litellm/proxy/_new_secret_config.yaml +++ b/litellm/proxy/_new_secret_config.yaml @@ -1,4 +1,14 @@ model_list: - - model_name: gpt-5-codex + - model_name: gpt-5-mini litellm_params: - model: gpt-5-codex \ No newline at end of file + model: gpt-5-mini + +mcp_servers: + github_mcp: + url: "https://api.githubcopilot.com/mcp" + auth_type: oauth2 + authorization_url: https://github.com/login/oauth/authorize + token_url: https://github.com/login/oauth/access_token + client_id: os.environ/GITHUB_OAUTH_CLIENT_ID + client_secret: os.environ/GITHUB_OAUTH_CLIENT_SECRET + scopes: ["public_repo", "user:email"] \ No newline at end of file