Skip to content

feat(mcp): add Claude Desktop/Web to mcp add#517

Merged
skoob13 merged 1 commit into
mainfrom
feat/mcp-claude-web-connector
Jun 5, 2026
Merged

feat(mcp): add Claude Desktop/Web to mcp add#517
skoob13 merged 1 commit into
mainfrom
feat/mcp-claude-web-connector

Conversation

@skoob13

@skoob13 skoob13 commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Problem

mcp add lets users wire the PostHog MCP server into local editors (Cursor, VS Code, Zed) or via a CLI plugin (Claude Code, Codex), but there was no path for Claude Desktop / Claude.ai (web), where PostHog ships as a hosted connector the user adds from the Claude connector directory — not as a local config.

Changes

  • New "Claude Desktop/Web" option in mcp add. Selecting it opens https://claude.ai/directory/connectors/posthog in the browser (opn, same pattern as the OAuth flow).
  • New BrowserFinishable capability + isBrowserFinishable guard (browser-client.ts), mirroring the existing PluginCapable pattern — the connector URL and instruction live on the client, so McpScreen renders them generically with no Claude-specifics in the TUI.
  • The Done screen shows the connector URL and "Sign in and click Connect to finish" (with copy-paste fallback) instead of claiming it's "installed".
  • The feature picker is skipped when only a browser connector is selected — features are configured online, not via CLI-written config.
  • isServerInstalled() returns false, so it stays out of mcp remove. The dormant file-based ClaudeMCPClient is left untouched (it's a DefaultMCPClient test reference).

How did you test this code?

  • New unit tests: claude-web.test.ts (client behavior, opn invocation, browser-finishable detection) and an added case in mcp-installer.test.ts (the finish note is surfaced only for browser connectors).
  • pnpm build && pnpm test — 768 tests pass (50 suites); pnpm lint — 0 errors.
  • Manual: ran the MCP flow via pnpm try — "Claude Desktop/Web" appears in detected clients; selecting it (alone or alongside an editor) opens the connector page and the Done screen shows the finish instructions; picking only the connector skips the feature prompt.

Publish to changelog?

no

Adds a "Claude Desktop/Web" option to `mcp add` that opens the PostHog
connector directory page (https://claude.ai/directory/connectors/posthog)
in the browser, since PostHog ships there as a hosted connector rather
than a local config.

The browser-connector trait is a duck-typed capability (BrowserFinishable
+ isBrowserFinishable), mirroring the existing PluginCapable pattern — the
URL and instruction live on the client, the TUI renders them generically.
The Done screen shows the connector URL and "Sign in and click Connect to
finish" instead of falsely claiming it's installed, and the feature picker
is skipped when only a browser connector is selected (features are
configured online).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 5, 2026

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/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.

@skoob13 skoob13 requested review from a team and joethreepwood June 5, 2026 15:33
@skoob13 skoob13 merged commit 501e55a into main Jun 5, 2026
19 checks passed
@skoob13 skoob13 deleted the feat/mcp-claude-web-connector branch June 5, 2026 16:07
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.

2 participants