Install a Streamable HTTP MCP server
Streamable HTTP MCP servers run as remote services — you connect to them via a URL rather than running a local process. Examples include Supabase, PostHog, and other cloud-hosted MCP endpoints.
What is a Streamable HTTP server?
The MCP specification defines two transport types for servers:
- stdio — a local process that your AI tool launches and communicates with over stdin/stdout. These are the most common type.
- Streamable HTTP — a remote HTTP endpoint (previously called "HTTP/SSE"). Your AI tool connects to a URL and streams results over the connection. No local process needed.
Streamable HTTP servers are identified by a URL instead of a command. In a config file they look like:
{
"mcpServers": {
"supabase": {
"url": "https://mcp.supabase.com/mcp"
}
}
}Step 1 — Find your server's URL
Providers that offer Streamable HTTP MCP servers publish their endpoint URL in their documentation. For example:
- Supabase —
https://mcp.supabase.com/mcp(requires authorization header) - PostHog —
https://mcp.posthog.com/mcp
The URL may require an API key passed as a header. Check the provider's docs.
Step 2 — Install with MCPBolt (recommended)
The fastest way to install is with the MCPBolt menu bar app. Open it, click the paste bar, and paste the URL:
https://mcp.supabase.com/mcp
MCPBolt auto-detects that this is a Streamable HTTP server, picks a server name from the URL, and lets you select which tools to install it into. It writes the correct config for every tool you pick.
If the server requires an authorization header, paste the full JSON config instead (see Step 3 below).
Step 3 — Manual install (any tool)
If you prefer to edit config files manually, here is the correct format for each tool:
Claude Desktop / Cursor / Windsurf / Gemini CLI / Roo / opencode
File: ~/Library/Application Support/Claude/claude_desktop_config.json (for Claude Desktop) or the tool-specific path.
{
"mcpServers": {
"supabase": {
"url": "https://mcp.supabase.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Claude Code (project scope)
File: .mcp.json in your project root. Same format as Claude Desktop.
VS Code
File: .vscode/mcp.json (project) or VS Code user settings.
{
"servers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Zed
Add to Zed's settings.json under context_servers:
{
"context_servers": {
"supabase": {
"url": "https://mcp.supabase.com/mcp",
"settings": {}
}
}
}Codex CLI
File: ~/.codex/config.toml
[[mcp_servers]] name = "supabase" url = "https://mcp.supabase.com/mcp"
Continue
File: ~/.continue/config.yaml
mcpServers:
- name: supabase
url: https://mcp.supabase.com/mcpTroubleshooting
- 401 Unauthorized — The server requires authentication. Add your API key as an
Authorizationheader. - Connection refused / timeout — The URL may be incorrect, or the service may be temporarily unavailable. Check the provider's status page.
- Server shows red in MCPBolt — The health check failed. This usually means the URL is reachable but the server returned an error, often a missing auth header.