Skip to main content

Client compatibility

This page shows which AI clients work with ToolHive and how they connect to MCP servers.

Supported clients

We've tested ToolHive with these clients:

ClientSupportedAuto-configurationNotes
GitHub Copilot (VS Code)v1.102+ or Insiders version (see note)
Cursorv0.50.0+
Roo Code (VS Code)v3.19.2+
Cline (VS Code)v3.17.10+
Claude Code CLIv1.0.27+
Windsurf IDE
Windsurf (JetBrains)
Sourcegraph Amp CLI
Sourcegraph Amp (VS Code)
Sourcegraph Amp (Cursor)
Sourcegraph Amp (Windsurf)
LM Studiov0.3.17+
Goose
GitHub Copilot (JetBrains)v1.5.47+
Continue (VS Code)v1.0.14+
Continue (JetBrains)v1.0.23+
PydanticAIv0.2.18+
ChatGPT Desktopv0.2.7+ (see note)
Claude Desktopv0.2.7+ (see note)
Kirov0.2.7+ (see note)

The minimum versions listed are the earliest versions that support the Streamable HTTP transport protocol.

You can also use other clients and development libraries that support the SSE and/or Streamable HTTP protocol, but you'll need to configure them manually.

Client requirements

To work with ToolHive, your client needs to:

  1. Support the Model Context Protocol (MCP)
  2. Connect to MCP servers using the server-sent events (SSE) or Streamable HTTP transport protocol
  3. Have the correct MCP server URL configured

Automatic configuration support

ToolHive can automatically configure supported clients to connect to MCP servers. See the UI client configuration or CLI client configuration guide for more details.

Check the table above to see which clients support automatic configuration.

For other clients, you'll need to set up the MCP server URL yourself.

Configuration locations

ToolHive manages client configurations in their standard locations.

VS Code with Copilot

GitHub Copilot in VS Code stores its global MCP configuration in your VS Code user settings file.

note

VS Code versions prior to v1.102 stored MCP server settings in the main settings.json file. As of v1.102, this has moved to a dedicated mcp.json file.

ToolHive v0.2.0 and works with VS Code 1.102+ and updates the mcp.json file when you run an MCP server.

If you're using an older version of either ToolHive or VS Code, automatic client configuration will not work as expected and you will need to manually update your configurations. We recommend upgrading both for the best experience.

Standard version:

  • macOS: ~/Library/Application Support/Code/User/mcp.json
  • Linux: ~/.config/Code/User/mcp.json

Insiders edition:

  • macOS: ~/Library/Application Support/Code - Insiders/User/mcp.json
  • Linux: ~/.config/Code - Insiders/User/mcp.json

Example configuration:

{
"servers": {
"github": { "url": "http://localhost:19046/sse#github", "type": "sse" },
"fetch": { "url": "http://localhost:43832/sse#fetch", "type": "sse" },
"osv": { "url": "http://localhost:51712/mcp", "type": "http" }
}
}

When you register VS Code as a client, ToolHive automatically updates the global MCP configuration file whenever you run an MCP server. You can also configure project-specific MCP servers by creating a .vscode/mcp.json file in your project directory.

Cursor

Cursor stores its global MCP configuration in a JSON file in your home directory.

  • All platforms: ~/.cursor/mcp.json

Example configuration:

{
"mcpServers": {
"github": { "url": "http://localhost:19046/sse#github" },
"fetch": { "url": "http://localhost:43832/sse#fetch" },
"osv": { "url": "http://localhost:51712/mcp" }
}
}

Cursor automatically detects the transport mode for HTTP MCP servers.

When you register Cursor as a client, ToolHive automatically updates the global MCP configuration file whenever you run an MCP server. You can also configure project-specific MCP servers by creating a .cursor/mcp.json file in your project directory.

Claude Code

Claude Code stores its global (user scope) MCP configuration in a JSON file in your home directory.

  • All platforms: ~/.claude.json

Example configuration:

