claude.ai remote MCP setup
Neotoma with Claude · Remote setup for connecting Neotoma to claude.ai.
Looking for Claude Desktop (local stdio) instead? See Claude Desktop local setup.
Setup
claude.ai connects to MCP servers over the network. Start with local install, then configure remote access:
- Install a tunnel provider: Neotoma's
--tunnelflag needs either ngrok or Cloudflare Tunnel (cloudflared) installed on your machine. Install one:Code snippetCopy the exact snippet shown below.# ngrok (via Homebrew) brew install ngrok ngrok config add-authtoken <YOUR_NGROK_TOKEN> # or Cloudflare Tunnel brew install cloudflaredngrok requires a free account and auth token from dashboard.ngrok.com. You can set the token as an environment variable instead of running
ngrok config:Code snippetCopy the exact snippet shown below.# In your shell profile or .env export NGROK_AUTHTOKEN=<YOUR_NGROK_TOKEN>Cloudflare Tunnel works without an account for quick tunnels. If both providers are installed, Neotoma auto-detects which to use; pass
--tunnel-provider ngrokor--tunnel-provider cloudflareto choose explicitly. - Start the API server with a tunnel: the
--tunnelflag auto-provisions a public HTTPS URL via ngrok or Cloudflare (whichever is installed)Code snippetCopy the exact snippet shown below.neotoma api start --env prod --tunnelThe tunnel URL is printed to the console and written to
/tmp/ngrok-mcp-url.txt. You can also use a reverse proxy or your own domain instead of--tunnel. - Connect in claude.ai: go to Settings → MCP Servers and add your tunnel URL (for example
https://<tunnel-host>/mcp). Claude authenticates via OAuth; the Neotoma API supports the MCP OAuth authorization flow.
--tunnel (Cloudflare or ngrok), set the MCP server URL in Claude to the exact tunnel URL printed at startup (e.g. https://<tunnel-host>/mcp). Do not use a custom domain that points elsewhere (e.g. your own HTTPS host). Traffic must hit the same process that is serving the tunnel; otherwise Connect will fail and you will not see requests in neotoma api logs.