Use Streamable HTTP transport

Use Streamable HTTP transport

stdio is the default MCP transport and is the right choice for most local desktop clients. Streamable HTTP is available for clients that need a local HTTP URL.

Start HTTP on loopback

Run icuvisor with ICUVISOR_TRANSPORT=http:

macOS:

ICUVISOR_TRANSPORT=http /Applications/icuvisor.app/Contents/MacOS/icuvisor

Windows PowerShell:

$env:ICUVISOR_TRANSPORT = "http"
& "$env:LOCALAPPDATA\Programs\icuvisor\icuvisor.exe"

By default, icuvisor listens on loopback only:

http://127.0.0.1:8765/mcp

Equivalent flags:

macOS:

/Applications/icuvisor.app/Contents/MacOS/icuvisor --transport http --http-bind 127.0.0.1:8765

Windows PowerShell:

& "$env:LOCALAPPDATA\Programs\icuvisor\icuvisor.exe" --transport http --http-bind 127.0.0.1:8765

Config files can also set:

{
  "transport": "http",
  "http_bind": "127.0.0.1:8765"
}

See the CLI reference and config file reference for exact field names and defaults.

Configure the client URL

Use this endpoint in MCP clients that require HTTP:

http://127.0.0.1:8765/mcp

If the client runs on the same computer, do not change the bind address.

LAN binding warning

Only set ICUVISOR_HTTP_BIND or --http-bind to a LAN address when you deliberately want another machine to reach the server.

A LAN bind exposes an unauthenticated MCP server: anyone who can connect to that address can call registered tools using the intervals.icu credentials configured for this icuvisor process. Keep 127.0.0.1:8765 unless you understand that risk.

If you do opt in, use an explicit IP address and port:

ICUVISOR_TRANSPORT=http \
ICUVISOR_HTTP_BIND=192.168.1.10:8765 \
/Applications/icuvisor.app/Contents/MacOS/icuvisor

icuvisor logs a warning when HTTP starts on a non-loopback bind. For how the loopback default fits into icuvisor’s local privacy posture, see Privacy posture.

Troubleshooting

SymptomFix
Client cannot connect to 127.0.0.1:8765Confirm icuvisor is running with HTTP transport, not stdio.
Startup fails with an invalid bind errorUse an explicit IP address and numeric port, such as 127.0.0.1:8765; hostnames are not accepted.
Another machine cannot connectConfirm you intentionally bound a LAN IP, that the OS firewall allows the port, and that the risk is acceptable.
ChatGPT-style remote connector UI rejects or cannot reach icuvisorThis is expected. Remote connector UIs run from provider infrastructure, cannot reach http://127.0.0.1:8765/mcp on your laptop, and require a provider-reachable HTTPS MCP endpoint. icuvisor intentionally does not support that mode until the hosted relay or a future explicit secure-tunnel design. Do not treat a generic public tunnel URL as authentication.