fix(mcp): refresh Slack and Atlassian discovery defaults#30493
fix(mcp): refresh Slack and Atlassian discovery defaults#30493tin-berri wants to merge 6 commits into
Conversation
Slack offers a hosted MCP server at https://mcp.slack.com/mcp over streamable HTTP with OAuth, so the curated discovery preset should point there instead of spawning the npx stdio bot-token server. Carry an auth_type through the discovery entry into the create-server form so the preset lands on OAuth by default.
Greptile SummaryThis PR updates the curated MCP discovery registry's Slack entry from a stdio preset (spawning
Confidence Score: 5/5Safe to merge — the change is narrowly scoped to a registry JSON entry and a small UI prefill extension with no impact on the request path or auth enforcement logic. All changes are additive: the registry update swaps one JSON preset, the interface addition is optional so existing entries without auth_type are unaffected, and the prefill logic only runs when a preset explicitly carries auth_type. New tests cover both the registry shape and the UI prefill end-to-end, and no existing tests are modified or weakened. No files require special attention.
|
| Filename | Overview |
|---|---|
| litellm/proxy/mcp_registry.json | Slack entry updated from stdio/npx to streamable HTTP at https://mcp.slack.com/mcp with auth_type "oauth2"; no stdio fields remain. |
| ui/litellm-dashboard/src/components/mcp_tools/types.tsx | Added optional auth_type field to DiscoverableMCPServer interface; consistent with auth_type already present on MCPServer and MCPToolsViewerProps. |
| ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx | Prefill effect extended to copy auth_type from registry preset into the form, which correctly surfaces the OAuth fields section when auth_type is "oauth2". |
| tests/test_litellm/proxy/_experimental/mcp_server/test_mcp_discovery.py | New test added asserting Slack registry entry has transport "http", correct URL, auth_type "oauth2", and no command/args fields; no network calls made. |
| ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.test.tsx | New test added covering the full prefill flow for a Slack-shaped preset, verifying URL population and OAuth form section visibility. |
Reviews (1): Last reviewed commit: "fix(mcp): default Slack registry entry t..." | Re-trigger Greptile
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Cloudflare deprecated the SSE transport in favor of streamable HTTP, so the bindings MCP server now lives at https://bindings.mcp.cloudflare.com/mcp instead of the /sse endpoint.
Relevant issues
Linear ticket
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
make test-unit@greptileaiand received a Confidence Score of at least 4/5 before requesting a maintainer reviewCI (LiteLLM team)
Branch creation CI run
Link:
CI run for the last commit
Link:
Merge / cherry-pick CI run
Links:
Screenshots / Proof of Fix
Go to http://localhost:4000/ui/?page=mcp-servers, click "Add MCP Server", then pick a preset from the discovery grid.
Slack should land prefilled with Transport Type "Streamable HTTP (Recommended)", Server URL "https://mcp.slack.com/mcp", and Authentication "OAuth" (which then surfaces the OAuth flow fields).
Linear should land prefilled with Transport Type "Streamable HTTP (Recommended)", Server URL "https://mcp.linear.app/mcp", and Authentication "OAuth".
Notion should land prefilled with Transport Type "Streamable HTTP (Recommended)", Server URL "https://mcp.notion.com/mcp", and Authentication "OAuth".
Atlassian should land prefilled with Transport Type "Streamable HTTP (Recommended)" and Server URL "https://mcp.atlassian.com/v1/mcp/authv2".
Cloudflare should land prefilled with Transport Type "Streamable HTTP (Recommended)" and Server URL "https://bindings.mcp.cloudflare.com/mcp"
Type
🐛 Bug Fix
Changes
Several curated MCP discovery presets pointed at stale defaults.
Slack shipped as a stdio preset that spawns the
@modelcontextprotocol/server-slacknpx process and asks for aSLACK_BOT_TOKEN. Slack now hosts an MCP server at https://mcp.slack.com/mcp over streamable HTTP with OAuth, so the preset should point users there. The Slack entry inlitellm/proxy/mcp_registry.jsonis now transport "http", url "https://mcp.slack.com/mcp", andauth_type"oauth2", dropping the stdio command/args and bot-token env vars that no longer apply.Linear already used streamable HTTP at https://mcp.linear.app/mcp; it now also defaults
auth_typeto "oauth2" so the preset lands on OAuth.Notion shipped as an SSE preset at https://mcp.notion.com/sse; it now uses streamable HTTP at https://mcp.notion.com/mcp with
auth_type"oauth2".Atlassian's hosted MCP endpoint moved to the authv2 path, so its url goes from https://mcp.atlassian.com/v1/mcp to https://mcp.atlassian.com/v1/mcp/authv2; transport stays streamable HTTP.
Cloudflare deprecated the SSE transport, so the bindings MCP server moves from sse at https://bindings.mcp.cloudflare.com/sse to streamable HTTP at https://bindings.mcp.cloudflare.com/mcp.
The discovery prefill in the UI previously only carried transport, url, command, args, and env vars into the create-server form; it never carried an auth type. So that a preset can default the authentication type,
DiscoverableMCPServernow has an optionalauth_type, and the prefill effect increate_mcp_server.tsxmaps it into the form. This is generic, not vendor-specific, so any registry entry that declares anauth_typewill now seed the form's authentication selector.