Skip to content

Add Remote MCP Server wizard option for OAuth-protected servers#19

Merged
BillJr99 merged 1 commit into
mainfrom
claude/dreamy-clarke-YdbmJ
May 31, 2026
Merged

Add Remote MCP Server wizard option for OAuth-protected servers#19
BillJr99 merged 1 commit into
mainfrom
claude/dreamy-clarke-YdbmJ

Conversation

@BillJr99

Copy link
Copy Markdown
Owner

Summary

This PR adds a dedicated Remote MCP Server wizard option to the provider creation flow, making it easier for users to bridge OAuth-protected remote MCP servers (like the official Asana server) without manually constructing the mcp-remote command.

Key Changes

  • New wizard step for remote servers: Added a wz-remote step that accepts a server URL and provider name, then automatically constructs the npx -y mcp-remote <url> command and introspects it.

  • Reordered wizard options: Reorganized the provider type selection to prioritize Remote MCP Server (🌐) first, followed by Package, Repository, and Python Code. All options now use equal column widths (col-md-3).

  • Shared introspection logic: Extracted common introspection code into _wzIntrospectCommand() helper function used by both Package and Remote steps, supporting OAuth flow detection and token caching.

  • Updated documentation:

    • Modified README to explain the Remote MCP Server option and how it builds the mcp-remote command automatically
    • Updated Package step description to mention the mcp-remote bridge alternative
    • Removed the standalone examples/asana.yaml file (now generated by the wizard)
  • Wizard state management: Extended WZ_STEPS array to include 'remote' and added cleanup logic for remote-specific form fields.

  • Test coverage: Added test_remote_provider_saved_as_package() to verify that remote providers are correctly saved as package-type YAML with the appropriate mcp-remote command.

Implementation Details

  • Remote providers are internally saved as type: 'package' with a command of npx -y mcp-remote <url>, maintaining consistency with the existing package provider model.
  • The OAuth authorization flow (via mcp-remote) is handled transparently during introspection—users see a clickable 🔐 Authorize link if the server requires authentication.
  • Token caching and refresh are delegated to mcp-remote and its MCP_REMOTE_CONFIG_DIR persistent volume.

https://claude.ai/code/session_01FVNRTtYMvLbRLRCS3LAvik

Add a 4th + New Provider wizard option that takes a bare remote MCP
server URL (e.g. https://mcp.asana.com/v2/mcp) and bridges it via
npx -y mcp-remote <url>, reusing the existing introspection and OAuth
"Authorize" flow. The result is stored as a standard package provider,
so no backend changes are needed.

- Add the 🌐 Remote MCP Server card and a URL-only wizard step
- Refactor wzIntrospect into a shared _wzIntrospectCommand helper so the
  Package and Remote steps reuse the same auth-poll/introspect logic
- Make the Package card/step explicit that remote OAuth servers can be
  added with npx -y mcp-remote <url>
- Fold the Asana example into the README and remove examples/
- Add a test asserting the remote-style provider saves as package YAML

https://claude.ai/code/session_01FVNRTtYMvLbRLRCS3LAvik
@BillJr99 BillJr99 merged commit 2118712 into main May 31, 2026
2 checks passed
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