feature/oauth support#16
Closed
Dumbris wants to merge 11 commits into
Closed
Conversation
Dumbris
commented
Jul 10, 2025
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
- 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.
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.