v0.1.5
π Release Highlights
This release focuses on compliance enforcement, reliability improvements, and MCP spec v1.8.0 alignment β tightening configuration validation, improving observability through integrated SDK logging, and eliminating numerous duplicate code patterns across the codebase.
β οΈ Breaking Changes
The following configuration validation changes may require updates to existing configs:
- Docker required for TOML stdio servers (#1029): TOML-configured stdio servers must now use
command = "docker". Direct command execution without containerization is rejected at startup. See the Configuration Reference for thecontainerfield syntax. - Explicit mount mode required (#1231): Volume mount entries in server configs must now include an explicit
modefield ("ro"or"rw"). Mounts without a declared mode are rejected. mountsfield rejected for HTTP servers (#1122): HTTP-type server configurations that include amountsfield now fail validation with a clear error message.
β¨ What's New
- MCP Spec v1.8.0 compliance (#1065): MCP Gateway now targets spec version 1.8.0, keeping pace with the evolving Model Context Protocol standard.
- Integrated MCP SDK logging (#1067): The project's debug logger is now wired into
ClientOptionsandServerOptionsfor the MCP SDK, giving full visibility into SDK-level activity via theDEBUG=*flag. - Timeout enforcement for jq middleware (#961): The gojq processing middleware now enforces execution timeouts, preventing runaway jq expressions from stalling request pipelines.
- Centralized payload preview size (#1066): The
PayloadPreviewSizeconstant is now configurable from a single location, making it easier to tune large-payload handling behavior. - Nightly workflow auto-upgrader (#986): A new nightly workflow automatically upgrades agentic workflow tooling to the latest gh-aw releases, keeping CI tooling current without manual intervention.
π Bug Fixes & Improvements
- SSE JSON-RPC parsing on HTTP error paths (#1085): Fixed a parsing failure where error responses from HTTP backends weren't correctly decoded when using SSE transport.
- Tool logging format (#1243): Updated tool invocation log format for improved readability in operational logs.
- Consolidated variable expansion logic (#1014): Duplicate
\$\{VAR_NAME}expansion implementations have been unified, ensuring consistent behavior across TOML and JSON config paths.
π Documentation
- Fixed
payloadSizeThresholdconfiguration docs to accurately reflect all three configuration methods:--payload-size-thresholdflag,MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLDenv var, andpayload_size_thresholdin[gateway]TOML section (#1233). - Fixed 5 documentation discrepancies surfaced by the nightly docs reconciliation workflow (#1123).
- Documented session persistence implementation for stdio backends (#1042).
- Documented BurntSushi/toml v1.6.0 usage and TOML 1.1 implementation (#982).
π³ Docker Image
The Docker image for this release is available at:
docker pull ghcr.io/github/gh-aw-mcpg:v0.1.5
# or
docker pull ghcr.io/github/gh-aw-mcpg:latestSupported platforms: linux/amd64, linux/arm64
For complete details, see the full release notes.
Generated by Release
What's Changed
- [log] Add debug logging to main.go by @github-actions[bot] in #914
- [test] Add comprehensive tests for launcher.LogHelpers by @github-actions[bot] in #918
- [WIP] Fix incorrect payload size threshold documentation by @claude in #936
- Debug test-coverage-improver workflow failure (run 21994653857) by @claude in #935
- Add Python language server to Serena MCP container by @claude in #920
- Refactor HTTP request initialization to eliminate duplicate code pattern by @claude in #937
- Refactor: Extract marshalToResponse helper to eliminate duplicate JSON marshal pattern by @claude in #938
- [test-improver] Improve tests for sys package by @github-actions[bot] in #950
- [log] Add debug logging to config validation rules by @github-actions[bot] in #958
- Add timeout enforcement and comprehensive tests for gojq middleware by @claude in #961
- fix: correct log helper test expectations by @lpcox in #979
- Addressing PR comments by @claude in #977
- Refactor: Extract duplicate MCP session validation into requireSession() helper by @claude in #978
- Configure CI to trigger smoke-copilot, large-payload-tester, and language-support-tester workflows by @claude in #980
- Refactor: Extract parameter marshaling helper and fix silent error ignoring by @claude in #981
- Document BurntSushi/toml v1.6.0 usage and TOML 1.1 implementation by @claude in #982
- Add nightly workflow to upgrade workflows to latest gh-aw releases by @Copilot in #986
- Fix release workflow trigger: use workflow_dispatch instead of tag push by @claude in #993
- Fix test-coverage-improver workflow sparse checkout by @Copilot in #1013
- Consolidate duplicate variable expansion logic by @Copilot in #1014
- Upgrade go-sdk to v1.3.0 and adopt ClientOptions pattern by @Copilot in #1018
- Install Go 1.25.0 before language support testing by @Copilot in #1026
- Eliminate duplicate code patterns in JSON-RPC parsing and config initialization by @Copilot in #1022
- Enforce Docker containerization requirement for TOML stdio servers by @Copilot in #1029
- Add sandbox configuration to enable Docker for language support testing by @Copilot in #1036
- Document existing session persistence implementation for stdio backends by @Copilot in #1042
- [test] Add comprehensive tests for parseJSONRPCResponseWithSSE by @github-actions[bot] in #1047
- Pre-pull Serena MCP container to prevent initialization timeouts by @claude in #1049
- [test] Add tests for config.convertStdinServerConfig by @github-actions[bot] in #1062
- Update MCPGatewaySpecVersion to 1.8.0 by @Copilot in #1065
- Centralize jq payload preview size configuration by @Copilot in #1066
- Integrate project logger with MCP SDK ClientOptions and ServerOptions by @Copilot in #1067
- Refactor: Code organization improvements from semantic clustering analysis by @Copilot in #1068
- Upgrade agentic workflows to v0.46.1 by @Copilot in #1079
- Fix SSE JSON-RPC parsing for HTTP error paths by @lpcox in #1085
- Use locally built MCP gateway in smoke-copilot workflow and trigger on Go PRs by @Copilot in #1080
- Add MCP Gateway build steps to language-support-tester workflow by @Copilot in #1089
- Fix workflow failures: use registry image name for local container builds by @Copilot in #1097
- Reject
mountsfield for HTTP servers (T-CFG-019) by @Copilot in #1122 - docs: fix 5 discrepancies from nightly documentation reconciliation by @Copilot in #1123
- Eliminate three duplicate code patterns in logger and config packages by @Copilot in #1120
- Use ghcr.io/github/gh-aw-mcpg:latest across all agentic workflows by @Copilot in #1132
- [test] Add tests for difc.Capabilities by @github-actions[bot] in #1135
- [test-improver] Improve tests for config/rules package by @github-actions[bot] in #1136
- Fix smoke-copilot workflow container tag mismatch by @claude in #1144
- [log] Add debug logging to difc/capabilities.go by @github-actions[bot] in #1168
- [test] Add tests for difc.resource types by @github-actions[bot] in #1169
- [test-improver] Improve tests for cmd flags and mcp schema packages by @github-actions[bot] in #1170
- Fix documentation discrepancies in CONTRIBUTING.md and README.md by @claude in #1175
- Upgrade workflows to gh-aw v0.47.1 by @claude in #1174
- Addressing PR comments by @claude in #1176
- Addressing PR comments by @claude in #1173
- Eliminate duplicate code in server HTTP endpoint registration by @claude in #1186
- Fix Serena MCP test tool discovery in smoke test workflow by @claude in #1195
- Refactor: Move logger helpers and flag completions to correct files by @claude in #1196
- Fix Serena MCP tools configuration in smoke-copilot workflow by @claude in #1200
- fix(compliance): require explicit mount mode in volume mount validation by @Copilot in #1231
- refactor: consolidate environment variable reading using envutil helpers by @claude in #1237
- docs: fix payloadSizeThreshold config options and DOCKER_API_VERSION description by @claude in #1233
- Increase timeout for Nightly Workflow Upgrader (15β25 min) by @Copilot in #1232
- [test-improver] Improve tests for sanitize package by @github-actions[bot] in #1230
- [test] Add tests for server.WithSDKLogging by @github-actions[bot] in #1229
- [log] Add debug logger to config feature registration framework by @github-actions[bot] in #1228
- Remove unused fields from handlerCapture test struct by @Copilot in #1242
- Fix language-support-tester: use serena- prefixed tool names in agent prompt by @Copilot in #1241
- Remove unused fields from handlerCapture test struct by @Copilot in #1244
- Copilot/update tool logging format by @lpcox in #1243
Full Changelog: v0.1.4...v0.1.5