{
// Other Claude Code settings...

"mcpServers": {
"github": { "url": "http://localhost:19046/sse#github", "type": "sse" },
"fetch": { "url": "http://localhost:43832/sse#fetch", "type": "sse" },
"osv": { "url": "http://localhost:51712/mcp", "type": "http" }
}
}

When you register Claude Code as a client, ToolHive automatically updates the global MCP configuration file whenever you run an MCP server. You can also configure project-specific MCP servers by creating a .mcp.json file in your project directory, or add servers using the claude CLI:

claude mcp add --scope <user|project> --transport sse fetch http://localhost:43832/sse#fetch

Roo Code and Cline

Roo Code (previously Roo Cline) and Cline store their global MCP configuration in their VS Code extension settings directory. Both use the same configuration format.

Roo Code:

  • macOS: ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
  • Linux: ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json

Cline:

  • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

Example configuration:

{
"mcpServers": {
"github": { "url": "http://localhost:19046/sse#github", "type": "sse" },
"fetch": { "url": "http://localhost:43832/sse#fetch", "type": "sse" },
"osv": { "url": "http://localhost:51712/mcp", "type": "streamable-http" }
// Note: Cline uses "streamableHttp" instead of "streamable-http"
}
}

When you register Roo Code or Cline as a client, ToolHive automatically updates the global MCP configuration file whenever you run an MCP server. With Roo Code, you can also configure project-specific MCP servers by creating a .roo/mcp.json file in your project directory.

Manual configuration

If your client doesn't support automatic configuration, you'll need to set up the MCP server URL manually.

Example: PydanticAI

For PydanticAI, set the MCP server URL in your code:

from pydantic_ai.mcp import MCPServerSSE
from pydantic_ai.mcp import MCPServerStreamableHTTP

# For Server-Sent Events (SSE)
server = MCPServerSSE(url='http://localhost:43832/sse#fetch')

# For Streamable HTTP
server = MCPServerStreamableHTTP(url='http://localhost:51712/mcp')

Example: Continue

For the Continue extension in VS Code or JetBrains, edit your ~/.continue/config.yaml file or project-specific .continue/mcpServers/<name>.yaml file to include the MCP server URL:

mcpServers:
- name: fetch
type: sse
url: http://localhost:43832/sse#fetch

Continue supports SSE (type: sse) and Streamable HTTP (type: streamable-http) transports.

Example: Copilot for JetBrains IDEs

For the GitHub Copilot plugin in JetBrains IDEs (IntelliJ, Pydantic, etc.), edit your ~/.config/github-copilot/mcp.json file to include the MCP server URL:

{
"servers": {
"fetch": { "url": "http://localhost:43832/sse#fetch", "type": "sse" },
"osv": { "url": "http://localhost:51712/mcp", "type": "http" }
}
}

Copilot for JetBrains supports SSE ("type": "sse") and Streamable HTTP ("type": "streamable-http") transports.

STDIO-only client configuration

Some MCP clients, like Claude Desktop, only support MCP servers that communicate via STDIO transport. However, many popular MCP servers use Server-Sent Events (SSE) or Streamable HTTP transport protocols.

ToolHive's thv proxy stdio command transforms servers using SSE or Streamable HTTP into STDIO-compatible processes, enabling these clients to work with any MCP server.

How it works:

  1. ToolHive runs the MCP server in its container with its default transport (SSE, HTTP, or other)
  2. The thv proxy stdio command sets up a STDIO-level wrapper pointing to that existing server
  3. Your client interacts with this wrapper just like any other STDIO MCP server

Example:

First, run an MCP server with SSE transport:

thv run osv --transport sse --name osv

Then configure your client to use the proxy stdio command. For Claude Desktop, update your configuration file (typically located at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
"mcpServers": {
"osv": {
"command": "thv",
"args": ["proxy", "stdio", "osv"]
}
}
}
tip

The workload name you pass to thv proxy stdio (in this case, osv) must match the name you used when running the server with thv run.

After restarting your client, the MCP server's tools will be available for use, even though it uses SSE transport.

For more details, see the thv proxy stdio CLI reference.