diff --git a/README.md b/README.md index bc0a4a7..6aecfab 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ To bypass authentication, or to emit custom headers on all requests to your remo ```json "command": "npx", "args": [ - "-y" + "-y", "mcp-remote", "https://remote.mcp.server/sse" ] @@ -131,6 +131,14 @@ npx mcp-remote https://example.remote/server --transport sse-only - `http-only`: Only uses HTTP transport, fails if the server doesn't support it - `sse-only`: Only uses SSE transport, fails if the server doesn't support it +### Post-Auth Redirect URI + +To customize the redirect behavior after an OAuth flow, include a `postAuthRedirectUri` query parameter in the request to the OAuth callback endpoint. This parameter specifies where users should be redirected after successful authentication. + +Ensure that your server appends `postAuthRedirectUri` as a query parameter when invoking the `redirectUri`. + +Once authentication is complete, users will be redirected to the specified URI instead of seeing the default "Authorization successful" message. This allows you to deliver a smoother user experience by guiding users to a custom post-authentication page. + ### Claude Desktop [Official Docs](https://modelcontextprotocol.io/quickstart/user) diff --git a/src/lib/utils.ts b/src/lib/utils.ts index a0a60dc..28f907a 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -310,7 +310,12 @@ export function setupOAuthCallbackServerWithLongPoll(options: OAuthCallbackServe log('Auth code received, resolving promise') authCompletedResolve(code) - res.send(` + const postAuthRedirectUri = req.query.postAuthRedirectUri as string | undefined + if (postAuthRedirectUri) { + log(`Redirecting to post-auth redirect URI: ${postAuthRedirectUri}`) + res.redirect(postAuthRedirectUri) + } else { + res.send(` Authorization successful! You may close this window and return to the CLI. `) + } // Notify main flow that auth code is available options.events.emit('auth-code-received', code)