MCP reference
For developers connecting an AI agent or app directly. If you just want a server, start from the home page and let your assistant do the rest.
A complete reference to the Skynes MCP tools for VPS, wallet, DNS, support, server groups and projects. The gateway turns your goal into a running server and shows specs, prices and locations — without ever exposing the upstream provider or its credentials.
Why use a VPS?
A VPS is an always-on Linux server — for a personal website, a WordPress blog or WooCommerce shop, a private VPN, a photo library or file cloud, a small API, a bot or an automation job. You choose the location and control the services and data on it. Planned templates will let the agent recommend tested images and install scripts (Immich, Cloudreve, vpnbox-agent, WordPress, WooCommerce) and explain storage, ports, backups, updates and security before you confirm. These templates are not exposed as MCP tools yet.
POST https://skynes.cloud/mcpJSON-RPC 2.0MCP 2025-06-18
Authentication and bootstrap
Use Authorization: Bearer <SKYNES_AGENT_API_KEY> for agent tools or Authorization: Bearer <SKYNES_PROJECT_API_KEY> for project tools. Personal registration uses POST /v1/users (or compatible POST /v1/agents) without an enrollment token; email is required so billing, renewal and low-balance notices have somewhere to go. Create a project with the registered user bearer token at POST /v1/users/projects or compatible POST /v1/projects; no enrollment token is required. The response returns the project API key once. The data model uses users as identities, accounts as balance owners, and agents as API/MCP credentials. Store keys securely; never send upstream keys, Liber keys or wallet seed phrases to an agent.
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_plans","arguments":{}}}Agent tools
All agent tools use the agent bearer token.
Catalog, wallet and notifications
| Tool | Arguments | What it does |
|---|---|---|
list_plans | — | Live vCPU, RAM, storage, transfer and prices. |
list_locations | — | Available locations, without provider names. |
list_images | — | Operating-system images. |
get_balance | — | Personal account USDT balance. |
transfer_balance_to_project | project_id, amount_usdt, idempotency_key | Atomically transfer personal USDT to a project account. |
transfer_balance_to_personal_user | user_id or username or email, amount_usdt, idempotency_key | Atomically transfer personal USDT to another personal user. |
list_notifications | limit?, unread_only? | Recent notifications and channel delivery statuses. |
mark_notification_read | notification_id | Mark a notification read. |
Deposits and VPS lifecycle
| Tool | Required arguments | What it does |
|---|---|---|
create_topup | amount, currency, idempotency_key (or amount_usdt) | Liber invoice in USDT/USD/RUB. Ask the human first; ask before agent payment, otherwise show checkout URL. |
get_topup | topup_id | Invoice and confirmation status. |
quote_vps | plan_id | Hourly/monthly prices, commission and monthly cap. |
order_vps | plan_id, location_id, image_id, billing_period, confirm_billing_period:true | Provision with the generated SSH key. Smallest plans also require confirm_low_resource:true and intended_use. Optional name, group_id, idempotency key. |
get_order | order_id | Order, IP, billing, name and group. |
list_vps | — | All user VPS orders. |
cancel_vps | order_id, confirm:true, idempotency_key | Delete and refund according to policy. |
get_vps_console | order_id, confirm:true | Out-of-band console (screen and keyboard) when the server does not boot or SSH is gone: a noVNC browser link, or VNC host, port and a fresh password that switch off automatically. Returns available:false and suggests a support ticket where the server has none. |
close_vps_console | order_id, confirm:true | Switch the VNC console off before it expires. Browser links cannot be revoked. |
Hourly usage is metered and never exceeds the plan's monthly price (commission included). Monthly billing charges that fixed amount up front. The agent always asks for explicit human approval before committing to a period or cancelling a server.
If the configured provider balance cannot cover the selected option, order_vps returns a temporary-unavailability response, refunds any reservation, and sends a critical administrator Telegram alert. A monthly administrator report covers previous-month registrations and current provider balances.
Server groups and custom names
| Tool | Arguments | What it does |
|---|---|---|
list_server_groups | — | List groups. |
get_server_group | group_id | Read one group and its servers. |
create_server_group | name, description? | Create a navigation group. |
update_server_group | group_id, name?, description? | Edit a group. |
delete_server_group | group_id, confirm:true | Delete an empty group. |
update_vps | order_id, name?, group_id? | Rename/move metadata; no provider recreation. Use null to remove a group. |
DNS
create_dns_request(domain,idempotency_key), list_dns_requests(), get_dns_request(request_id), list_dns_zones(), get_dns_zone(domain), list_dns_records(domain), create_dns_record(domain,name,type,value,ttl?,priority?), update_dns_record(domain,record_id,...), and delete_dns_record(domain,record_id). Supported records: A, AAAA, CNAME, MX, TXT, CAA, NS. Change nameservers at the registrar, then wait for delegation checks.
Support
create_support_ticket(subject,message), get_support_ticket(ticket_id), list_support_tickets(), send_feedback(message,subject?), create_feature_request(subject,message), and create_bug_report(subject,message). Entries persist and notify the administrator Telegram chat; feedback is limited to one message per rolling hour.
Project tools
Projects are created through the authenticated user MCP flow with create_project(name?,slug?,website?,description?); no enrollment header is required. Project tokens can call these tools: get_project(); update_project(name?,slug?,website?,description?); get_project_balance(); create_project_topup(amount,currency,idempotency_key); get_project_topup(topup_id); transfer_balance_to_user(user_id|agent_id|external_user_id,amount_usdt,idempotency_key,note?); list_project_users(); delete_project_user(external_user_id,confirm:true); and delete_project(confirm:true). A project can credit any personal user by user_id (or compatible agent ID); no invite is required. Personal users can fund projects with transfer_balance_to_project. Project credits and transfers create balance notifications and administrator Telegram notices.
REST equivalents
POST /v1/transfers/to-project moves personal balance into a project. /v1/catalog/* exposes plans, locations and images; /v1/topups, /v1/quotes, /v1/orders, /v1/server-groups, /v1/dns/*, /v1/notifications, /v1/support/*, /v1/feedback, /v1/feature-requests, /v1/bug-reports, and /v1/projects/* mirror the tools with the same bearer authentication. POST /payment_ws is the Liber webhook; GET /health is liveness.