• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 30076713529
69%

Build:
DEFAULT BRANCH: main
Ran 24 Jul 2026 07:55AM UTC
Jobs 1
Files 822
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Jul 2026 07:48AM UTC coverage: 69.237% (+0.02%) from 69.219%
30076713529

push

github

web-flow
Add opt-in strict MCP-Protocol-Version validation (#5957)

The streamable HTTP proxy accepted any MCP-Protocol-Version header
(isSupportedMCPVersion always returned true). This was an undocumented,
deliberately permissive stance: defensible for a transport-level proxy
that does not depend on a specific MCP revision, but the spec says a
server MUST reject an invalid/unsupported version with HTTP 400, and
operators had no way to opt into that behavior.

Add a --strict-protocol-validation flag (default off, preserving the
version-agnostic behavior byte-for-byte). When enabled, the proxy rejects
a request whose MCP-Protocol-Version header names an unknown MCP revision
with HTTP 400; an absent header is still accepted (the spec says to assume
2025-03-26). The known-version set is checked against a small map, with
the upcoming stateless revision sourced from mcp.MCPVersionModern so the
strict gate and the ClassifyRevision routing path cannot drift.

The flag is threaded end-to-end mirroring TrustProxyHeaders: CLI ->
RunConfig -> types.Config -> StdioTransport -> streamable proxy option,
and is preserved across thv upgrade via the config applier. The default
version-agnostic stance and the opt-in flag are documented in
docs/arch/03-transport-architecture.md.

Closes #5764.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

38 of 39 new or added lines in 8 files covered. (97.44%)

12 existing lines in 4 files now uncovered.

77834 of 112417 relevant lines covered (69.24%)

78.55 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
49.9
0.21% pkg/transport/stdio.go

Coverage Regressions

Lines Coverage ∆ File
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
3
67.14
-4.29% pkg/state/runconfig.go
2
62.12
0.43% pkg/workloads/manager.go
1
49.9
0.21% pkg/transport/stdio.go
Jobs
ID Job ID Ran Files Coverage
1 30076713529.1 24 Jul 2026 07:55AM UTC 822
69.24
GitHub Action Run
Source Files on build 30076713529
  • Tree
  • List 822
  • Changed 18
  • Source Changed 11
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30076713529
  • 97a9dfa4 on github
  • Prev Build on main (#30075086266)
  • Next Build on main (#30079935442)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc