NoctHost
Create, list and destroy hourly-billed cloud servers on Vultr, DigitalOcean, Hetzner and Linode from an AI assistant. One account, one prepaid balance, pay with crypto or card.
Hosted MCP Server
npx add-mcp 'https://mcp.nocthost.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Connect an AI assistant to NoctHost over MCP: list sizes and prices, get a quote, create a server with your SSH key, reboot or destroy it from the chat.
What it does
The NoctHost MCP server gives an assistant your whole account: pick a size for a workload, list what can be deployed with prices, quote and create servers (plain OS or one-click apps), manage them (power, rename, reverse DNS, reinstall, new IP, passwords, console, traffic), back them up and restore, run load balancers, check billing history and invoices, top up the balance and write to support. Servers run on Vultr, DigitalOcean, Hetzner and Linode, plus NVIDIA GPU servers on OVHcloud, in 33 cities, and are billed per hour from your prepaid balance, which you top up with crypto or a card in the dashboard.
The endpoint is https://mcp.nocthost.com/mcp (Streamable HTTP). It calls the same REST API as the dashboard and the API reference, with your API key, so every rule of your account applies as is: balance check, server limit, hourly billing.
Connect with one click
Claude and ChatGPT connect without an API key. You sign in to NoctHost in a pop-up with your email and password or Google, tick what the assistant may do, and set an hourly spending cap. Claude Code and other clients that support MCP sign-in work the same way.
Claude (claude.ai, Desktop and mobile): open Customize, Connectors, choose Add custom connector, enter NoctHost as the name and https://mcp.nocthost.com/mcp as the URL, and save. The first time the assistant calls a NoctHost tool, click Connect and allow access. Claude Code: run claude mcp add --transport http nocthost https://mcp.nocthost.com/mcp, then /mcp in a session to sign in.
ChatGPT: in Settings, Apps, turn on developer mode under Advanced settings, create an app with the URL https://mcp.nocthost.com/mcp and OAuth as the authentication, then sign in when ChatGPT opens the NoctHost page.
On the NoctHost page you see which app is asking and where you return after you allow. read lets it see balance, prices and servers; deploy lets it create and change servers; destroy lets it delete them; support and billing cover the support chat and top-up payments. With deploy you also set a cap: the app can create paid things while your whole account costs up to that amount per hour. If the assistant later needs something you did not tick, it asks you to allow it.
Every connected app is listed in Profile, Connected apps with what it can do and when it was last used. Revoke there and it stops working at once. A sign-in lasts 30 days from the last use; after that the assistant asks you to sign in again.
1. Create an API key
In the dashboard open Profile, API keys, name the key after the client (for example claude-code) and pick what it may do. read covers balance, sizes, prices, servers, backups and billing history; deploy covers creating and changing servers, backups and load balancers; destroy covers deleting them; support covers reading and writing your support chat; billing covers creating top-up payments. A key without destroy is a good default for an assistant: it can build, and you delete from the dashboard.
The key is shown once. It goes into the client config below as Authorization: Bearer nh_.... Keys created before scopes existed keep all of them.
2. Connect your client
Claude Code, Cursor and VS Code talk to the server directly. Claude Desktop reaches remote servers with an API key through the mcp-remote bridge, which needs Node.js. Any other client needs the URL, the Streamable HTTP transport and the Authorization header.
Claude Code
claude mcp add --transport http nocthost https://mcp.nocthost.com/mcp \
--header "Authorization: Bearer nh_your_key"
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"nocthost": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.nocthost.com/mcp", "--header", "Authorization:${NOCTHOST_AUTH}"],
"env": { "NOCTHOST_AUTH": "Bearer nh_your_key" }
}
}
}
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"nocthost": {
"url": "https://mcp.nocthost.com/mcp",
"headers": { "Authorization": "Bearer nh_your_key" }
}
}
}
VS Code (.vscode/mcp.json, asks for the key once)
{
"inputs": [
{ "type": "promptString", "id": "nocthost-key", "description": "NoctHost API key", "password": true }
],
"servers": {
"nocthost": {
"type": "http",
"url": "https://mcp.nocthost.com/mcp",
"headers": { "Authorization": "Bearer ${input:nocthost-key}" }
}
}
}
Any other MCP client
URL: https://mcp.nocthost.com/mcp
Transport: Streamable HTTP (stateless, POST)
Header: Authorization: Bearer nh_your_key
3. Ask in plain words
"Spin up a small Ubuntu server in Frankfurt for an hour, here is my key: ssh-ed25519 AAAA..."
"What is the cheapest GPU I can get in Europe tonight, and how long does my balance last with it?"
"List my servers and destroy the ones labelled test."
The assistant calls list_options and quote, tells you the hourly and monthly price, and creates the server after you agree. create_server waits up to two minutes for the server to become ACTIVE (most are ready within one or two) and returns the IP and a ready ssh root@... command.
Tools
Choosing and buying. get_account: balance, hourly spend, how long the balance lasts, servers and the account limit. recommend_plan: the cheapest sizes that fit a workload (players, users, model size, traffic, GPU, Windows, budget, city), with the sizing basis from our guides and why cheaper sizes do not fit. list_options: every size with vCPU, RAM, disk, traffic, hourly and monthly price and the clouds and cities it deploys in. quote: the price of an order and whether your balance covers it. list_apps: one-click apps for your account.
Servers. create_server creates 1 to 10 servers with an OS or a one-click app and returns IPv4 and SSH commands. list_servers, get_server, server_power (reboot, stop, start), rename_server, set_rdns, get_bandwidth (traffic used against included), console_link, reset_root_password, get_windows_password, get_app_password, reinstall_server (erases the disk, keeps the IP), change_ip (new IPv4, same data) and destroy_server.
Backups and load balancers. list_backups, create_backup, restore_backup (onto a new server, priced first), delete_backup. list_load_balancers, create_load_balancer, set_load_balancer_backends, delete_load_balancer.
Money. billing_history, list_deposits (top-ups and their status), list_invoices, request_server_limit, list_payment_methods and top_up, which returns a payment link or an address with the exact amount and network. Nothing is charged until you pay it.
Support. support_read shows your support chat; support_send writes to the team on your behalf, marked as sent by an AI assistant, at most 5 messages an hour.
There is also a resource, nocthost://catalog (clouds, cities, plans, OS images, apps), and three prompts: deploy-a-server, pick-a-plan and get-help-from-support.
Money and safety
One create_server call makes at most 3 servers and at most $1 per hour in total unless the assistant passes a higher max_hourly_usd. Above that the server is not created and the tool returns the price instead, so the assistant has to come back to you with the number.
Give the assistant your SSH public key. Without one, a random root password is generated and returned once, and it stays in the chat history: log in, add a key and change it.
destroy_server needs confirm: true and the exact server label; without both it only describes what it would delete. Billing for a server stops in the hour it is destroyed. A stopped server is still billed while it exists.
reinstall_server, change_ip, delete_backup and delete_load_balancer work the same way as destroy_server: confirm: true and the exact label. restore_backup and create_load_balancer show the price and respect max_hourly_usd like create_server.
top_up only creates a payment request, the same as the top-up window in the dashboard. You confirm the sanctions statement yourself, and if we need your country for tax, the assistant sends you to the dashboard to set it; it never picks one for you. Passwords and console links that tools return stay in the chat history, so change passwords after you log in. Your key is only passed through to our API, never stored or logged.