Skip to content
Deploy

Use case · AI agents

MCP server hosting: run a remote MCP server on a VPS

Yes — you can host a remote Model Context Protocol (MCP) server on a VPS with no GPU, because an MCP server is just a Node.js or Python process: the AI model runs in the assistant that connects to it, not on your server. Run it on a Linux VPS with AMD Ryzen cores, keep it alive with systemd or PM2, and put TLS and authentication in front so assistants such as Claude or ChatGPT can reach your tools from anywhere, around the clock.

  • It is a process, not a GPU workload
  • Stays online as a systemd service
  • Dedicated IPv4 address and full root

What you host when you host an MCP server

Tool servers

MCP servers in Node.js or Python that expose your files, a database or an internal API to an assistant as callable tools.

Remote access for assistants

A public HTTPS endpoint your team's assistants and IDEs reach from anywhere, instead of a server tied to one laptop over stdio.

Always-on tools for agents

A tool server that stays reachable while your agents and workflows call it around the clock, running as a service that restarts on its own.

Do you need a GPU to host an MCP server?

No. An MCP server does not need a GPU, because it does not run the AI model — it exposes tools. The model runs in the assistant that connects to your server (Claude, ChatGPT or an MCP-capable IDE such as Cursor), or through your own OpenAI or Anthropic API key. Your MCP server is a small Node.js or Python process that answers tool calls: reading a file, querying a database, calling an API. That is CPU and memory work, not graphics, so a Ryzen VPS with no GPU is the right shape for it, and no RyzenRDP plan includes a GPU.

If you also want to orchestrate agents or run workflows beside the MCP server, the same server handles it — see AI agent hosting for that side, or n8n hosting if a workflow engine is what you are wiring your tools into. It is one of our AI VPS use cases, and the rule across all of them is the same: keep the model on a hosted API and let the VPS run the tools and the glue around it.

What MCP server hosting is good for, and what it is not

MCP server hosting fit
TaskGood fit?Why
Hosting a remote MCP server 24/7YesIt is a Node or Python process: fast cores, always on, reachable over HTTPS
Sharing one set of tools with a team's assistantsYesOne endpoint with authentication, instead of a server stuck on one laptop
Running the AI model on the serverNoThe model runs in the assistant or via your API key; a VPS has no GPU
Image generation or training a modelNoGPU-only work, which we do not sell

Which plan for an MCP server

Shown in Dallas. An MCP server is light, so size the plan by how many servers and tools you run, not by GPU. T1 runs one or two small MCP servers (a Node or Python process uses tens to a few hundred megabytes, and Linux itself needs far less memory than Windows); T2 gives room for several servers plus a cache or a small database; T3 suits many concurrent tool calls, heavier servers, or a small quantized local model that runs slowly on the CPU.

T1 · Dallas

AMD Ryzen

$14.99/mo

USD per month · billed for 1, 3, 6 or 12 months

  • 2 shared vCPU
  • 2 GB DDR5 RAM
  • 40 GB Gen4 NVMe SSD
  • 1 Gbps port · 1 IPv4
Deploy T1
Room for several servers

T2 · Dallas

AMD Ryzen

$24.99/mo

USD per month · billed for 1, 3, 6 or 12 months

  • 4 shared vCPU
  • 4 GB DDR5 RAM
  • 80 GB Gen4 NVMe SSD
  • 1 Gbps port · 1 IPv4
Deploy T2

T3 · Dallas

AMD Ryzen

$39.99/mo

USD per month · billed for 1, 3, 6 or 12 months

  • 6 shared vCPU
  • 8 GB DDR5 RAM
  • 160 GB Gen4 NVMe SSD
  • 1 Gbps port · 1 IPv4
Deploy T3

Plan prices do not go up at renewal, and there is no setup fee. Prices and specs from our live catalog, checked .

Keep an MCP server running 24/7 on Linux

Linux is live — Ubuntu, Debian or AlmaLinux, reached as root over SSH — and it is the simplest home for an always-on MCP server. A server you start by hand in an SSH session stops when you log out, so run it as a service that restarts on its own:

  1. systemd is the simplest. Write a unit at /etc/systemd/system/mcp-myserver.service that runs your start command (for example node build/index.js or python -m myserver), set Restart=always, then systemctl enable --now mcp-myserver. It starts on boot and comes back if the server crashes.
  2. PM2 suits Node.js servers: pm2 start server.js --name mcp, then pm2 save and pm2 startup so it returns after a reboot.
  3. Docker works too: run the server with --restart=unless-stopped, installed from your distribution's packages.

You install the runtimes yourself with apt, npm or pip — you have full root, so any stack that runs on Linux works. Windows Server is available instead if your tools need it, where NSSM or a scheduled task keeps the process alive the same way.

