Model Context Protocol

Let your AI agent run your infrastructure

Connect Claude, ChatGPT, Cursor or any MCP client to your account. Your agent can order and manage cloud and dedicated servers, register and renew domains, edit DNS, run backup boxes and order licences, always after checking your balance and asking you first.

https://cloudlinux.ro/mcp

Balance checked first

Every paid action starts with a quote built from your live balance. Nothing is charged until you agree and the agent sends the quote back.

Confirmed deletions

Deleting or reinstalling needs the exact name of the server, box or domain record, so a mixed-up id cannot destroy the wrong thing.

Your permissions, your limit

Choose what each connection may do and how much it may commit per month. Revoke it in one click; every action shows in your activity log.

What you can ask

The agent works with the same rules, prices and limits as the console. A few examples:

  • "Launch a 4 GB server in Bucharest with WordPress and point blog.firma.ro at it."
  • "Is firma.ro free? Register it for two years with our DNS."
  • "Which servers are stopped? Delete test-3 and tell me what we save per month."
  • "Order a 1 TB backup box and create a sub-account for each web server."
  • "Add a CloudLinux OS licence to the server at 203.0.113.10 that we run elsewhere."

Connect your client

Clients with sign-in support open a cloudlinux.ro page where you pick the permissions and a monthly limit. Others take an API token in a header.

Claude (web and desktop)

Add a custom connector with the URL https://cloudlinux.ro/mcp, then sign in with your cloudlinux.ro account.

ChatGPT

In the connector settings (developer mode), add an MCP server with the URL https://cloudlinux.ro/mcp and OAuth sign-in.

Claude Code

Add the server from the terminal; Claude Code opens the sign-in page, or uses your token.

claude mcp add --transport http cloudlinux https://cloudlinux.ro/mcp

# or with a token from Settings → API:
claude mcp add --transport http cloudlinux https://cloudlinux.ro/mcp \
  --header "Authorization: Bearer cl_your_token"

Cursor

Add the server to your MCP configuration; Cursor asks you to sign in on first use.

// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cloudlinux": { "url": "https://cloudlinux.ro/mcp" }
  }
}

VS Code

Add the server to your workspace MCP configuration and start it from the MCP view.

// .vscode/mcp.json
{
  "servers": {
    "cloudlinux": { "type": "http", "url": "https://cloudlinux.ro/mcp" }
  }
}

Prefer a token? Create one with the permissions you want and an optional monthly limit in Settings, API

The 53 tools your agent gets

Tools are grouped by area. Read-only tools are always available; the others need the matching permission.

Account and balance

get_balanceThe account's prepaid credit in EUR, what the running services cost per month, how many days the credit lasts, the monthly budget and this connection's spending limit. Call this before ordering or renewing anything.
list_transactionsThe latest credit movements: deposits, hourly charges, domain and licence payments, refunds.

Catalogue

list_locationsWhere servers can be ordered: every location with its country, how many plans it has and the cheapest monthly price (EUR, VAT excluded). Then call list_server_plans and list_images for the chosen location.
list_server_plansThe plans on sale in one location (from list_locations), with specs and hourly and monthly prices in EUR without VAT, cheapest first. Use the ids with order_server.
list_imagesOperating system images available in one location (from list_locations). Pass the id as image_id to order_server or reinstall_server. Not needed when ordering with a one-click app.
list_appsSelf-hosted applications that install automatically on a new cloud server (pass app_id to order_server). Not available on dedicated servers.

Servers and snapshots

list_serversEvery cloud and dedicated server on the account with status, IP addresses, plan, location and price.
get_serverOne server in detail with its live status (refreshed from the platform on every call), IP addresses, login user and root password, and snapshots. Share the password only with the customer.
order_serverOrder a cloud, GPU or dedicated server, billed by the hour from the credit. Two steps: the first call checks the balance and returns a quote_id with the price; call again with the same arguments plus quote_id only after the customer agrees. Get ids from list_locations, list_server_plans, list_images, list_apps, list_recipes and list_ssh_keys. Needs the servers permission.
power_serverPower actions: on, off (hard), shutdown (graceful), reboot (graceful), reset (hard). A stopped server is still billed. Needs the power permission.
rename_serverChange a server's friendly name. Needs the servers permission.
reinstall_server•Wipe the server's disk and install a fresh operating system. All data on it is lost. Ask the customer first, then send confirm_name. Needs the servers permission.
resize_serverMove a cloud server to another plan. Without plan_id it lists the plans the server can move to. With plan_id it works in two steps like order_server: a quote first, then the same call plus quote_id after the customer agrees. The server restarts. Needs the servers permission.
delete_server•Delete a server for good: its disk, IP addresses and snapshots are gone and billing stops after the current hour. Ask the customer first, then send confirm_name. Needs the servers permission.
manage_snapshot•Take, restore or delete a server snapshot. Snapshots are billed per GB per month from the credit while they exist. Restoring overwrites the server's disk and needs confirm_name (the server name); deleting needs confirm_name (the snapshot name). Needs the snapshots permission.
get_server_networkA server's network details: IPv4 and IPv6, its hostname, the reverse DNS (PTR) it should have and what public DNS answers right now, and this month's outgoing traffic against the included allowance.
get_server_monitoringThe free monitoring of a server: uptime (24h/7d/30d, recent outages), services exposed to the internet with the commands to close them, spam blacklist listings, and known vulnerabilities that have a fix, grouped by package with the exact upgrade commands and whether a restart or reboot is needed. Show the commands to the customer; do not claim they were run.
set_reverse_dnsSet the reverse DNS (PTR) of a server's IPv4, for example mail.firma.ro for a mail server, or reset it to the default hostname. The name should also resolve forward to the server (add an A record with manage_dns_record). At some locations our team applies it within a few hours. Needs the servers permission.
set_traffic_auto_stopTurn on or off the automatic shutdown of a server at 98% of its monthly included traffic, to avoid traffic overage charges. A stopped server is still billed by the hour; if the customer starts it again, it is not stopped again that month. Only servers whose get_server shows a traffic block have a traffic limit. Needs the servers permission.
get_server_metricsCPU, network and disk usage of a server over a period, summarised as average, peak and latest values (network and disk in bytes per second).

Projects

list_projectsThe account's projects (folders that group servers, for example one per client or environment) with how many servers each holds.
manage_projectCreate a project, rename one, or delete one. Deleting a project never touches its servers: they keep running, just without a project (needs confirm_name, the project name). Needs the servers permission.
move_server_to_projectPut a server into one of the account's projects, or take it out of its project (leave project_id out). The server is not restarted. Needs the servers permission.

SSH keys

list_ssh_keysSSH public keys saved on the account; pass their ids to order_server.
add_ssh_keySave an SSH public key (ssh-ed25519, ssh-rsa or ecdsa) so new servers accept it. Needs the ssh-keys permission.

Recipes

list_recipesThe customer's recipes: their own bash scripts that run as root at a new server's first boot (pass recipe_id to order_server).
save_recipeSave a bash script that runs as root at a new server's first boot. Without id a new recipe is created; with id that recipe is replaced. Needs the recipes permission.
delete_recipe•Delete a recipe. Servers already built with it keep running. Needs the recipes permission.

Domains and DNS

search_domainsCheck which extensions of a name are free, with the yearly registration and renewal price in EUR without VAT. Type a full name (firma.ro) to check that extension first, or just the name (firma) for the popular ones; page 1+ continues with the other extensions.
list_domainsEvery domain on the account with status, expiry, auto-renew and renewal price.
get_domainOne domain in detail: status, expiry, nameservers, the transfer (auth) code and its DNS records when the DNS is hosted here.
domain_contactShow or save the registrant (owner) details used for every domain the account registers or transfers. Called without fields it returns what is saved; with all required fields it saves them (needs the domains permission). The registry publishes or checks these details, so they must be the customer's real ones: ask the customer, never invent them.
register_domainRegister a free domain, paid upfront from the credit for the whole period. Two steps: the first call checks availability and the balance and returns a quote_id; call again with the same arguments plus quote_id only after the customer agrees. The registrant must be saved first with domain_contact. Needs the domains permission.
transfer_domainMove a domain from another registrar, paid upfront (usually adds a year). The domain must be unlocked at the current registrar and the customer must give its transfer (auth) code. Two steps: a quote first, then the same call plus quote_id after the customer agrees. Needs the domains permission.
renew_domainRenew an active domain now, paid from the credit. Domains with auto-renew on renew by themselves a month before expiry. Two steps: a quote first, then the same call plus quote_id after the customer agrees. Needs the domains permission.
update_domainChange a domain's nameservers (custom ones, or back to the DNS hosted here) and/or switch auto-renew on or off. Needs the domains permission.
manage_dns_recordAdd or remove a DNS record of a domain whose DNS is hosted here (A, AAAA, CNAME, MX, TXT, SRV, CAA). To remove, send the record exactly as get_domain lists it. Needs the domains permission.

Backup boxes

list_backup_box_plansBackup box sizes on sale (SFTP, SMB, WebDAV storage) with their locations and hourly and monthly prices in EUR without VAT. Use the ids with order_backup_box.
list_backup_boxesThe account's backup boxes with size, usage, status and price. Use get_backup_box for the login details.
get_backup_boxOne backup box with its login details (host, port, username, password), enabled protocols and sub-accounts. Share the password only with the customer.
order_backup_boxOrder a backup box, billed by the hour from the credit. Two steps: the first call checks the balance and returns a quote_id; call again with the same arguments plus quote_id only after the customer agrees. Needs the storage permission.
resize_backup_boxMove a backup box to a bigger size (data is kept). Two steps: a quote first, then the same call plus quote_id after the customer agrees. Needs the storage permission.
delete_backup_box•Delete a backup box and every file on it; billing stops after the current hour. Ask the customer first, then send confirm_name. Needs the storage permission.
manage_backup_subaccountCreate or delete a sub-account of a backup box: a separate login limited to one folder, for example one per server. Sub-accounts cost nothing extra. Deleting needs confirm_name (the sub-account username). Needs the storage permission.

Licences

list_license_productsSoftware licences on sale (CloudLinux OS, Plesk and add-ons) with their monthly price in EUR without VAT. A licence binds to one public IPv4: a server hosted here, or any server the customer runs elsewhere. Add-ons need a Plesk licence on the same address.
list_licensesThe account's licences with status, the address they are bound to, paid-until date and activation key.
order_licenseOrder a monthly licence bound to one public IPv4: give server (one of the account's servers) or ip plus label (a server elsewhere). The first month is paid upfront from the credit and it renews monthly. Two steps: the first call checks the balance and returns a quote_id; call again with the same arguments plus quote_id only after the customer agrees. Needs the licenses permission.
cancel_license•Cancel a licence: it keeps working until the end of the month already paid and is not renewed. Cancelling a Plesk licence also cancels its add-ons on that address. Send confirm_name (the licence title) after the customer confirmed. Needs the licenses permission.

Support tickets

list_ticketsThe account's support tickets, newest activity first, with whether support has answered.
get_ticketOne support ticket with its whole conversation.
open_ticketOpen a support ticket with the cloudlinux.ro team, optionally about one server or backup box. Write it on the customer's behalf with the facts (what happened, when, what was tried) and confirm the text with the customer first. Replies arrive by email and in get_ticket. Needs the tickets permission.
reply_ticketAdd a reply to one of the account's tickets (a closed ticket reopens). Confirm the text with the customer first. Needs the tickets permission.
close_ticketClose a ticket once the customer's problem is solved. A later reply reopens it. Needs the tickets permission.

• Destructive: needs the resource name as confirmation.

Questions

Can the agent spend my money without asking?

No. Every tool that costs money first returns a quote with the price and your balance. Only a second call carrying that quote spends, and agents are instructed to ask you before sending it. A monthly limit per connection adds a hard cap.

What happens if my credit is too low?

The order is refused before anything is created and the agent tells you how much is missing. Credit can only be added by you, in the console.

Which AI clients work?

Any client that speaks the Model Context Protocol over HTTP: Claude, ChatGPT connectors, Claude Code, Cursor, VS Code, Windsurf and your own agents built with an MCP SDK.

How do I stop an agent?

Revoke its connection in Settings, API. It stops working immediately; everything it did is listed in your activity log.

Does it cost anything?

No. The MCP access is free; you pay only for the services you or your agent order, at the same prices as in the console.

Building your own scripts instead? Read the REST API documentation