Repository navigation
docs: browser sign-in for custom MCP servers, no MCP server limit, one install URL #166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
a966505
11362ef
18f5173
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -135,10 +135,40 @@ Mogplex supports two connection categories: | |
| | REST API | Base URL plus optional auth | A typed external HTTP tool surface. | | ||
| | MCP Server | MCP URL or command plus auth material | Tools exposed by the MCP server. | | ||
|
|
||
| Manual auth modes include none, API key, bearer token, basic auth, and OAuth. | ||
| Manual auth modes include none, API key, bearer token, basic auth, and OAuth | ||
| with your own client settings. MCP servers can also use OAuth browser sign-in, | ||
| described below. | ||
| Connection credentials are stored server-side and resolved only when the | ||
| connection is tested, listed for CLI sync, or used by a run. | ||
|
|
||
| ### Sign in to an MCP server through the browser | ||
|
|
||
| In the **Integrations** tab, choose **OAuth (browser sign-in)** in the custom | ||
| connection form when you add an MCP server that signs users in with OAuth. Enter only the server's MCP URL. After you select **Add and sign | ||
| in**, Mogplex sends you to the server's sign-in page and returns you to | ||
| Connections when you approve access. | ||
|
|
||
| Mogplex follows the MCP authorization spec, so you do not need to register an | ||
| app with the provider first: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggestion: New browser sign-in section would benefit from a "verify the sign-in domain" line The section explains that the MCP server's protected-resource metadata decides which authorization server you get sent to and that Mogplex registers itself there automatically. That is correct, but it also means the destination of the sign-in page is chosen by the server, not by the user, and credentials are then typed into that page. Existing Security notes on this page cover treating MCP config as |
||
|
|
||
| - Mogplex reads the server's protected-resource metadata to find its | ||
| authorization server. | ||
| - Mogplex registers itself as a client with that server. | ||
| - Every sign-in uses PKCE, and the token is issued for that MCP server only. | ||
|
|
||
| The server chooses which authorization server Mogplex sends you to. Before you | ||
| approve, confirm the sign-in page belongs to the provider you expect. | ||
|
|
||
| If the provider gave you a client ID or fixed endpoints, you can enter them from | ||
| the connections pane instead. Mogplex refreshes the token when it expires. If | ||
| the provider revokes access, select **Reconnect** to sign in again. | ||
|
|
||
| The Mogplex CLI uses the connection after you sign in on the web. See | ||
| [CLI sync](#cli-sync). The CLI cannot yet start this sign-in by itself. | ||
|
|
||
| OAuth for a REST API connection still needs the client ID, client secret, | ||
| authorize URL, and token URL from the provider. | ||
|
|
||
| ## Quick-add presets | ||
|
|
||
| Connections includes MCP presets for common tool providers: | ||
|
|
@@ -267,13 +297,14 @@ connections. | |
| Read [Connection Scope and Overrides](/web/guides/connection-scope-and-overrides) | ||
| for the full operating model. | ||
|
|
||
| ## MCP limits | ||
| ## Keep the tool surface focused | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggestion: Heading rename drops the Renaming "MCP limits" to "Keep the tool surface focused" removes the No inbound links to it were found in CI runs only lint, typecheck, test, and build, so a stale anchor elsewhere would not fail the build. Worth a repo-wide grep for |
||
|
|
||
| Mogplex caps enabled MCP server connections from **Integrations** at five per resolved scope. | ||
| The **MCP Servers** catalog has no server-count cap. | ||
|
|
||
| The cap protects runs from receiving an oversized or noisy tool surface. If a | ||
| repo reaches the cap, decide whether to: | ||
| Mogplex does not limit how many MCP servers you connect. Each enabled server | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggestion: Removing the cap leaves the per-turn startup budget unexplained "Mogplex does not limit how many MCP servers you connect. Each enabled server that a run's surface loads adds tools that the agent must choose from." drops the previous explanation of why the cap existed, namely that an oversized surface is what actually hurts runs. The page already documents the mechanism that bites first: "Control waits up to eight seconds for remote MCP servers" and "A server that misses that deadline is left out", in Where connection tools load and in the Saved MCP tool troubleshooting row. With no server cap, nothing connects the new advice to that behaviour. A reader who adds many remote servers can therefore see tools silently disappear from a turn and have no stated reason why. One sentence pointing at that deadline would close the gap. |
||
| that a run's surface loads adds tools that the agent must choose from. See | ||
| [Where connection tools load](#where-connection-tools-load) for which surfaces | ||
| load which servers. Remote servers also share Control's startup deadline, and a | ||
| server that misses it is left out of that turn. If a repo loads tools that it | ||
| does not need: | ||
|
|
||
| - disable a connection | ||
| - exclude a global MCP from that repo | ||
|
|
@@ -302,6 +333,12 @@ On startup, the CLI can use the remote list, the cache, or no cloud MCP list if | |
| there is no token and no cache. A network or auth failure can fall back to the | ||
| cache so existing local work is not blocked by a transient catalog fetch issue. | ||
|
|
||
| The same response also carries your enabled MCP connections from the | ||
| **Integrations** tab, as MCP config. If a saved server and a connection share a | ||
| name, the saved server wins. A connection that you signed in to through the | ||
| browser arrives with a current access token. Mogplex refreshes that token, so | ||
| the CLI does not need its own sign-in. | ||
|
|
||
| Use `/mcp` in the CLI to inspect MCP state during a session. | ||
|
|
||
| ## Security notes | ||
|
|
@@ -323,7 +360,7 @@ Use `/mcp` in the CLI to inspect MCP state during a session. | |
| | Integration tool missing in a hosted run | Confirm the connection is enabled and included in the repo's resolved set. | | ||
| | Saved MCP tool missing in web chat | Confirm the URL is public and the server supports Streamable HTTP. Choose Test connection, then check the result and each tool's permission. Enable the server to use its allowed tools. A server that misses the startup deadline stays out of that turn, even when an earlier test succeeded. | | ||
| | Saved MCP tool needs approval | Use Control for tools set to Ask in Control (`prompt` in Extra JSON). Other hosted chat surfaces withhold them. | | ||
| | Integration tool works globally but not in one repo | Check for a project exclusion or a project-specific connection cap. | | ||
| | Integration tool works globally but not in one repo | Check for a project exclusion, or a connection that is not enabled in that repo. | | ||
| | CLI does not show cloud MCP servers | Confirm CLI token login, then inspect `/mcp` and the remote cache file. | | ||
| | OAuth preset stopped working | Reconnect it from Connections and retest before changing prompts. | | ||
| | MCP response leaks secrets in logs | Rotate the exposed credential and stop logging MCP config output. | | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion: Name the tab in the browser sign-in instructions
The text reads "Choose OAuth (browser sign-in) when you add an MCP server that signs users in with OAuth" without saying which surface it happens on.
The page documents two different add flows: the Integrations custom connection form, which is where the auth-mode list appears immediately above at L138, and the separate MCP Servers tab.
The MCP Servers flow in "Use a saved server in web chat" is documented as Add server / Streamable HTTP / headers / Enabled, with no OAuth option, so a reader coming from that tab will look for a control that may not exist there.
Saying "In the Integrations tab, choose OAuth (browser sign-in)" makes it unambiguous.
That wording also matches
content/docs/web/settings.mdxL208-L212 in this same PR, which lists "OAuth browser sign-in for MCP servers" as an Integrations-tab auth mode.If the flow is also available for saved servers, the saved-server section needs a matching sentence.