Skip to content

Setup MCP Server (Optional)

Most people don't need this

The easiest way to use your sources with AI is to drag & drop them directly from Studio into Claude, ChatGPT, Gemini, Grok, or Edison Scientific. The MCP server is an optional upgrade for power users who want a persistent connection — so your AI can search your full library and run Feynman sessions without dragging files each time.

FeynmanLM runs an MCP server locally on your Mac at http://127.0.0.1:8522. To connect Claude, ChatGPT, Gemini, Grok, or Edison Scientific you need a public HTTPS URL that forwards to that local server.

Choose a Connection Mode

ModeBest forPrivacy model
Tailscale Funnel / bring your own tunnelPrivacy-first setupYour assistant connects through infrastructure you control. FeynmanLM servers do not proxy MCP requests.
FeynmanLM hosted Cloudflare relayEasiest setupYour assistant's MCP requests and responses pass through FeynmanLM-operated Cloudflare infrastructure before reaching your Mac.

Hosted relay privacy

The hosted Cloudflare relay is a trusted relay, not end-to-end encryption. FeynmanLM does not design the relay to store MCP request or response bodies, but because the relay forwards the HTTP bodies between your assistant and your Mac, FeynmanLM-operated infrastructure could technically observe that traffic. Use Tailscale or another tunnel you control if you do not want FeynmanLM infrastructure in the MCP traffic path.

Tailscale Setup

Use Tailscale Funnel if you want the privacy-first setup. It gives you a stable *.ts.net URL that forwards to your local MCP server.

1. Install Tailscale

Download and install from tailscale.com/download, then sign in.

2. Start a Funnel

Open Terminal and run:

bash
tailscale funnel --bg 8522

Tailscale prints your public URL:

https://your-mac.your-tailnet.ts.net

This URL is stable — it stays the same across app restarts and reboots. You only need to run this command once.

3. Get Your MCP URL

Open FeynmanLM → Studio → Connect MCP. If the Funnel is running, you'll see:

  • URL — your Tailscale URL with /mcp appended
  • OAuth Client ID and OAuth Secret — advanced fallback credentials for clients that do not support Dynamic Client Registration

For Claude, copy only the URL and leave Claude's advanced OAuth fields blank. Claude registers its own OAuth client automatically.

4. Connect Your AI Assistant

Hosted Cloudflare Relay

The hosted relay is available from FeynmanLM → Studio → Connect MCP when you choose the Cloudflare connection mode. FeynmanLM gives you a stable URL like:

https://<your-id>.feynmanlm.com/mcp

Your Mac keeps the MCP server running locally, opens an outbound WebSocket to the relay, and the relay forwards your assistant's MCP requests to the app. This avoids Tailscale setup, but it means MCP traffic transits FeynmanLM-operated Cloudflare infrastructure.

Use the hosted relay only if you are comfortable trusting FeynmanLM's hosted infrastructure with MCP traffic. For the strongest privacy boundary, use Tailscale or another tunnel you operate.

Managing the Funnel

bash
# Check status
tailscale funnel status

# Stop the Funnel
tailscale funnel --https=443 off

Troubleshooting

Funnel command fails: Make sure Tailscale is installed, running, and you're signed in. Funnel also needs to be enabled in your Tailscale admin console — the command will show a link to enable it if needed.

Your AI says the server is offline: Make sure FeynmanLM is running and your Mac is awake. Open Studio → Connect MCP to verify the server status.

Claude shows {"error":"invalid_client"}: Remove the FeynmanLM connector from Claude and add it again with only the MCP URL. Leave Claude's advanced OAuth fields blank so Claude can use Dynamic Client Registration.

OAuth fails in another client: Double-check that you copied the current OAuth Client ID and OAuth Secret from Connect MCP, and that the OAuth endpoint URLs point at the same domain as your MCP URL. Do not mix a Tailscale MCP URL with feynmanlm.com OAuth endpoints, or a hosted Cloudflare URL with *.ts.net endpoints.

Gemini OAuth never finishes: Gemini CLI needs to open your local browser and receive the OAuth callback on http://localhost:7777/oauth/callback. This won't work in a headless terminal.