Bug Description
When registering a remote MCP server whose URL includes query parameters (e.g., ?toolsets=core,alerting,...), those query parameters are not forwarded to the upstream server. Requests arrive at the remote server with only the base path — the query string is silently discarded. The server falls back to its default behavior as if no configuration was provided.
There is no error or warning — the server registers and starts successfully, making the data loss invisible to the user.
Steps to Reproduce
- Register a remote MCP server with query parameters that configure its behavior:
thv run --name datadog \
"https://mcp.datadoghq.com/api/unstable/mcp-server/mcp?toolsets=core,alerting,apm,cases,dbm,error-tracking,feature-flags,llmobs,product-analytics,networks,onboarding,security,software-delivery,synthetics" \
--remote-auth
- Connect an MCP client (e.g., Claude Code) to the registered server.
- Inspect the available tools.
Expected Behavior
All query parameters present in the registration URL are forwarded to the remote server on every request. For the Datadog example above, all explicitly requested toolsets are available — approximately 76 tools across the configured toolsets.
See the Datadog MCP server documentation for how toolsets are selected via query parameters.
Actual Behavior
The remote server receives requests with no query string and falls back to its default configuration. For the Datadog example, only the default toolset is returned — approximately 20 tools — regardless of which toolsets were specified in the registration URL.
Environment
- ToolHive version: v0.12.1 (and current
main)
- OS: macOS (code path is platform-independent; likely affects all platforms)
- Affects all remote MCP servers that rely on URL query parameters for configuration
Additional Context
This affects any remote MCP server that uses query parameters to select capabilities, namespaces, or configuration at the URL level. The registration appears to succeed, so there is no indication to the user that their configuration is being ignored.
I plan to submit a PR to resolve this issue.
Bug Description
When registering a remote MCP server whose URL includes query parameters (e.g.,
?toolsets=core,alerting,...), those query parameters are not forwarded to the upstream server. Requests arrive at the remote server with only the base path — the query string is silently discarded. The server falls back to its default behavior as if no configuration was provided.There is no error or warning — the server registers and starts successfully, making the data loss invisible to the user.
Steps to Reproduce
thv run --name datadog \ "https://mcp.datadoghq.com/api/unstable/mcp-server/mcp?toolsets=core,alerting,apm,cases,dbm,error-tracking,feature-flags,llmobs,product-analytics,networks,onboarding,security,software-delivery,synthetics" \ --remote-authExpected Behavior
All query parameters present in the registration URL are forwarded to the remote server on every request. For the Datadog example above, all explicitly requested toolsets are available — approximately 76 tools across the configured toolsets.
See the Datadog MCP server documentation for how toolsets are selected via query parameters.
Actual Behavior
The remote server receives requests with no query string and falls back to its default configuration. For the Datadog example, only the default toolset is returned — approximately 20 tools — regardless of which
toolsetswere specified in the registration URL.Environment
main)Additional Context
This affects any remote MCP server that uses query parameters to select capabilities, namespaces, or configuration at the URL level. The registration appears to succeed, so there is no indication to the user that their configuration is being ignored.
I plan to submit a PR to resolve this issue.