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

stacklok / toolhive / 23141052285
64%

Build:
DEFAULT BRANCH: main
Ran 16 Mar 2026 11:22AM UTC
Jobs 1
Files 559
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

16 Mar 2026 11:18AM UTC coverage: 64.412% (-0.1%) from 64.533%
23141052285

push

github

web-flow
Preserve query params in remote MCP server URLs (#4154)

* Preserve query params in remote MCP server URLs

When a remote MCP server is registered with query parameters in the URL
(e.g., ?toolsets=core,alerting,...), the transparent proxy was silently
dropping them before forwarding requests to the upstream server. The remote
server received only the base path and fell back to its default behavior,
returning fewer capabilities than configured with no error or warning.

Extract the raw query string alongside the path from the registration URL
and merge it into every outbound request via a new WithRemoteRawQuery proxy
option. Remote query params are prepended before any client-supplied params
so operator-configured values take precedence (first-value-wins semantics).
Raw string concatenation is used intentionally to preserve literal characters
like commas that url.Values.Encode() would percent-encode.

Also fix GenerateMCPServerURL to include query parameters in the URL
returned to clients for SSE and streamable transports.

Add a TransparentProxy.ListenerAddr() method to expose the bound address
after start, enabling cross-package tests to use port 0. Add unit tests
covering the proxy director merge logic, the HTTPTransport.Start()
extraction path, and URL generation. Add an E2E test using a local mock
upstream to cover the full CLI→proxy→upstream stack.

Closes #4153

Signed-off-by: Jon Christiansen <467023+theJC@users.noreply.github.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* Update per PR feedback

---------

Signed-off-by: Jon Christiansen <467023+theJC@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

39 of 70 new or added lines in 3 files covered. (55.71%)

216 existing lines in 6 files now uncovered.

48460 of 75234 relevant lines covered (64.41%)

163.74 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
12
75.36
-17.09% pkg/transport/url.go
19
60.12
-21.28% pkg/transport/proxy/transparent/transparent_proxy.go

Uncovered Existing Lines

Lines Coverage ∆ File
2
51.71
-0.19% pkg/workloads/manager.go
3
70.0
-3.33% pkg/state/local.go
5
75.36
-17.09% pkg/transport/url.go
6
20.11
-3.45% pkg/client/manager.go
48
48.63
28.69% pkg/transport/http.go
152
60.12
-21.28% pkg/transport/proxy/transparent/transparent_proxy.go
Jobs
ID Job ID Ran Files Coverage
1 23141052285.1 16 Mar 2026 11:22AM UTC 559
64.48
GitHub Action Run
Source Files on build 23141052285
  • Tree
  • List 559
  • Changed 8
  • Source Changed 3
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23141052285
  • a0f25047 on github
  • Prev Build on main (#23136456079)
  • Next Build on main (#23141866436)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc