This release includes 3 security fixes for security teams reviewing exposed deployments.
Topics
+5 more
Affected surfaces
ReleasePort's take
Light signalVersion v1.4.0 corrects OpenTelemetry span naming and Prometheus metric labeling for the tool name, improving observability.
Why it matters: Patch to v1.4.0 immediately if you rely on accurate tracing or metrics; mislabeled spans can obscure performance issues.
Summary
AI summaryFixed OpenTelemetry span naming and Prometheus metric labeling for the tool name.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Official gRPC adapter example added in examples/grpc-adapter/ (no protoc needed) Official gRPC adapter example added in examples/grpc-adapter/ (no protoc needed) Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Benchmark tests for 4 hot paths added in benchmark_test.go Benchmark tests for 4 hot paths added in benchmark_test.go Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Soak test for memory stability added in soak_test.go Soak test for memory stability added in soak_test.go Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Endurance test for sustained SSE over 10 seconds added in transport/sse_endurance_test.go Endurance test for sustained SSE over 10 seconds added in transport/sse_endurance_test.go Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Three step-by-step guides added to docs/cookbook/ Three step-by-step guides added to docs/cookbook/ Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Dependency | Medium |
CI now includes Windows matrix and release-please manual trigger CI now includes Windows matrix and release-please manual trigger Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Performance | Medium |
Tool call latency reduced from 12µs to 9µs, allocations decreased by 20% (66 → 53) Tool call latency reduced from 12µs to 9µs, allocations decreased by 20% (66 → 53) Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Performance | Medium |
Memory growth stable at 1.06x over 30 seconds sustained load Memory growth stable at 1.06x over 30 seconds sustained load Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
_tool_name now visible to middleware (OpenTelemetry spans and Prometheus metrics correctly labeled) _tool_name now visible to middleware (OpenTelemetry spans and Prometheus metrics correctly labeled) Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Session leak in stdio mode fixed; memory usage stable under sustained load Session leak in stdio mode fixed; memory usage stable under sustained load Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Session leak in stdio mode fixed by reusing a single default session when no `Mcp-Session-Id` header is present Session leak in stdio mode fixed by reusing a single default session when no `Mcp-Session-Id` header is present Source: granite4.1:30b@2026-05-23-audit Confidence: high |
— |
| Bugfix | Medium |
Redundant JSON unmarshal in handleToolsCall eliminated Redundant JSON unmarshal in handleToolsCall eliminated Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Path traversal, empty content, and marshal errors resolved (round-4 review) Path traversal, empty content, and marshal errors resolved (round-4 review) Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
API key scrub bypass, group tool race, and inspector XSS mitigated (round-3 review) API key scrub bypass, group tool race, and inspector XSS mitigated (round-3 review) Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Refactor | Medium |
Adapter now URL-escapes path params, includes gRPC discovery, and rate-limit clock adjustments Adapter now URL-escapes path params, includes gRPC discovery, and rate-limit clock adjustments Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Other | Medium |
Auth middleware error shape clarified (isError result, not JSON-RPC error) Auth middleware error shape clarified (isError result, not JSON-RPC error) Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Other | Medium |
Provider version field renames tool to name@version Provider version field renames tool to name@version Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Other | Medium |
Cookbook links added to README Cookbook links added to README Source: llm_adapter@2026-05-21 Confidence: low |
— |
Full changelog
GoMCP v1.4.0
Bug Fixes
_tool_nameinvisible to middleware — OpenTelemetry spans weremcp.tool.unknown, Prometheus metrics had empty tool labels. Fixed by setting_tool_namebefore the middleware chain fires.- Session leak in stdio mode — every tool call created a new session object. 30s sustained load: 2MB → 227MB. Fixed: reuse a single default session when no
Mcp-Session-Idheader is present. - Redundant JSON unmarshal —
handleToolsCallparsed params twice per call. Eliminated. - Path traversal, empty content, marshal errors (round-4 review)
- API key scrub bypass, group tool race, inspector XSS (round-3 review)
- Adapter: URL-escape path params, gRPC discovery, rate-limit clock
- Schema: nested/array validation + concurrent race + map type
Performance
- Tool call: 12µs → 9µs, 66 → 53 allocs (-20%), 46k calls/s
- Memory: stable at 1.06x growth over 30s sustained load
New
examples/grpc-adapter/— official gRPC adapter example (no protoc needed)benchmark_test.go— 4 hot-path benchmarkssoak_test.go— memory stability assertiontransport/sse_endurance_test.go— 10s sustained SSE testdocs/cookbook/— 3 step-by-step guides- CI: Windows matrix + release-please (manual trigger)
Docs
- Auth middleware error shape clarified (isError result, not JSON-RPC error)
- Provider
versionfield renames tool toname@version - Cookbook links added to README
Full Changelog: https://github.com/zhangpanda/gomcp/compare/v1.3.0...v1.4.0
Security Fixes
- API key scrub bypass fix
- Group tool race condition mitigation
- Inspector XSS vulnerability remediation
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About zhangpanda/gomcp
A Gin-like framework for building MCP servers in Go. Struct-tag auto schema, middleware chain, auth, tool groups, adapters for Gin/OpenAPI/gRPC, async tasks, Inspector UI.
Related context
Beta — feedback welcome: [email protected]