Use your server
Connect an agent
Every deployed server speaks streamable HTTP MCP at https://<slug>.foro.sh/mcp. The project's Overview tab has this exact snippet pre-filled with your own slug and token, ready to copy - the block below is the shape it generates.
How do I add my foro.sh server to Claude, Cursor, Codex, VS Code, Windsurf, Antigravity, or Le Chat?
claude_desktop_config.json / .cursor/mcp.json / mcp_config.json
Claude Desktop, Cursor, and Windsurf all read the same JSON shape - only the file it lives in differs by client:
{ "mcpServers": { "your-project": { "url": "https://your-project.foro.sh/mcp", "headers": { "Authorization": "Bearer <token>" } } } }
The key inside mcpServers can be anything memorable - it's a local label, not something foro reads back. The headers field carries the project's bearer token; see authentication for what it protects and how to rotate it. A project that requires no auth omits headers entirely - just the URL. So does one behind OAuth, where the client discovers what to send and negotiates its own token rather than reading one from a config file.
VS Code's .vscode/mcp.json uses a similar JSON shape, but under a servers key (not mcpServers) with an added type: "http" field on each entry - see the dashboard's Overview tab for the exact block.
Codex reads TOML instead, in ~/.codex/config.toml, with the same URL and bearer token expressed as an http_headers table:
[mcp_servers.your-project] url = "https://your-project.foro.sh/mcp" http_headers = { Authorization = "Bearer <token>" }
Antigravity's ~/.gemini/config/mcp_config.json reads the same mcpServers shape as Claude, Cursor, and Windsurf, but names the URL field serverUrl instead of url.
Le Chat is the exception - there's no config file. Add a custom MCP connector in Le Chat's UI, paste the same https://<slug>.foro.sh/mcp URL, and - for a private project - set its authentication to the project's bearer token. The Overview tab surfaces both values, ready to copy.
claude.ai's own web connector (Settings → Connectors, not the desktop app's claude_desktop_config.json above) is the same shape as Le Chat - no config file, paste the URL into its UI - but its connector settings have no bearer-token field, only a name, the URL, and an optional OAuth client id/secret. A project on Token auth can't be reached from claude.ai's connector at all: set Server access to None or OAuth first.
Worth a detour before pasting a token into a client for the first time: run the same tool from the dashboard's Playground to confirm it returns what you expect.
Does the URL change after a redeploy?
No. The URL is stable across deployments, unaffected by which branch is checked out, or how many times the server has been redeployed since. Paste it into a laptop, a second machine, or a CI job once; there's nothing device-specific about the config.
Can I use a different MCP client?
Yes. The clients above are what the dashboard has ready-made instructions for, but the server itself is a standard streamable-HTTP MCP endpoint - any client that speaks that transport can point at the same URL with the same header, no foro-specific SDK required.