Skip to content

fix(mcp): let users select both web and claude code together.#667

Open
gewenyu99 wants to merge 3 commits into
mainfrom
posthog-code/mcp-picker-multiselect
Open

fix(mcp): let users select both web and claude code together.#667
gewenyu99 wants to merge 3 commits into
mainfrom
posthog-code/mcp-picker-multiselect

Conversation

@gewenyu99

@gewenyu99 gewenyu99 commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Why

Right now, you can only select Claude Web vs Claude Code.

Not a technical constraint — an accidental regression from #442.

  • feat(mcp): add Claude Desktop/Web to mcp add #517 ("add Claude Desktop/Web to mcp add") introduced the browser connector with a free mode="multi" picker. Mixed picks worked: the post-pick logic (anyNeedsFeatures = clientNames.some(name => !info?.finish)) routed any selection containing a local editor through the feature picker, and connector-only selections installed directly. Selecting the web connector alongside a local editor was fine.
  • feat(mcp): granular feature selection with plugin/MCP decoupling #442 ("granular feature selection with plugin/MCP decoupling") reworked the flow and added a dedicated Phase.Connector screen. As part of that it added exclusive: Boolean(c.finish) to the picker and replaced anyNeedsFeatures with isConnector → Phase.Connector, which doesn't handle a mix. The commit comment frames the connector as "connector-only … show its own screen" — a code convenience to avoid threading a mixed selection through the new screen, not a real conflict. (The PR also noted the manual TUI walkthrough was "still owed before merge.")

So a multi-select silently became single-select for the connector: picking Claude Desktop/Web cleared every other client (and vice-versa), with no label or disabled state explaining why.

Fix

Screen.Recording.2026-06-15.at.5.03.29.PM.mov

Both post-pick phases already doInstall the full selection (Phase.FeatureSelect with features, Phase.Connector with []), so a mixed install needs no new plumbing — the connector just ignores the feature list. So:

  • Drop exclusive from the picker option (free multi-select again).
  • Route a mixed pick through Phase.FeatureSelect (installs local editors with chosen features and opens the connector page).
  • Reserve Phase.Connector for a connector-only selection.

Effectively restores the pre-#442 "mixed picks route through the feature picker" behavior, adapted to the new phase structure.

The client picker is a multi-select but flagged the Claude Desktop/Web
connector 'exclusive', so picking it silently cleared every other client
(and vice-versa) with no indication why. The exclusivity was only there to
avoid a mixed post-pick flow — but both phases already install the full
selection. Drop the flag; route a mixed pick through the feature picker
(doInstall opens the connector page too) and reserve the connector-only
screen for a connector-only selection.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🧙 Wizard CI

Run the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands:

Test all apps:

  • /wizard-ci all

Test all apps in a directory:

  • /wizard-ci basic-integration
  • /wizard-ci error-tracking-upload-source-maps
  • /wizard-ci misc
  • /wizard-ci revenue

Test an individual app:

  • /wizard-ci basic-integration/android
  • /wizard-ci basic-integration/angular
  • /wizard-ci basic-integration/astro
Show more apps
  • /wizard-ci basic-integration/django
  • /wizard-ci basic-integration/fastapi
  • /wizard-ci basic-integration/flask
  • /wizard-ci basic-integration/javascript-node
  • /wizard-ci basic-integration/javascript-web
  • /wizard-ci basic-integration/laravel
  • /wizard-ci basic-integration/next-js
  • /wizard-ci basic-integration/nuxt
  • /wizard-ci basic-integration/python
  • /wizard-ci basic-integration/rails
  • /wizard-ci basic-integration/react-native
  • /wizard-ci basic-integration/react-router
  • /wizard-ci basic-integration/sveltekit
  • /wizard-ci basic-integration/swift
  • /wizard-ci basic-integration/tanstack-router
  • /wizard-ci basic-integration/tanstack-start
  • /wizard-ci basic-integration/vue
  • /wizard-ci error-tracking-upload-source-maps/android
  • /wizard-ci error-tracking-upload-source-maps/cicd-docker-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-github-actions-docker-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-github-actions-nested-docker-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-github-actions-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-gitlab-node-raw
  • /wizard-ci error-tracking-upload-source-maps/cicd-ssh-vps-node-raw
  • /wizard-ci error-tracking-upload-source-maps/flutter
  • /wizard-ci error-tracking-upload-source-maps/ios
  • /wizard-ci error-tracking-upload-source-maps/next
  • /wizard-ci error-tracking-upload-source-maps/next-no-posthog
  • /wizard-ci error-tracking-upload-source-maps/node-raw
  • /wizard-ci error-tracking-upload-source-maps/node-rollup
  • /wizard-ci error-tracking-upload-source-maps/node-rollup-typescript-plugin
  • /wizard-ci error-tracking-upload-source-maps/node-webpack
  • /wizard-ci error-tracking-upload-source-maps/nuxt-3-6
  • /wizard-ci error-tracking-upload-source-maps/nuxt-4-3
  • /wizard-ci error-tracking-upload-source-maps/react-native
  • /wizard-ci error-tracking-upload-source-maps/react-vite
  • /wizard-ci error-tracking-upload-source-maps/rust
  • /wizard-ci misc/quack-quack
  • /wizard-ci revenue/stripe

Results will be posted here when complete.

gewenyu99 and others added 2 commits June 15, 2026 16:21
…r steps

When both a local editor and the browser connector are picked, they no
longer install at once. Local editors install through the feature picker,
then the connector opens as a deliberate next step. The Working screen names
what's installing, and the connector handoff confirms what just installed
("MCP installed for Cursor") and frames the browser step as what's next.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Mixed pick installs local editors first, then the browser connector opens
  as a deliberate step that waits for the user to finish (no auto-advance).
- Working/connector/Done screens name what's installing and what's next; the
  Done summary shows before the tutorial.
- Auth-wait screen surfaces the esc-to-cancel hint instead of looking like a
  hang; a 'Signed in' confirmation step follows auth before the tutorial.
- Looser spacing on the install picker and connector screens.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gewenyu99 gewenyu99 changed the title fix(mcp): let users select the web connector alongside local editors fix(mcp): let users select both web and claude code together. Jun 15, 2026
@gewenyu99 gewenyu99 requested a review from a team June 15, 2026 21:08
@gewenyu99 gewenyu99 marked this pull request as ready for review June 15, 2026 21:08

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I knowww, it's huge nowwww.

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