Skip to content

Releases: docker/mcp-gateway

v0.27.0

05 Nov 19:10
bc63c91

Choose a tag to compare

v0.27.0 Pre-release
Pre-release

What's Changed

  • update the output of "docker mcp server ls" to surface more details by @austin5456 in #207

Breaking Change

  • These updates change the data structure output of the docker mcp server ls command, any consumers will need to be updated.

Full Changelog: v0.26.0...v0.27.0

v0.26.0

04 Nov 19:37
b99a2f0

Choose a tag to compare

v0.26.0 Pre-release
Pre-release

Changelog: v0.25.0 to HEAD

Features

Working Sets Enhancements

  • Server search functionality - Added ability to search across all working sets to return a list of servers grouped by working set ID (68a8e87)
  • Schema resolution and caching - Working sets now resolve server schemas/snapshots and cache them for improved performance (#213, 7145062)
  • Comprehensive testing - Added tests for working set commands and database operations (#210, f788f54)

MCP Tools Improvements

  • Enhanced mcp-add tool (2219d11):

    • Pull Docker images before initializing servers to catch errors early
    • Improved OAuth handling to check authorization state before prompting
    • Only register and start OAuth providers if they don't already exist
    • Skip authorization flow if user already has valid credentials
    • Better separation of concerns with refactored OAuth status checking
  • Enhanced mcp-config-set tool (2219d11):

    • Added support for JSON-encoded array values
    • Support for arrays, objects, strings, numbers, and booleans
    • Improved display messages with proper JSON formatting
    • Better handling of complex configuration values

Dynamic Tools

  • Enabled by default - Dynamic tools are now enabled by default (5d80b4b)
  • Capability separation - Split up available capabilities from active capabilities for better management (3326167)

Bug Fixes

  • Claude client compatibility - Handle Claude clients with missing notifications, especially for MCP servers with OAuth where authorization arrives asynchronously (94ec997)
  • Linting fixes - Fixed various linting errors (7f65a59, 68f94d8)

Refactoring

  • Code organization - Moved mcp-add to separate file for better code structure (b493525)
  • Working sets naming - Renamed search to servers in working sets for clarity (688c46a)
  • Configuration documentation - Updated config-set parameter description to be more explicit about config document structure (3b3022c)

Summary

This release focuses on significant improvements to working sets functionality, enhanced MCP tool capabilities with better OAuth handling and configuration support, and enabling dynamic tools by default. The changes improve user experience through better error handling, more robust OAuth provider lifecycle management, and comprehensive testing coverage.

Total commits: 12
Contributors: Jim Clark, Cody Rigney, Bobby House
Date range: 2025-10-30 to 2025-11-04

v0.25.0

30 Oct 16:29
8ba4b44

Choose a tag to compare

v0.25.0 Pre-release
Pre-release
Merge pull request #206 from docker/bootstrap_server

Add command to bootstrap an MCP Server with a template

v0.24.0

17 Oct 23:41
f316d03

Choose a tag to compare

v0.24.0 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.23.0...v0.24.0

v0.23.0

14 Oct 14:42
be67911

Choose a tag to compare

v0.23.0 Pre-release
Pre-release
Merge pull request #178 from docker/slim/catalog-migration

Migrate old versions of catalog

v0.22.0

06 Oct 21:28
e4de220

Choose a tag to compare

v0.22.0 Pre-release
Pre-release

Release Notes - v0.22.0

Release Date: October 2025

🚀 New Features

OAuth Token Automatic Refresh

  • Background token refresh infrastructure with event-driven per-provider architecture
  • Monitors OAuth lifecycle events from Docker Desktop via Server-Sent Events (SSE)
  • Proactive token refresh triggers at 10 seconds before expiry (aligns with OAuth library behavior)
  • Automatic retry mechanism handles TokenSource caching with exponential backoff (30s, 1min, 2min, 4min, 8min...)
  • Event-driven provider lifecycle - providers created on login, destroyed on logout
  • Dynamic server support - automatic DCR client registration when using mcp-add
  • Tool handlers OAuth-agnostic - token management fully background, no impact on tool execution

Client Support

  • Added OpenAI Codex client configuration (#165)

🔧 Improvements

SDK Update

  • Updated to MCP Go SDK 1.0.0 (#167)
    • Latest protocol features and improvements
    • Enhanced stability and performance

Catalog Management

  • Use v3 catalog URL when mcp-oauth-dcr feature is enabled (#168)
  • Improved catalog URL override logic to preserve custom URLs
  • Added URL validation before overriding catalog URLs
  • Better handling of catalog version selection

OAuth CLI Improvements

  • Fixed CLI commands for remote MCP OAuth servers (#169)
    • docker mcp oauth authorize now works after mcp-add
    • DCR client registration automatic for dynamic tools
  • Moved DCR cleanup to oauth revoke (safer server disable)
    • docker mcp server disable → Just removes from registry
    • docker mcp oauth revoke → Full cleanup (tokens + DCR client)
  • Unified OAuth server checks using IsRemoteOAuthServer() helper
  • mcp-add registers DCR clients enabling immediate OAuth authorization

Error Handling

  • Gateway continues when images cannot be pulled (#163)
    • Failed image pulls no longer stop gateway initialization
    • Better resilience for partial failures

🐛 Bug Fixes

  • Fixed double-close panics with sync.Once on provider Stop()
  • Prevented goroutine leaks from concurrent GetOAuthApp calls
  • Made all backoff sleeps interruptible by SSE events for responsive event handling
  • Fixed EventLoginSuccess to trigger server reload (not just create provider)
  • Fixed provider cleanup - wrapper goroutines remove dead providers from map
  • Prevented infinite loops with max retry count and expiry tracking

📚 Documentation

  • OAuth provider architecture documentation
  • TokenSource caching analysis with Mermaid sequence diagrams
  • Event-driven lifecycle state machine
  • Clean architecture plan and implementation guide
  • Known limitations documented (TokenSource caching, notification volume)

Full Changelog: v0.21.0...v0.22.0

v0.21.0

29 Sep 18:20
0c107cb

Choose a tag to compare

v0.21.0 Pre-release
Pre-release

Release Notes - v0.21.0

Release Date: September 26, 2025

🚀 New Features

OAuth 2.0 Dynamic Client Registration (DCR)

  • Added support for OAuth 2.0 Dynamic Client Registration (RFC 7591) for MCP servers
  • Implemented automatic OAuth 2.0 Authorization Server Discovery (RFC 8414) and Protected Resource Metadata (RFC 9728)
  • Added new mcp-oauth-dcr feature flag to enable/disable DCR functionality
  • Automatic OAuth server discovery from MCP server 401 responses
  • Public client registration using PKCE for enhanced security
  • Secure token storage via docker-credential-desktop
  • Automatic token refresh handling with client pool invalidation
  • Complete WWW-Authenticate header parsing (RFC 6750) with fallback to well-known endpoints
  • Full compliance with OAuth 2.0/2.1 and MCP Authorization specifications

Self-Contained Image Support

  • Gateway now supports hosting self-contained MCP server images without requiring a catalog (#151)
  • Changed self-contained image prefix from docker.io/ to docker:// for clearer semantics
  • Enables running MCP servers directly from Docker images

Client Support

  • Added support for Claude Code and Opencode AI clients (#156)
  • Added Zed editor client configuration (#143)
  • JSON parsing with comment support using tailscale/hujson for Zed's settings.json

🔧 Improvements

  • Added metrics middleware to dynamic tools for better observability
  • Default verify-signatures setting now disabled when running in a container (#152)
  • Provide ResourceURL when registering DCR for improved OAuth flow (#153)
  • Made ls/list commands consistent across the CLI (#141, #144)

🏗️ Code Structure Changes

  • Moved internal package to pkg for better public API exposure
  • Moved integration tests to improve project organization

📚 Documentation

  • Added documentation for importing OSS MCP registry
  • Updated documentation for new mcp-oauth-dcr feature flag
  • Various documentation improvements and typo fixes

🐛 Bug Fixes

  • Fixed WWW-Authenticate header handling when header is missing or invalid
  • Added fallback to use well-known OAuth endpoint discovery
  • Resolved Accept header conflict issues in remote MCP connections
  • Various code simplifications and cleanup

v0.20.0

16 Sep 15:23
ed87cb1

Choose a tag to compare

v0.20.0 Pre-release
Pre-release

What's Changed

Full Changelog: v0.19.0...v0.20.0

v0.19.0

16 Sep 00:04
6903da8

Choose a tag to compare

v0.19.0 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.18.0...v0.19.0

v0.18.0

03 Sep 19:28
7e6197f

Choose a tag to compare

v0.18.0 Pre-release
Pre-release

What's Changed

  • Respect http and https proxies in the gateway by @cmrigney in #118
  • Show error when OAuth provider doesn't exist by @kgprs in #121

Full Changelog: v0.17.0...v0.18.0