Get started
Quickstart
Signing in with GitHub is the only prerequisite. From there, three ways in - pick the one that matches where you're starting from. All three end the same way: a stable https://<slug>.foro.sh URL your agent can call.
Just exploring? Start with the example server
Every new workspace comes with a small example MCP server already deployed. It's a stateful todo list, and you can open it from the dashboard and head to the Playground tab: pick a tool, run it, and watch a real server answer. Nothing to configure, and it doesn't count against your project quota. This also works if you signed in with email and haven't connected GitHub yet.
Deploy your own repo
- 1Choose I have a repo, pick the repository and the branch to deploy from. foro checks the branch for a
pyproject.tomlor apackage.json- the config your project already has. - 2Nothing found? Then the repo declares neither ecosystem - foro proposes a
pyproject.toml, pre-filled for your repo. Copy it, commit it to the repo root, push, and hit rescan. Everything foro can't infer is optional; see the project config reference for the full list. - 3Create the project and deploy. The deploy log narrates each stage. Clone, manifest validation, image build, container start and health check, with the raw build output one click away. A first deploy typically takes about a minute.
- 4When it's live you get the stable URL, the project's bearer token, and copy-ready config snippets for Claude, Cursor, and other MCP clients. Then call your first tool in the Playground to see it answer.
What the repo needs: a Node MCP server built with npm, pnpm or yarn - no manifest needed, its package.json is enough - or a Python one built with uv, Poetry, pipenv, PDM, or a plain requirements.txt (FastMCP). Either way the server speaks MCP over streamable HTTP. That's the whole contract: no Dockerfile to write, no manifest to add, no platform SDK to learn.
Start fresh from a template
No repo yet? Choose Start fresh, give your server a name, and pick a starter. foro forks the template to your GitHub account under that name, writes the name into the fork's pyproject.toml, and deploys it immediately - you land on the live deploy log. The fork is an ordinary repository you own: clone it, change the tools, push, redeploy.
Names are 3–48 characters of lowercase letters, digits, and dashes - the same rule foro displays by, since the name becomes the package's own name.
After the first tool call
Add the server to your editor or agent with the config snippets on the project's Overview tab. Requests authenticate with the project's bearer token. The dashboard gives you live logs, per-tool metrics with p95 latency, and one-click redeploys when your branch moves ahead of what's deployed.