Repository navigation
App directory: 41 apps that connect in one click - #14
Merged
Merged
Conversation
Connections gets an app directory of remote MCP servers, each checked live to sign in with dynamic client registration (or to need no sign-in): Jira and Confluence, Asana, Notion, Stripe, Intercom, Granola, Supabase, Sentry and more. Search, category filters, a starter ask on every card, and the connected app's asks show up on the home page. The server and its name come from the directory, so a click can't connect anything else. Fixes sign-in for every OAuth MCP server: the OAuth provider was created inside the connect call that failed, so the authorization URL it built was lost and the connection stuck at needs_auth with no way to authorize.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
An App directory on the Connections page: 41 remote MCP servers that connect in one click. Sign-in happens on the app's own site, and every tool falls under the usual effects and approval rules.
Each card shows a starter ask. Once an app is connected, its ask appears among the home page suggestions. The directory has search and category filters. "Add a connection" links now land on the directory, and Add custom server remains for any other MCP server.
GET /api/connections/cataloglists the directory.POST /api/connections/catalog/:idconnects one app; the URL and name come from the server-side list, so a click can't point anywhere else. It returns 409 if that server is already connected (ignoring host case and trailing slashes). Connections now carrytitleandexamplesfrom the directory.DeepWiki's tools don't say they're read-only, so the directory marks them as reads when connected. They are listed by name, so any tool the server adds later still asks first.
Bug fix: sign-in for OAuth MCP servers
McpSession.checkcreated the OAuth provider insideopen(). When the server asked for sign-in,open()threw before returning the provider, so the authorization URL the SDK put on it was lost. The connection then stayed at "needs authorization" with no URL to open. This affected every OAuth server, including the old presets and custom servers. The provider is now created before connecting. A new test uses a local server with OAuth discovery and dynamic client registration, and asserts that the URL comes back. It fails without the fix.How each app was checked
Every server in the list was connected live through the real endpoint:
Left out because they can't connect in one click: Figma and Dropbox (approved partners only), HubSpot, Box and Asana's newer server (no dynamic registration), Vercel (connect times out), and GitHub's MCP (no dynamic registration; the built-in GitHub covers it). No sign-in was completed on any app, since that needs real accounts.
Tests
bun test: 386 pass?add=1jump, at 1440 px and 390 px. No console errors.🤖 Generated with Claude Code