Put TLS and authentication in front with a reverse proxy

MCP's HTTP transport serves plain HTTP on a local port, so put a reverse proxy in front to give the public endpoint TLS and a name assistants can trust:

  1. Point a domain or subdomain at the server's dedicated IPv4 address.
  2. Run nginx or Caddy as the reverse proxy. Caddy fetches and renews a Let's Encrypt certificate on its own; with nginx, use certbot.
  3. Proxy the public HTTPS endpoint to the MCP server's local port (for example 127.0.0.1:3000).
  4. Require a secret: a Bearer token or an API key the proxy checks, or OAuth if the server supports it. An MCP server that exposes real tools should never be open to the internet without authentication.

Close the server's own port in the firewall so only the reverse proxy can reach it.

Why SSE streaming breaks behind a reverse proxy, and how to fix it

MCP has two transport styles. stdio is for a server the assistant launches as a local subprocess on the same machine; it never touches the network. To host a server that assistants reach remotely, you run an HTTP transport — Server-Sent Events (SSE) or the newer Streamable HTTP — and that is what sits behind the reverse proxy.

SSE holds one long-lived connection open and pushes events as they happen. Two proxy defaults quietly break it:

  1. Response buffering. nginx buffers proxied responses by default, so events pile up instead of streaming out. Set proxy_buffering off; on the MCP location and send the X-Accel-Buffering: no response header. On Caddy, SSE flushes correctly once buffering is off.
  2. Short read timeouts. A quiet stream looks idle, so the proxy cuts it. Raise proxy_read_timeout (for example to 3600s) so long-lived streams survive.

Also turn off response compression on the SSE route and keep HTTP/1.1 or HTTP/2 so chunked streaming works. Once buffering is off and the timeout is long, events flow the moment your tools produce output.

Lock down what your MCP server exposes

An MCP server often hands an assistant real power: your files, a database, an API with your keys. Put authentication in front of it, limit what each tool can read or change, keep its credentials in environment variables the service user alone can read, and never expose a tool that lets a caller abuse another service. The acceptable use policy applies here as everywhere.

MCP and AI hosting guides

All RDP guides and tutorials

MCP server hosting FAQ

Do I need a GPU to host an MCP server?

No. An MCP server does not run the AI model — it exposes tools — so it is a plain Node.js or Python process that runs on the CPU. The model runs in the assistant that connects to it, or through your own API key. No RyzenRDP plan includes a GPU, and none is needed here.

Which plan do I need to host an MCP server?

An MCP server uses tens to a few hundred megabytes, so T1 (2 vCPU, 2 GB RAM and 40 GB Gen4 NVMe SSD) runs one or two small servers. T2 (4 vCPU, 4 GB RAM and 80 GB Gen4 NVMe SSD) gives room for several servers plus a cache or a small database; T3 (6 vCPU, 8 GB RAM and 160 GB Gen4 NVMe SSD) suits many concurrent tool calls or heavier servers.

How do I keep an MCP server running after I close my SSH session?

Run it as a service. A systemd unit with Restart=always, a pm2 save plus pm2 startup, or a Docker container with --restart=unless-stopped keeps the server alive through disconnects, crashes and reboots.

Can I connect Claude, ChatGPT or my IDE to a self-hosted MCP server?

Yes, once it is on a public HTTPS endpoint. Run the HTTP transport, put it behind a reverse proxy with TLS and a secret, then point your assistant's MCP settings at the URL and its token. Any MCP-capable client reaches it the same way.

Why does SSE streaming stop or hang behind nginx?

Because nginx buffers responses by default. Set proxy_buffering off; for the MCP location, raise proxy_read_timeout so a quiet stream is not cut, and send X-Accel-Buffering: no so events stream out as they are produced.

What is the difference between stdio and HTTP/SSE transport?

stdio is for a server the assistant launches locally as a subprocess on the same machine, with no network. An HTTP transport — SSE or the newer Streamable HTTP — is for a server you host remotely and reach over the network, which is what you put behind a reverse proxy.

How do I secure a remote MCP server?

Require a Bearer token, API key or OAuth at the reverse proxy, serve it only over HTTPS, close the server's own port in the firewall, and keep credentials in environment variables the service user alone can read. Never expose a tool server to the internet without authentication.

Can I host an MCP server on Linux, or do I need Windows?

Linux is the simplest: install Node.js or Python with apt, keep the process alive with systemd or PM2, and manage it over SSH as root. Windows Server is available too if your tools are Windows-only, where NSSM or a scheduled task does the same job.

Deploy your MCP server

A Linux VPS on AMD Ryzen that keeps your MCP server reachable around the clock. Plans from $14.99/mo.