Skip to content

feature/oauth support#16

Closed
Dumbris wants to merge 11 commits into
mainfrom
feature/oauth-support
Closed

feature/oauth support#16
Dumbris wants to merge 11 commits into
mainfrom
feature/oauth-support

Conversation

@Dumbris

@Dumbris Dumbris commented Jul 10, 2025

Copy link
Copy Markdown
Member
  • Enhance README and internal configuration for OAuth support
  • Update Go module and enhance OAuth configuration
  • Fix OAuth retry issue: prevent retries when OAuth is pending
  • Add timeout validation tests and enhance Duration type handling
  • Refactor code for consistency and clarity

Dumbris added 11 commits July 9, 2025 19:41
- Added OAuth 2.0 authentication support details to README, including Device Code Flow and various server transport protocols.
- Updated ServerConfig struct in config.go to include OAuth configuration options.
- Implemented OAuth flow handling in client.go, supporting both Device Code and Authorization Code flows.
- Introduced methods for requesting device codes and polling for tokens, enhancing the client’s ability to manage OAuth authentication.
- Bump Go version to 1.23.0 and update dependencies, including `golang.org/x/sys` to v0.33.0 and `golang.org/x/oauth2` to v0.30.0.
- Introduce new constants for OAuth flow types, deployment types, and connection states in config.go.
- Expand OAuthConfig struct to include additional fields for PKCE settings, redirect URIs, and notification methods.
- Implement user input prompting functionality in a new prompt.go file for better interaction during OAuth flows.
- Enhance client.go to utilize the new prompter and manage OAuth state effectively, including dynamic client registration and notification handling.
- Add check for oauthPending state in shouldRetryLocked()
- Prevents multiple OAuth flows from being triggered during retries
- Fixes issue where background connection retries cause multiple browser windows to open
- Introduced TestTimeoutValidation to validate server timeout configurations.
- Enhanced Duration type with JSON marshaling and unmarshaling methods.
- Updated ServerConfig to include a Timeout field with validation logic.
- Improved connection handling in client and manager components to respect custom timeouts.
- Removed redundant pointer creation function in config_test.go.
- Cleaned up whitespace in JSON unmarshaling and server configuration validation in config.go.
- Improved logging statements in server and upstream manager components for better readability.
- Adjusted test assertions for OAuth auto-discovery to enhance clarity.
- Introduced comprehensive documentation for implementing OAuth authentication with MCP servers in Go.
- Added 'authenticate' operation to MCPProxyServer for handling OAuth authentication requests.
- Enhanced server information retrieval to include OAuth configuration and connection status.
- Implemented dynamic client registration with exact redirect URI handling for improved compatibility with Cloudflare servers.
- Improved logging and error handling throughout the OAuth flow processes.
- Added enableTracing flag to configuration for raw JSON-RPC message tracing.
- Introduced TracingTransport to log outgoing requests and incoming responses.
- Updated MCPProxyServer and Client to utilize tracing functionality.
- Enhanced connection handling to respect OAuth state during connection attempts.
- Improved logging for connection status and OAuth token management.
- Updated logging messages to include emojis for better visibility and context.
- Improved debug and info logs throughout the OAuth flow, including state changes and error handling.
- Added critical comments to clarify the handling of OAuth pending states and flow triggers.
- Ensured consistent logging format across deployment type detection and OAuth operations.
- Added upstreamManager to Client for better callback handling.
- Updated NewClient function to accept upstreamManager as a parameter.
- Implemented ForceReconnect method in Manager to manage client reconnections.
- Refactored OAuth flow to utilize upstreamManager for connection state management.
- Introduced a comprehensive guide for enabling and using raw JSON-RPC message tracing in mcpproxy.
- Detailed methods for enabling tracing via command line, environment variables, and configuration files.
- Included examples of log output formats, use cases, and troubleshooting tips for common issues.
- Provided integration instructions with external tools and scripts for automated analysis.
@Dumbris Dumbris closed this Jul 16, 2025
@Dumbris Dumbris deleted the feature/oauth-support branch September 27, 2025 17:40
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.

1 participant