# Host your own MCP server

> I built tools for Claude as an MCP server, and I want it at a web address so Claude can use them without anything running on my laptop.

A remote MCP server is a small web service that gives an AI client your tools. It needs a public HTTPS address that answers, and very little else. One provider deploys one in a click, a few publish guides, and several providers' own MCP servers are something else entirely.

Guide page: https://botperch.com/use-cases/mcp-server/

**Short answer:** The cheapest machine that runs it as described is Agent 37 at $5.30 a month, then Runtime ($6.39) and Lizard ($19.00). 12 of 16 providers run it without a catch. Any AI model is billed separately and not priced here. List prices checked 29 October 2026.

The [Model Context Protocol](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports) (MCP) is how AI apps such as Claude find and use outside tools: search your documents, file a ticket, query a database. An **MCP server** is the program that offers those tools.
A local server runs on your own computer, started by the app. A remote one runs at a web address and speaks "Streamable HTTP", so Claude or [Claude Code](https://code.claude.com/docs/en/mcp) can connect from anywhere. Claude's guide says a remote server "runs on infrastructure you host and is reachable over the internet" ([Claude](https://claude.com/docs/connectors/building)).
Watch the wording on provider sites. Daytona, Sprites, Runtime and E2B all document MCP servers, but theirs let an AI agent control their sandboxes, or run MCP tools privately for your own agent. They are not a way to host your server for Claude.

## What it needs

- **Machine size:** No vendor publishes one. A server whose tools call other services is a small web process: 1 vCPU / 1 GiB / 10 GiB covers it, logs and an optional session store. A server whose tools run code or a browser should be sized like that work. [source](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports)
- **Does it stay on?:** It must answer whenever the client calls. A host that sleeps can work if it wakes on the incoming request: Lizard's guide sleeps after 10 quiet minutes, and the first call afterwards takes longer. Claude allows 240 seconds per tool call. [source](https://lizard.build/docs/guides/deploy-mcp-server)
- **What must survive a restart:** Usually nothing: Cloudflare's template builds a fresh server for each request. If you use OAuth (a standard sign-in so only allowed users can connect), the signing keys and registered clients must survive, or every client has to sign in again. [source](https://developers.cloudflare.com/agents/model-context-protocol/guides/remote-mcp-server/)
- **Browser, Docker, GPU:** No browser unless a tool drives one. Docker is optional. A database only if a tool needs one, and it can live elsewhere. No GPU: the model runs on the client's side. [source](https://claude.com/docs/connectors/building)
- **How busy it is:** Idle between tool calls and busy for milliseconds during one. There is no benchmark for it; the calculator uses 2%, below Battleships' 6% for an always-on agent, because the server only passes calls on. [source](https://battleships.dev/data/rankings/employees.json)

## Picks

- **Cloudflare Sandbox**, If you do not want a terminal: The only one-click route: a Deploy to Workers button creates a working remote MCP server, free up to 100,000 requests a day. Watch: It is a Worker, not a sandbox, so the calculator's Cloudflare Sandbox price does not apply. The free plan allows 10 ms of CPU per request, enough for tools that call other services but not for heavy ones. https://developers.cloudflare.com/agents/model-context-protocol/guides/remote-mcp-server/
- **Lizard**, If you want a guide that covers access: The most complete guide, including a token check and sleep when idle, so a quiet server costs little. Inside the $19 monthly plan that comes back as usage. Watch: Its sample token expires after an hour and the signing key is not saved; use your own token issuer for a lasting server. https://lizard.build/docs/guides/deploy-mcp-server
- **Runtime**, If you want an always-on machine and your own domain: CPU is billed only while it works, so a small server answering all month is about $6, with a custom domain. Watch: No MCP guide; you set up the server, HTTPS address and access check yourself. One US region. https://withruntime.com/docs/pricing

## How to run it on each provider

- **Cloudflare Sandbox** (one-click; no terminal: yes): A Deploy to Workers button creates a remote MCP server at a workers.dev address ending in /mcp. This is a Cloudflare Worker, not the Sandbox product. Price: Workers Free plan; Workers Paid from $5 a month. [Cloudflare: build a remote MCP server](https://developers.cloudflare.com/agents/model-context-protocol/guides/remote-mcp-server/)
- **Lizard** (guide; no terminal: no): A complete guide: Streamable HTTP, a token check so only your clients get in, a health check, a public HTTPS address and sleep when idle. Deployed from the command line. [Lizard: host a remote MCP server](https://lizard.build/docs/guides/deploy-mcp-server)
- **Blaxel** (guide; no terminal: no): One command creates a TypeScript or Python MCP server, deployed as a Blaxel Function with a global web address. Command line, not dashboard. [Blaxel: create an MCP server](https://docs.blaxel.ai/Functions/Create-MCP-server)
- **Modal** (guide; no terminal: no): An official example deploys a stateless MCP server, written in Python, as a Modal app. [Modal: stateless MCP server](https://modal.com/docs/examples/mcp_server_stateless)
- **Sandboxer** (guide; no terminal: partly): A detailed guide runs each MCP server in its own sandbox at a private address with its own token. Suited to clients you control, not to Claude's web connector. [Sandboxer: one MCP server per sandbox](https://sandboxer.com/guides/run-each-mcp-server-in-its-own-sandbox)
- **Boat** (manual; no terminal: partly): Run the server and make its port public; Boat gives the port a public address that stays the same after resume. No custom domains, and no MCP guide. [Boat: pricing and public URLs](https://docs.boat.dev/pricing)
- **boxd** (manual; no terminal: partly): A machine plus a self-serve custom domain, with HTTPS set up for you, makes a clean MCP host. No MCP guide. [boxd: custom domains](https://docs.boxd.sh/guides/custom-domains)
- **InstaBox** (manual; no terminal: partly): A public port works and wakes a paused machine, but published ports have no login: "anyone can reach the whole service". Put the access check in the server. No MCP guide. [InstaBox: ports](https://instabox.sh/docs/ports)
- **Morph** (manual; no terminal: partly): Public HTTP services and wake on request make a Devbox a workable host. No MCP guide. [Morph: HTTP services](https://cloud.morph.so/docs/documentation/instances/http-services)
- **Runtime** (manual; no terminal: partly): Runtime's catalogue MCP servers run at private addresses for your own agent. Hosting yours for Claude is a normal sandbox with a custom domain; no guide. [Runtime: overview](https://withruntime.com/llms.txt)
- **Agent 37** (manual; no terminal: no): No MCP template. A custom image can run the server, and every port gets a public agent37.app address. No MCP guide. [Agent 37: templates](https://www.agent37.com/docs/agents-api/templates)
- **Daytona** (manual; no terminal: no): Daytona's own MCP server lets an AI agent control Daytona sandboxes. Hosting your own server is a manual install with no guide. [Daytona: its MCP server](https://www.daytona.io/docs/en/mcp)
- **E2B** (manual; no terminal: no): E2B's MCP gateway runs MCP tools inside a sandbox for your agent, which is the opposite direction. Sessions also end after one or 24 hours. [E2B: MCP gateway](https://docs.e2b.dev/mcp-gateway)
- **Sprites** (manual; no terminal: no): Sprites publishes a remote MCP server for controlling Sprites. Hosting yours means a service on a port, which wakes on a request; no guide. [Sprites: its remote MCP server](https://docs.fly.io/sprites/integrations/remote-mcp.md)
- **Vercel Sandbox** (manual; no terminal: no): A sandbox port gets a public address, but sandboxes are made for one task and end; a Vercel Function would be the simpler host. No MCP guide. [Vercel Sandbox: concepts](https://vercel.com/docs/sandbox/concepts)

## Monthly machine cost (preset `mcp`)

One small 1 vCPU / 1 GiB / 10 GiB server that must answer at a public address all month. About 2% CPU, because it only passes tool calls on. Where a provider sleeps an idle machine and wakes it on a request, it is awake about a third of the time (roughly the working day when people call it) and billed as stopped the rest. No model: the AI runs in the client.

- Agent 37: $5.30
- Runtime: $6.39
- Lizard: $19.00
- Boat: $20.00
- InstaBox: $20.00
- Sandboxer: $20.00
- Sprites: $22.91
- Blaxel: $31.42
- Morph: $36.50
- boxd: $45.23
- Daytona: $49.01
- Tensorlake: $250.00
- Vercel Sandbox: $20.00 (catch: Sessions end after 24 hours, so an always-on machine has to be restarted by your own code.)
- Modal: $39.33 (catch: Sessions end after 24 hours, so an always-on machine has to be restarted by your own code. Modal sandboxes have no stopped state; keeping files needs a Volume or a snapshot.)
- Cloudflare Sandbox: $46.95 (catch: A stopped instance loses its disk; files have to be backed up to R2 or a snapshot and restored.)
- E2B: $48.62 (catch: Sessions end after 1 hour, so an always-on machine has to be restarted by your own code.)

## Outside a sandbox

[Cloudflare Workers](https://developers.cloudflare.com/workers/platform/pricing/) on their own are the cheapest home: free up to 100,000 requests a day, or a $5 monthly minimum. [Vercel Functions](https://vercel.com/docs/plans/pro-plan) are free on Hobby, with a $20 monthly Pro fee. [Render](https://render.com/pricing) runs an always-on web service from $7 a month for 512 MB.

## Sources

- [MCP specification: transports](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports)
- [Claude: build an MCP server](https://claude.com/docs/connectors/building)
- [Claude Code: MCP](https://code.claude.com/docs/en/mcp)
- [Cloudflare: build a remote MCP server](https://developers.cloudflare.com/agents/model-context-protocol/guides/remote-mcp-server/)
- [Lizard: host a remote MCP server](https://lizard.build/docs/guides/deploy-mcp-server)
- [Cloudflare Workers pricing](https://developers.cloudflare.com/workers/platform/pricing/)
- [Battleships: always-on assistant workload (built by the Boat team)](https://battleships.dev/data/rankings/employees.json)
