Skip to content

Conversation

@ethan-huo
Copy link

Problem

When attempting to connect to certain MCP servers like mcp.grep.app using streamable HTTP transport, mcptools returns a 405 error:

$ mcp tools https://mcp.grep.app
Error: unexpected status code: 405

This happens because some MCP servers require the client to include an Accept header that specifies support for both application/json and text/event-stream. Without this header, the server rejects the request.

Solution

This PR modifies the HTTP and SSE transport setup to always include the required Accept header. The change is minimal and affects the header initialization in cmd/mcptools/commands/utils.go.

The fix also simplifies the existing logic by removing conditional header passing, since we now always have at least the Accept header to send.

Testing

Verified the fix works with mcp.grep.app:

$ ./mcp tools https://mcp.grep.app
searchGitHub(query:str, [language:str[]], [matchCase:bool], ...)
    Find real-world code examples from over a million public GitHub repositories...

All existing unit tests continue to pass.

When connecting to MCP servers via streamable HTTP, mcptools was not
setting the Accept header. Some servers like mcp.grep.app require
clients to accept both application/json and text/event-stream, and
return 405 errors when this header is missing.

This change ensures the Accept header is always set for both HTTP
and SSE transports, fixing compatibility with servers that enforce
this requirement.

Tested with mcp.grep.app and existing unit tests pass.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant