Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/toolhive/_partials/_client-compat-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
| Continue (VS Code) | ✅ | ❌ | v1.0.14+ |
| Continue (JetBrains) | ✅ | ❌ | v1.0.23+ |
| PydanticAI | ✅ | ❌ | v0.2.18+ |
| ChatGPT Desktop | | ❌ | See [workaround for STDIO-only clients][4] |
| Claude Desktop | | ❌ | See [workaround for STDIO-only clients][4] |
| Kiro | | ❌ | See [workaround for STDIO-only clients][4] |
| ChatGPT Desktop | | ❌ | v0.2.7+ ([see note][4]) |
| Claude Desktop | | ❌ | v0.2.7+ ([see note][4]) |
| Kiro | | ❌ | v0.2.7+ ([see note][4]) |

[3]: /toolhive/reference/client-compatibility.mdx#vs-code-with-copilot
[4]: /toolhive/reference/client-compatibility#stdio-only-client-configuration
54 changes: 42 additions & 12 deletions docs/toolhive/reference/client-compatibility.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -247,28 +247,58 @@ Copilot for JetBrains supports SSE (`"type": "sse"`) and Streamable HTTP

### STDIO-only client configuration

If your client only supports the STDIO transport, you can use the
[remote-mcp](https://www.npmjs.com/package/mcp-remote) npm package to proxy the
ToolHive MCP sever over STDIO.
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.

Example configuration:
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:

```bash
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):

```json
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:19046/sse#github",
"--transport",
"sse"
]
"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](../reference/cli/thv_proxy_stdio.md).

## Related information

- [Client configuration](../guides-cli/client-configuration.mdx)
Expand Down