Always on, no cold starts
Always-on containers keep MCP streaming connections alive.
MCP server hosting · Agent Lab Deploy
Say one sentence in Claude Code, Codex or Cursor and your local MCP server becomes an HTTPS endpoint Claude, ChatGPT and Cursor can reach.
> Deploy this MCP server so Cursor can use it too
sites_build_planDockerfile found · listens on $PORT
sites_createorder-tools → order-tools--acme.hosting.agentlab.run
sites_secrets_generateMCP_TOKEN · generated
sites_deploy_statusBuild passed · secret scan clean
Done: https://order-tools--acme.hosting.agentlab.run/mcp. Add it in Cursor with the header Authorization: Bearer <MCP_TOKEN>.
Why remote
Deploy it remote: everyone shares one server, one change updates all.
Always-on containers keep MCP streaming connections alive.
Passwords, API keys and tokens are project secrets, never in source.
Broke something? One action restores the previous release.
PostgreSQL in the same workspace, connection written into the environment.
Choosing
The table scrolls sideways.
| What matters to you | Agent Lab Deploy | Cloudflare Workers | Your own VPS |
|---|---|---|---|
| How it runs | Always-on container, any language | Edge function, mostly JS/TS | Always on, you run it |
| Python (FastMCP) | Runs as is | Limited | Yes |
| Long-lived connections / SSE | Supported | Needs Durable Objects | Supported |
| Database | PostgreSQL in the same workspace | D1 / external | Install your own |
| Setup | One sentence to an AI tool | wrangler deploy | SSH, Docker, reverse proxy, TLS |
How
One MCP line in Claude Code, Codex or Cursor, then sign in.
The agent creates the app, generates an auth token and builds.
The build returns https://<name>--<org>.hosting.agentlab.run/mcp.
Add it in Claude, ChatGPT or Cursor with the bearer token; Pro for always-on and a custom domain.
Copy and go
Any language: serve HTTP on $PORT, expose /mcp, run as non-root (example: Python FastMCP).
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt # fastmcp
COPY server.py .
USER 1000
EXPOSE 8080
CMD ["python", "server.py"]
# server.py
# from fastmcp import FastMCP
# import os
# mcp = FastMCP("my-tools")
# @mcp.tool
# def lookup_order(order_id: str) -> dict: ...
# mcp.run(transport="http", host="0.0.0.0", port=int(os.environ["PORT"]))PORT the port to listen onMCP_TOKEN from sites_secrets_generate; no bearer, 401DATABASE_URL written by databases_connect_appRead https://app.agentlab.cresclab.com/agent/deploy.md and deploy this MCP server to Agent Lab with the Dockerfile at agentlab.cresclab.com/en/deploy/mcp-server: listen on $PORT at /mcp, generate MCP_TOKEN with sites_secrets_generate for bearer auth. Give me the URL and how to add it to Claude and Cursor.FAQ