Skip to content

Add MCP servers from the MCP surface - #742

Merged
TheGreatAxios merged 6 commits into
mainfrom
cl-7297-add-mcp-servers-by-url-from-the-mcp-screen
Sep 1, 2026
Merged

Add MCP servers from the MCP surface#742
TheGreatAxios merged 6 commits into
mainfrom
cl-7297-add-mcp-servers-by-url-from-the-mcp-screen

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • The MCP surface exposes a visible Add MCP server row with Alt+A and Enter access, while /mcp and /mcps open the same workflow.
  • The add form preserves typed and pasted input, validates names and HTTP or HTTPS URLs, and retains invalid values for correction.
  • Global settings persistence is serialized with other settings changes and rejects duplicate, shadowed, active, or reserved server names before mutation.
  • Late MCP connections reuse the existing OAuth, permission, tool registration, status, cleanup, cancellation, and disposal lifecycle.
  • The live MCP surface tracks connection and authorization state without displacing newer overlays or leaking subscriptions after dismissal or shutdown.

Verification

  • bun run check passes on the full three-PR stack
  • Focused MCP lifecycle, authorization, form, overlay, persistence, and telemetry regression suites pass
  • Independent whole-branch review reports no findings

Fixes CL-7297

@linear-code

linear-code Bot commented Aug 31, 2026

Copy link
Copy Markdown

CL-7297

@TheGreatAxios
TheGreatAxios force-pushed the cl-7297-add-mcp-servers-by-url-from-the-mcp-screen branch from 13cde7b to 114f4a2 Compare September 1, 2026 00:02
@TheGreatAxios
TheGreatAxios force-pushed the cl-7296-hide-commands-for-disabled-skills branch from 5ebe95f to 3ec14d4 Compare September 1, 2026 03:13
@TheGreatAxios
TheGreatAxios force-pushed the cl-7297-add-mcp-servers-by-url-from-the-mcp-screen branch from dd84f03 to ae995cb Compare September 1, 2026 03:26
@TheGreatAxios
TheGreatAxios force-pushed the cl-7296-hide-commands-for-disabled-skills branch from 3ec14d4 to 1cd8391 Compare September 1, 2026 04:13
@TheGreatAxios
TheGreatAxios force-pushed the cl-7297-add-mcp-servers-by-url-from-the-mcp-screen branch from 319aee7 to 54417e1 Compare September 1, 2026 04:14
@TheGreatAxios
TheGreatAxios force-pushed the cl-7296-hide-commands-for-disabled-skills branch from 1cd8391 to 16b5f4a Compare September 1, 2026 04:17
@TheGreatAxios
TheGreatAxios force-pushed the cl-7297-add-mcp-servers-by-url-from-the-mcp-screen branch from 54417e1 to 649e1cc Compare September 1, 2026 04:19
@TheGreatAxios
TheGreatAxios changed the base branch from cl-7296-hide-commands-for-disabled-skills to main September 1, 2026 04:20
@TheGreatAxios
TheGreatAxios force-pushed the cl-7297-add-mcp-servers-by-url-from-the-mcp-screen branch from 649e1cc to 20d2ae7 Compare September 1, 2026 04:21
Live Streamable HTTP transports now pass the dispose signal through
requestInit so OAuth auth() refreshes abort on quit. The add row is
hidden while local mcpServers shadow global settings. HTTP URLs must
be real http(s) hosts without userinfo, and persisted as href.
Failed connects used to stay reserved so same-session retry looked like an active duplicate. hasMCPServer now means connected or in-flight. Streamable HTTP fetch always composes the connect AbortSignal so SDK 403 auth() aborts.
The list only stores live status. After a persist-then-connect failure the
settings row already exists, so Enter reconnects that config instead of
adding a duplicate name.
Startup already filtered local-source servers before spawn. Retry went
through late connect with no trust check, so Deny still launched the
command. Apply the same filter on that path.
@TheGreatAxios
TheGreatAxios force-pushed the cl-7297-add-mcp-servers-by-url-from-the-mcp-screen branch from 20d2ae7 to f283656 Compare September 1, 2026 04:32
@TheGreatAxios
TheGreatAxios merged commit 9915453 into main Sep 1, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant