EQVPS — VPS and code sandboxes for AI agents
No-KYC VPS + per-second code sandboxes AI agents run over MCP — 75 tools, SDK, pay BTC/XMR/USDC/USDT
Connect it
Settings → Connectors → Add custom connector
URL: https://mcp.eqvps.com/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://mcp.eqvps.com/mcp{
"mcpServers": {
"eqvps": {
"url": "https://mcp.eqvps.com/mcp"
}
}
}claude mcp add --transport http eqvps https://mcp.eqvps.com/mcp{
"servers": {
"eqvps": {
"type": "http",
"url": "https://mcp.eqvps.com/mcp"
}
}
}45 tools, verified live
list_plansList all available VPS plans (catalog) with pricing, specs and the OS images each plan can boot: Linux plans (NAT or dedicated IPv4, from $3/mo) and Windows Server 2022 plans (slug windows-*, BYOL â the customer activates their own licence; RDP access, 150 Mbit/s port, from $11/mo). No authentication needed. Use this first to pick a `product` slug and an `os_id` for `order_vps`. Each plan lists
register_accountCreate a NEW EQVPS customer account (first_name, last_name, email). Use a real email address you control â reserved/test domains such as example.com are not suitable (no recovery, no notifications). Returns a bearer `token` that is reusable for every request until `token_expires_at` (1 year by default; optional `token_ttl_days` 1-1825) â it is NOT single-use; call `refresh_token` before it exp
loginLog in with email + password. Returns a bearer `token` (reusable until `token_expires_at`, 1 year by default or `token_ttl_days`; remembered for the rest of this MCP session). NOTE: accounts created via register_account have NO password by default â keep using the token from register instead. To be able to log in later, call `set_password` once while still authenticated with your register token.
refresh_tokenExchange the CURRENT bearer token for a new one before it expires: returns `token` + `token_expires_at` (1 year by default, or `expires_in_days` 1-1825) and REVOKES the old token immediately. Inside this MCP session the new token is used automatically; with raw HTTP save it and stop using the old one. Every REST response carries the header X-Token-Expires-At; get_started shows the expiry and warns
set_passwordSet a password for THIS account (the one your bearer token belongs to). Accounts from register_account have no password by default â the bearer token is the credential. Call this ONCE to enable email+password `login` as a recovery method in case the token is lost. Needs only the new password (min 8 chars, letters+numbers) â no current password the first time. If a password was already set, thi
whoamiReturn the authenticated account profile (id, name, email). Use to verify the bearer token is valid. Requires: token.
get_balanceReturn the account's prepaid credit balance and currency. `order_vps` spends from this balance automatically when it is sufficient. Requires: token.
topup_balanceCreate a top-up invoice and return a `checkout_url` (PayRam crypto checkout). The balance is credited automatically once the on-chain payment confirms. `amount` is in account currency (USD); minimum and maximum are enforced server-side. Only one unpaid top-up may exist at a time. Requires: token. A HUMAN must pay checkout_url in crypto; the balance is credited automatically after confirmation.
order_vpsOrder a VPS. `product` = plan slug from list_plans; `os_id` = an OS id from that plan's images. Optional `hostname` and `ssh_key` (public key â strongly recommended so you get key-based root login). Optional `location`: "de" (Germany) or "fi" (Finland) â omit it and we pick the location automatically; if the chosen country has no free capacity for that plan the call fails with 409 `location_un
pay_invoiceInitiate payment for an owned, unpaid invoice. Returns a PayRam `checkout_url`; the invoice settles (and the VPS provisions) automatically once the on-chain payment confirms. Requires: token. Pass invoice_id exactly as returned (a code like "2RUAWV4"). A human pays checkout_url.
list_vpsList the account's ACTIVE VPS services â active, provisioning, and suspended servers (deleted/cancelled are excluded). Use the `id` as `service_id` for the management tools. If a server is missing from this list it has been deleted â do not query its status or try to manage it. Requires: token.
get_vps_statusGet full detail for one VPS: status, specs, live VM state/uptime, and access info (host, port, ready-to-paste `command`; `access.method` = ssh for Linux, rdp for Windows â port follows the plan: dedicated IP 22/3389, NAT 20000+vmid). ROOT PASSWORD (keyless VPS): call with `reveal: true` to retrieve it. It is shown ONCE, and only after the VM has finished booting â at that moment the password i
power_vpsPower-control a VPS: `start`, `stop` or `reboot`. Requires: token. Typical error: 409 during the first boot (setup still running) â wait and retry.
set_hostnameSet the VPS hostname (valid DNS name). Applied immediately inside the running server via the guest agent (Linux: hostnamectl + the 127.0.1.1 line in /etc/hosts; Windows: renamed, takes effect after a reboot â the response then has `reboot_required: true`). The server must be running with its guest agent active; otherwise the call fails with 409 `agent_unavailable` and nothing is changed. Your pa
reset_passwordRotate the root password. The new password is applied to the LIVE VM immediately via the guest-agent (no reboot) and works within ~10-30s; the OLD password stops working. REQUIRES confirm = exact hostname (from get_vps_status) or 'DELETE'. Agent must confirm with the human before calling. Use this ONLY if the password was lost â NOT because SSH was not instant on a fresh order (a new VM needs ~6
reinstall_vpsDESTRUCTIVE â all data is lost. REQUIRES confirm = exact hostname (from get_vps_status) or 'DELETE'. Agent must explicitly confirm with the human before calling. Wipes and reinstalls the VPS with the given OS image (`os_id` from list_plans). Provisioning runs asynchronously; poll `get_vps_status`. Requires: token + confirm (hostname or DELETE). Destroys all data.
get_vps_metricsTime-series resource metrics (CPU %, memory, network, disk) for a VPS. `timeframe` â hour|day|week|month (default hour). Requires: token.
cancel_serviceCancel a VPS. DEFAULT `end_of_period`: the server stays active until the end of the already-paid period, then is simply not renewed â NO data loss now, safe. `immediate` DESTROYS the VM and ALL data right away, permanently and irreversibly, and REQUIRES `confirm` set to the exact server hostname (see get_vps_status). Use end_of_period unless you explicitly intend to wipe the server now. On `imme
undo_cancelKeep a VPS whose cancellation was scheduled with type end_of_period: the scheduled cancellation is removed, the server stays active and renews as usual. No money moves (end_of_period never refunds). An immediate cancellation cannot be undone â the VM is destroyed at once. get_vps_status shows `cancellation` {type, cancel_at, can_undo}. Requires: token + a scheduled end_of_period cancellation. Ty
get_upgrade_optionsList the plans this VPS can switch to IN PLACE with its data kept: bigger plans of the same network type (resize: more vCPU/RAM/disk), NAT â dedicated IPv4 (convert: adds a public IP) or dedicated â the equivalent NAT plan (convert_to_nat: drops the IP, the unused price difference is refunded to the balance). Each option: product_id, name, monthly, prorated_topup (charged now for the rest of t
change_planSwitch a VPS to another plan IN PLACE â files and the OS are kept; the server reboots once (~1 min). `target_plan` = product_id from get_upgrade_options. The prorated difference is charged from the prepaid balance right away (402 with needed/balance if it is short â top up and retry); convert_to_nat refunds the unused difference to the balance. The next renewal uses the new price. Same functio
delegate_serviceGrant OPERATOR access to one of YOUR VPS to another person by email (they can power/reinstall/console/hostname/rdns, but NOT renew, cancel or change billing). Sends them an invitation with an accept link. Optional `expires_days` for time-limited access. Owner-only. Requires: token (owner).
accept_delegationAccept a delegation invitation using the `token` from the invite link. Requires being signed in as the invited email address: it grants operator access to your own account. No new token is returned â keep using yours. Requires: token of the invited email.
list_delegationsList outgoing delegations you (the owner) have granted on your services â who has operator access to what, and its status. Requires: token.
list_delegated_to_meList services other owners have delegated operator access to you â the VPS you can operate but don't own. Requires: token.
revoke_delegationRevoke a delegation by its id (owner revokes access, or a delegate declines their own). The other side is notified. Use list_delegations / list_delegated_to_me to find the id. Requires: token.
create_ticketOpen a support ticket with EQVPS. `subject` and `message` are required; optional `service_id` ties it to one of your VPS. The response includes the ticket `code` â use that with get_ticket / reply_ticket / close_ticket. Requires: token.
list_ticketsList your support tickets with status and last-message info. `last_message_author: "staff"` means support has replied since you last looked. Requires: token.
get_ticketRead one ticket and its full message thread. Each message has an `author`: `you` or `staff` â a `staff` message is a reply from support. Poll this to see new answers. The ticket code comes from create_ticket / list_tickets. Requires: token.
reply_ticketPost a reply on one of your tickets. Use the ticket code from create_ticket / list_tickets. Requires: token.
close_ticketClose one of your tickets. `rating` (1-5) and `comment` are OPTIONAL â you can close without rating. Use the ticket code from create_ticket / list_tickets. Requires: token.
sandbox_pricingPublic: sandbox tariffs â micro 0.25 vCPU/512 MB RAM/3 GB disk · small 0.5 vCPU/1 GB RAM/5 GB disk · standard 1 vCPU/2 GB RAM/10 GB disk · plus 2 vCPU/4 GB RAM/15 GB disk · pro 4 vCPU/8 GB RAM/20 GB disk · max 8 vCPU/16 GB RAM/40 GB disk â with per-second/hour/month prices, the billing model and limits (synchronous exec up to 55 s, background tasks longer; files up to 5 MB per transfer; r
create_sandboxStart an isolated Firecracker microVM sandbox (ready in about 1 s; Linux with Python 3.12 + pip, Node.js 22 + npm, bash, git and curl; internet egress allowed so pip/npm install and git clone work; no inbound ports, SMTP blocked). `mode`: "ephemeral" (default â billed per second, minimum 60 s, auto-deleted after `idle_timeout` s of inactivity, default 300, max lifetime `ttl` up to 24 h) or "pers
run_codeRun a code snippet inside a sandbox and return {exit_code, stdout, stderr, timed_out, truncated, duration_ms}. `language`: python (Python 3.12), node (Node.js 22) or bash. Install packages first with exec_command (`pip install â¦` / `npm i â¦`). The code is passed to the interpreter on stdin, so it cannot read stdin itself. `timeout` seconds (default 30, max 55 per call). LONGER JOBS: set `backg
exec_commandExecute a shell command (bash -lc) in a sandbox as root and return {exit_code, stdout, stderr, timed_out, truncated, duration_ms}. Shell operators are fine and never filtered: `apt-get update && pip install x | tee log; echo done > out`. If you call the server with raw HTTP/curl, the JSON body must be valid â escape double quotes inside `command` (\") or build the body with a JSON library; a bro
get_taskStatus and NEW output of a background task: `state` (running | done | failed | killed | timeout), `exit_code`, and the stdout/stderr text produced since the offsets you pass. Start with offsets 0, then pass `stdout_next_offset` / `stderr_next_offset` from the previous response to get only new output. `done: true` means finished. Poll every few seconds; each call is quick. Up to 8 MiB per stream is
kill_taskStop a running background task and all processes it started. Returns its final state (killed). The sandbox itself keeps running. Requires: token.
upload_fileWrite a file into the sandbox at an absolute `path` (parent directories are created). Give `content` for UTF-8 text OR `content_base64` for binary. Limit 5 MB per file inline â for bigger files call `get_upload_url` and PUT the bytes to the link (no base64 through this chat). Optional `mode` like "755". Requires: token + live sandbox_id. Max 5 MB.
download_fileRead a SMALL file from the sandbox (absolute `path`, max 5 MB) into this conversation: `content` as UTF-8 text by default, `as_text: false` â `content_base64`. For build artifacts, archives, binaries or anything big use `get_download_url` instead â you get a short-lived link and download it with curl, without pulling base64 into your context. Requires: token + live sandbox_id. Max 5 MB â big
get_download_urlGet a short-lived HTTPS link (default 15 min, `ttl` 60-3600 s) that streams ONE file from the sandbox â e.g. a build artifact or archive up to 2 GB â without base64 in this conversation. Download it with `curl -fL -o <name> <url>` from wherever you work. The link only works while the sandbox runs and only for that path; treat it as a secret. Requires: token + live sandbox_id. The link expires
get_upload_urlGet a short-lived HTTPS link to PUT ONE file into the sandbox at `path` (up to 2 GB): `curl -fT <file> <url>`. One request carries at most 95 MB â for bigger files PUT parts in order with `?offset=<bytes already uploaded>` (each response returns `next_offset`; offset 0 overwrites). No base64 through this conversation. Requires: token + live sandbox_id. â¤95 MB per PUT; use ?offset for more.
list_sandboxesList the account's sandboxes (running and paused) with mode, tariff, state and expiry. Requires: token.
get_sandboxStatus of one sandbox (state running/paused, mode, tariff, expires_at; paused ones show pause_reason and delete_after) plus usage: running seconds, CPU seconds actually used, egress bytes, price per hour, amount already billed and the estimated total so far. Requires: token.
kill_sandboxDelete a sandbox IMMEDIATELY and IRREVERSIBLY (running or paused): all files, installed packages, background tasks and memory are lost and cannot be recovered â download_file anything you need first. Billing stops; the final partial period is billed (ephemeral per second with the 60 s minimum, persistent per started hour). Requires: token.
get_startedCall this FIRST. Returns the whole flow in one response: the exact order of tools to rent a VPS and to run code in a sandbox (with example arguments), the only human step (paying a crypto checkout_url), auth rules (one account, reusable token), common errors with fixes, limits â and `you_are_here`: if you are authenticated, your balance, servers and the next call to make. Every other tool respon
Alternatives in Crypto & Web3
Compare →HIHive Intelligence MCPA
Evidence-backed crypto due diligence with sources, freshness, and a runtime receipt on every call.
INInsumerA
Wallet auth: send a wallet and conditions, get a signed boolean across 37 chains.
CHChainstackA
Deploy and manage blockchain nodes across 70+ protocols, search docs, request testnet funds.
TraderSpyA
AI crypto signals, whale positions, 19 technical indicators, derivatives, screener and backtests
WSwalletlink.socialA
Resolve wallet addresses to X and Farcaster accounts, and back again.
three.ws pump.fun MCPA
Free pump.fun and Solana token discovery and on-chain analysis tools, by three.ws.