Aller au contenu principal

Besoin d'un serveur performant pour vos projets ?

Découvrez nos offres

Serveur MCP YorkHost

Le serveur MCP expose vos services à un assistant IA : Claude (web, desktop, Claude Code), ChatGPT, Cursor, VS Code… Chaque outil correspond à une route de l'API : mêmes permissions, mêmes restrictions de services, même journal (visible dans Clés API de votre espace client, source « MCP »).

  • URL du serveur : https://api.yorkhost.fr/client/mcp
  • Transport : Streamable HTTP, sans état
  • Authentification : connexion à votre compte YorkHost (OAuth), ou en-tête Authorization: Bearer <clé API>

La double authentification doit être active sur votre compte YorkHost, dans les deux cas.

Connexion par votre compte (Claude.ai, ChatGPT…)​

Aucune clé à copier : l'application vous envoie sur votre espace client YorkHost, vous choisissez ce qu'elle pourra faire, et c'est tout.

Claude (claude.ai et Claude Desktop) : Paramètres → Connecteurs → Ajouter un connecteur personnalisé, nommez-le « YorkHost » et collez l'URL https://api.yorkhost.fr/client/mcp. Laissez les champs OAuth avancés vides, puis cliquez sur Se connecter.

ChatGPT : dans les paramètres des connecteurs (mode développeur), créez un connecteur avec l'URL https://api.yorkhost.fr/client/mcp et l'authentification OAuth.

Claude Code :

claude mcp add --transport http yorkhost https://api.yorkhost.fr/client/mcp

puis tapez /mcp dans Claude Code et choisissez Authenticate.

Sur la page d'autorisation YorkHost :

  1. Connectez-vous si besoin (mot de passe, Google, Discord, double authentification).
  2. Vérifiez l'adresse de retour affichée (par exemple claude.ai) : c'est elle qui identifie l'application, pas son nom.
  3. Cochez les permissions et, si vous voulez, limitez l'accès à certains services. Les permissions sensibles ne sont jamais cochées d'office.
  4. Cliquez sur Autoriser. Vous recevez un e-mail de confirmation.

L'application apparaît ensuite dans Clés API → Applications connectées, où vous pouvez la déconnecter à tout moment. Son accès est aussi coupé si vous changez de mot de passe ou désactivez la double authentification. Les jetons d'accès durent une heure et sont renouvelés automatiquement par l'application.

Connexion par clé API​

Pour les clients qui ne gèrent pas OAuth, ou pour un usage scripté, créez une clé dans Clés API et passez-la dans l'en-tête Authorization.

Claude Code

claude mcp add --transport http yorkhost https://api.yorkhost.fr/client/mcp \
--header "Authorization: Bearer yhk_client_v1_..."

Cursor / VS Code / autre client MCP : ajoutez un serveur de type HTTP avec l'URL ci-dessus et l'en-tête Authorization.

astuce

Créez une clé dédiée à votre assistant, avec le modèle « Agent IA (sans action destructive) ». Vous pourrez la révoquer à tout moment sans toucher à vos autres intégrations. L'assistant ne voit que les outils autorisés par les permissions de la clé.

Page générée

Cette page est générée automatiquement depuis le catalogue d'outils du serveur MCP. Ne la modifiez pas à la main.

Outils​

OutilDescriptionPermissionEffet
get_accountProfile of the authenticated YorkHost account (name, email, credit balance).account:readlecture
list_servicesList the account's services (VPS, game servers, domains…) with their IDs, type and status. Call this first to find a service ID.services:readlecture
get_serviceDetails of one service.services:readlecture
list_invoicesList invoices (status, amount, due date).billing:readlecture
get_invoiceOne invoice with its line items.billing:readlecture
get_payment_linkStatus of an invoice and, if unpaid, the secure YorkHost page where the user pays it (card with 3-D Secure, PayPal, account credit). Share the link with the user; never ask for card details in the chat.billing:readlecture
list_productsProducts that can be ordered through the API, with prices per billing cycle (m, q, s, a), plus the agent sandbox offers.services:readlecture
create_orderOrder a product (creates a real invoice). Two steps: call WITHOUT confirmation_token to get the price and a token (nothing is ordered), show the price to the user and get explicit approval, then call again WITH confirmation_token. Returns the invoice and its payment_url.orders:writeaction
list_ticketsList support tickets.tickets:readlecture
get_ticketOne support ticket with its messages.tickets:readlecture
create_ticketOpen a support ticket. Ask the user to confirm the content before calling.tickets:writeaction
reply_ticketReply to a support ticket.tickets:writeaction
get_vpsStatus, resources and IPs of a VPS.vps:readlecture
get_vps_metricsCPU, RAM and network usage of a VPS over the last hour.vps:readlecture
vps_powerStart, stop or restart a VPS. Stopping interrupts the customer's services: confirm with the user first.vps:poweraction
get_game_serverStatus, address and live resources of a game server (FiveM, Minecraft, bots…).game:readlecture
get_game_server_metricsCPU and RAM history of a game server.game:readlecture
game_server_powerStart, stop, restart or kill a game server. Stopping disconnects players: confirm with the user first.game:poweraction
get_ddos_attacksDDoS attacks detected and mitigated on the account's IPs and game servers, with the protected targets. Optionally for one IP address only.antiddos:readlecture
list_ddos_rulesAnti-DDoS rules of the account and what can be created: account_level (standard or extended), policies the account may use (name, protocols, restricted = named sources and precise ports required, extended_only), limits, eligible_ips (IPv4 addresses a rule can protect) and rules (id, ip, policy, proto_list, dport_list, sport_list, sip_list, description, status, position). status: pending (requested, not yet applied by the YorkHost NOC), active, suspended, dormant or rejected. position: evaluation order among the rules of the same IP (1 = first). Optionally for one IP address only.antiddos:readlecture
create_ddos_ruleRequest a new anti-DDoS rule on one of the account's eligible IPv4 addresses (from list_ddos_rules). Call list_ddos_rules first: the policy must be one of its policies, with protocols and ports that fit it. The rule is created with status pending and applied later by the YorkHost NOC. A wrong rule (e.g. Drop on the game port) can cut legitimate traffic: show the exact rule to the user and get explicit approval before calling. Validation errors carry a code and the field to fix.antiddos:writeaction
move_ddos_ruleChange the evaluation order of an anti-DDoS rule (id from list_ddos_rules): put it at position among the rules of the same IP (1 = evaluated first; a too large position puts it last). Confirm with the user first.antiddos:writeaction
delete_ddos_ruleDelete one anti-DDoS rule of the account (exact id from list_ddos_rules). The protection it gave stops once applied: confirm the rule (ip, policy, ports) with the user first.antiddos:writeaction
enable_authoritative_dnsOpen inbound UDP port 53 on one of the account's eligible IPv4 addresses (from list_ddos_rules) for an AUTHORITATIVE DNS server the user runs there (e.g. ns1 of their domain). YorkHost first checks the server over TCP 53: it must answer authoritatively (AA bit) for zone, refuse recursion, refuse zone transfers (AXFR) from anyone but its secondaries, and give minimal ANY answers. If a check fails, nothing is changed and the error carries a code (dns_unreachable, dns_not_authoritative, dns_open_resolver, dns_axfr_open, dns_any_large, dns_zone_invalid, dns_preset_exists, too_soon) and a message: relay that message to the user as is and do not try to work around it. On success, a rule (policy General UDP Countermeasure, udp, port 53, kind dns_authoritative) is created: traffic stays mitigated by the anti-DDoS, but the default resolver whitelist no longer applies to this IP; the server is re-checked weekly and the rule is removed automatically if recursion or AXFR become open. Do not promise anything about the level of protection. This changes how traffic to the IP is filtered: call it only after the user has explicitly asked for it and approved the exact IP and zone. Undo with delete_ddos_rule.antiddos:writeaction
dns_list_domainsDomains and DNS zones of the account. For each one: domain name (use it in the other dns_* tools), kind (domain or dnszone), status, expiry, ns_state (managed = delegated to YorkHost nameservers, mixed, external, unknown), zone_exists, readonly and source. A readonly zone is hosted on a cPanel web hosting: it can be read here but must be edited in cPanel. Records only take effect publicly when ns_state is managed.dns:readlecture
dns_get_domainDNS state of one domain: nameservers (state, live delegation, registrar, managed) and the YorkHost zone (exists, readonly, source, dnssec, serial, record count).dns:readlecture
dns_list_recordsRecords of a domain's DNS zone hosted at YorkHost: id (needed to update or delete), name (relative to the zone, @ = apex), fqdn, type, ttl, content, the type's fields (value; MX/SRV priority, weight, port, target; CAA flags, tag, value) and protected. Protected records (NS and SOA at the zone apex) are managed by YorkHost and cannot be changed or deleted.dns:readlecture
dns_add_recordAdd a record to a domain's DNS zone at YorkHost (A, AAAA, CNAME, MX, TXT, SRV, CAA…). Only send the fields of the record type (MX: priority; SRV: priority, weight, port; CAA: flags, tag): other fields are refused. Changes are public and cached for the TTL: confirm with the user first. NS and SOA records at the zone apex are protected and cannot be changed; zones hosted on cPanel are read-only (edit them in cPanel). Validation errors (code rec_err_*) explain what to fix.dns:writeaction
dns_update_recordReplace a record of a domain's DNS zone (id from dns_list_records): send the complete record (name, type, value and, when relevant, ttl, priority, weight, port), not only the changed field. Only send the fields of the record type (MX: priority; SRV: priority, weight, port; CAA: flags, tag): other fields are refused. Changes are public and cached for the TTL: confirm with the user first. NS and SOA records at the zone apex are protected and cannot be changed; zones hosted on cPanel are read-only (edit them in cPanel). Validation errors (code rec_err_*) explain what to fix.dns:writeaction
dns_delete_recordDelete a record of a domain's DNS zone (id from dns_list_records). Deleting an A, MX or CNAME record can take a website or mailbox offline: confirm with the user first. NS and SOA at the zone apex are protected; zones hosted on cPanel are read-only.dns:writeaction
dns_export_zoneExport a domain's DNS zone hosted at YorkHost as a BIND zone file (field bind), e.g. as a backup before changes.dns:readlecture
rdns_listReverse DNS (PTR) of the IP addresses of the account's services (VPS, dedicated servers…): ip, service_id, service_name, current ptr, default hostname and state (ok, pending, nozone, error). Optionally for one service only.rdns:readlecture
rdns_setSet the reverse DNS (PTR) of one of the account's IP addresses to a hostname. The hostname should resolve to the same IP (A or AAAA record), as mail servers check it: otherwise the PTR is still set and the result carries warning rdns_warn_forward — tell the user. Confirm the hostname with the user first.rdns:writeaction
rdns_resetRestore the default YorkHost reverse DNS (PTR) of one of the account's IP addresses.rdns:writeaction
rdns_bulkSet the reverse DNS of many IP addresses at once (up to 512 lines). An empty hostname restores the default PTR. Always call first with check_only=true: nothing is changed and the report (rows) gives, for each line, the result, error and warning; needed/remaining tell whether the batch fits the account's hourly change limit. Show it to the user, then call again with check_only=false to apply.rdns:writeaction
list_sandboxesAgent sandboxes (free trial VMs for AI agents: Linux, Linux desktop, Windows desktop) of the account, with SSH command, preview URL, expiry and, when being turned into a VPS, the transfer progress.sandbox:readlecture
create_sandboxCreate a free trial VM for an AI agent. It runs for its run window (2 hours by default when created from an account; see free_minutes in list_products and run_until in the result), then is stopped, and deleted with its files unless turned into a VPS with keep_sandbox. No public IP: SSH through the YorkHost gateway, web apps on the HTTPS preview URL. kind: linux (SSH, coding agents preinstalled), desktop (Linux desktop in the browser via noVNC, for computer use) or windows (Windows desktop). Requires the SSH public key the agent will connect with; SSH keys registered with add_sandbox_key are authorized too. Account secrets (set_sandbox_secret) are exported as environment variables in Linux sandboxes unless inject_secrets is false.sandbox:writeaction
sandbox_linksNew desktop link for a sandbox (the previous link stops working).sandbox:writeaction
keep_sandboxTurn a trial sandbox into a regular YorkHost VPS (order + invoice; public IP; its /home/agent folder is copied into the new VPS once paid). Two steps like create_order: preflight without confirmation_token, user approval, then confirm.orders:writeaction
claim_sandboxAttach an anonymous trial sandbox created with ssh yorkhost.sh to this account and turn it into a regular YorkHost VPS (order + invoice; its /home/agent folder is copied into the VPS once paid). Takes the claim link or token printed at creation. Only claim a sandbox the user created: its files come from its creator (SSH keys found in it are not copied; the account's registered SSH keys are installed for the agent user on the VPS). Two steps: preflight without confirmation_token, user approval, then confirm.orders:writeaction
delete_sandboxDelete a trial sandbox and all its files. Irreversible: confirm with the user first.sandbox:writeaction
sandbox_execRun a shell command inside one of the account's running sandboxes (kinds linux and desktop, not windows), without SSH. The command runs as bash -lc <command> as the Linux user agent in the trial VM (home /home/agent, passwordless sudo for root tasks such as apt-get), in /home/agent or cwd. Returns exit_code, stdout and stderr (each truncated beyond 256 KiB, see stdout_truncated/stderr_truncated), timed_out and duration_ms. timeout_seconds defaults to 60 (max 300): the command and its children are killed at the timeout. For servers and long jobs, start them in the background with their output redirected (e.g. nohup npm run dev > /tmp/dev.log 2>&1 &), then poll the log. The sandbox has no public IP: to test a web app, listen on 0.0.0.0:8080 and open the sandbox's preview_url from list_sandboxes (https://<sandbox_id>-8080.yorkhost.sh; for another port, change 8080 in the hostname), or curl localhost:<port> here.Outbound traffic is limited to web, git, SSH and DNS. At most 4 commands run at once per sandbox.sandbox:writeaction
sandbox_list_filesList a directory inside a running sandbox (kinds linux and desktop), read as the Linux user agent: name (relative to path), type (file, dir, symlink, other), size, mode and mtime. path must be under /home/agent or /tmp (relative paths start from /home/agent; default /home/agent). depth 1 to 3 lists subdirectories recursively (default 1). At most 1000 entries (truncated flag); symlinks are not followed.sandbox:readlecture
sandbox_read_fileRead a file inside a running sandbox (kinds linux and desktop), as the Linux user agent (its permissions apply). path must be under /home/agent or /tmp (relative paths start from /home/agent). Returns the first 1 MiB: encoding utf-8 (content is the text) or base64 for binary files, plus size and truncated.sandbox:readlecture
sandbox_write_fileCreate or overwrite a file inside a running sandbox (kinds linux and desktop), as the Linux user agent; missing parent directories are created and the file is replaced atomically. path must be under /home/agent or /tmp (relative paths start from /home/agent). content is text (encoding utf-8, default) or base64 (encoding base64) for binary data, at most 1 MiB. mode is an optional octal permission such as 755 (default: kept when overwriting an existing file).sandbox:writeaction
list_sandbox_keysSSH public keys registered on the account for agent sandboxes (fingerprint, name). Each of them can connect to every sandbox of the account (ssh <sandbox id>@yorkhost.sh) and is added to sandboxes created later.sandbox:readlecture
add_sandbox_keyRegister an SSH PUBLIC key on the account (max 10): it can then connect to all the account's sandboxes, current and future. Never send a private key.sandbox:writeaction
remove_sandbox_keyRemove an SSH key from the account: it can no longer connect to the account's sandboxes through the gateway.sandbox:writeaction
list_sandbox_secretsNames of the account's sandbox secrets (environment variables such as ANTHROPIC_API_KEY, OPENAI_API_KEY, GITHUB_TOKEN exported in new Linux sandboxes). Values are never returned.sandbox:readlecture
set_sandbox_secretCreate or replace an account secret exported as an environment variable in the account's new Linux sandboxes (max 20, value up to 4 KiB). Stored encrypted and never shown again: only use a value the user explicitly gave for this purpose, and do not repeat it back.sandbox:writeaction
delete_sandbox_secretDelete an account secret (sandboxes created later no longer get it; existing ones keep their environment until deleted).sandbox:writeaction

Détail des outils​

get_account​

Profile of the authenticated YorkHost account (name, email, credit balance).

  • Permission : account:read
  • Route équivalente : GET /client/v1/account
  • Arguments : aucun

list_services​

List the account's services (VPS, game servers, domains…) with their IDs, type and status. Call this first to find a service ID.

  • Permission : services:read
  • Route équivalente : GET /client/v1/services
  • Arguments : aucun

get_service​

Details of one service.

  • Permission : services:read
  • Route équivalente : GET /client/v1/services/:id

Arguments :

ArgumentTypeDescription
service_id (requis)integerYorkHost service ID (from list_services)

list_invoices​

List invoices (status, amount, due date).

  • Permission : billing:read
  • Route équivalente : GET /client/v1/invoices
  • Arguments : aucun

get_invoice​

One invoice with its line items.

  • Permission : billing:read
  • Route équivalente : GET /client/v1/invoices/:id

Arguments :

ArgumentTypeDescription
invoice_id (requis)integer

Status of an invoice and, if unpaid, the secure YorkHost page where the user pays it (card with 3-D Secure, PayPal, account credit). Share the link with the user; never ask for card details in the chat.

  • Permission : billing:read
  • Route équivalente : GET /client/v1/invoices/:id/payment-link

Arguments :

ArgumentTypeDescription
invoice_id (requis)integer

list_products​

Products that can be ordered through the API, with prices per billing cycle (m, q, s, a), plus the agent sandbox offers.

  • Permission : services:read
  • Route équivalente : GET /client/v1/catalog
  • Arguments : aucun

create_order​

Order a product (creates a real invoice). Two steps: call WITHOUT confirmation_token to get the price and a token (nothing is ordered), show the price to the user and get explicit approval, then call again WITH confirmation_token. Returns the invoice and its payment_url.

  • Permission : orders:write
  • Route équivalente : POST /client/v1/orders

Arguments :

ArgumentTypeDescription
confirmation_tokenstringFrom the preflight call, only after the user approved the price
cyclestringBilling cycle (default m = monthly)
product_id (requis)integerFrom list_products

list_tickets​

List support tickets.

  • Permission : tickets:read
  • Route équivalente : GET /client/v1/tickets
  • Arguments : aucun

get_ticket​

One support ticket with its messages.

  • Permission : tickets:read
  • Route équivalente : GET /client/v1/tickets/:id

Arguments :

ArgumentTypeDescription
ticket_id (requis)stringTicket number or ID

create_ticket​

Open a support ticket. Ask the user to confirm the content before calling.

  • Permission : tickets:write
  • Route équivalente : POST /client/v1/tickets

Arguments :

ArgumentTypeDescription
body (requis)string
request_typestring
service_idintegerYorkHost service ID (from list_services)
subject (requis)string

reply_ticket​

Reply to a support ticket.

  • Permission : tickets:write
  • Route équivalente : POST /client/v1/tickets/:id/reply

Arguments :

ArgumentTypeDescription
body (requis)string
ticket_id (requis)string

get_vps​

Status, resources and IPs of a VPS.

  • Permission : vps:read
  • Route équivalente : GET /client/v1/vps/:id

Arguments :

ArgumentTypeDescription
service_id (requis)integerYorkHost service ID (from list_services)

get_vps_metrics​

CPU, RAM and network usage of a VPS over the last hour.

  • Permission : vps:read
  • Route équivalente : GET /client/v1/vps/:id/metrics

Arguments :

ArgumentTypeDescription
service_id (requis)integerYorkHost service ID (from list_services)

vps_power​

Start, stop or restart a VPS. Stopping interrupts the customer's services: confirm with the user first.

  • Permission : vps:power
  • Route équivalente : POST /client/v1/vps/:id/power

Arguments :

ArgumentTypeDescription
action (requis)string
service_id (requis)integerYorkHost service ID (from list_services)

get_game_server​

Status, address and live resources of a game server (FiveM, Minecraft, bots…).

  • Permission : game:read
  • Route équivalente : GET /client/v1/game-servers/:id

Arguments :

ArgumentTypeDescription
service_id (requis)integerYorkHost service ID (from list_services)

get_game_server_metrics​

CPU and RAM history of a game server.

  • Permission : game:read
  • Route équivalente : GET /client/v1/game-servers/:id/metrics

Arguments :

ArgumentTypeDescription
service_id (requis)integerYorkHost service ID (from list_services)

game_server_power​

Start, stop, restart or kill a game server. Stopping disconnects players: confirm with the user first.

  • Permission : game:power
  • Route équivalente : POST /client/v1/game-servers/:id/power

Arguments :

ArgumentTypeDescription
action (requis)string
service_id (requis)integerYorkHost service ID (from list_services)

get_ddos_attacks​

DDoS attacks detected and mitigated on the account's IPs and game servers, with the protected targets. Optionally for one IP address only.

  • Permission : antiddos:read
  • Route équivalente : GET /client/v1/antiddos

Arguments :

ArgumentTypeDescription
daysintegerHistory depth in days (default 90)
ipstringOne IP address of the account (only this IP)

list_ddos_rules​

Anti-DDoS rules of the account and what can be created: account_level (standard or extended), policies the account may use (name, protocols, restricted = named sources and precise ports required, extended_only), limits, eligible_ips (IPv4 addresses a rule can protect) and rules (id, ip, policy, proto_list, dport_list, sport_list, sip_list, description, status, position). status: pending (requested, not yet applied by the YorkHost NOC), active, suspended, dormant or rejected. position: evaluation order among the rules of the same IP (1 = first). Optionally for one IP address only.

  • Permission : antiddos:read
  • Route équivalente : GET /client/v1/antiddos/rules

Arguments :

ArgumentTypeDescription
ipstringOne IP address of the account (only this IP)

create_ddos_rule​

Request a new anti-DDoS rule on one of the account's eligible IPv4 addresses (from list_ddos_rules). Call list_ddos_rules first: the policy must be one of its policies, with protocols and ports that fit it. The rule is created with status pending and applied later by the YorkHost NOC. A wrong rule (e.g. Drop on the game port) can cut legitimate traffic: show the exact rule to the user and get explicit approval before calling. Validation errors carry a code and the field to fix.

  • Permission : antiddos:write
  • Route équivalente : POST /client/v1/antiddos/rules

Arguments :

ArgumentTypeDescription
descriptionstringShort note shown in the client area
dport_listarrayDestination ports: 30120 or a range 27015-27030
ip (requis)stringIPv4 address from eligible_ips (list_ddos_rules)
policy (requis)stringPolicy name from policies (list_ddos_rules), e.g. FiveM UDP, Minecraft Protection, Rate Limiter Low, Drop
positionintegerPosition among the IP's rules (1 = evaluated first). Default: last
proto_listarrayProtocols (required by most policies)
sip_listarraySource addresses or networks (required for Allow List)
sport_listarraySource ports

move_ddos_rule​

Change the evaluation order of an anti-DDoS rule (id from list_ddos_rules): put it at position among the rules of the same IP (1 = evaluated first; a too large position puts it last). Confirm with the user first.

  • Permission : antiddos:write
  • Route équivalente : POST /client/v1/antiddos/rules/:id/move

Arguments :

ArgumentTypeDescription
position (requis)integerNew position (1 = first)
rule_id (requis)stringRule id from list_ddos_rules

delete_ddos_rule​

Delete one anti-DDoS rule of the account (exact id from list_ddos_rules). The protection it gave stops once applied: confirm the rule (ip, policy, ports) with the user first.

  • Permission : antiddos:write
  • Route équivalente : DELETE /client/v1/antiddos/rules/:id

Arguments :

ArgumentTypeDescription
rule_id (requis)stringRule id from list_ddos_rules

enable_authoritative_dns​

Open inbound UDP port 53 on one of the account's eligible IPv4 addresses (from list_ddos_rules) for an AUTHORITATIVE DNS server the user runs there (e.g. ns1 of their domain). YorkHost first checks the server over TCP 53: it must answer authoritatively (AA bit) for zone, refuse recursion, refuse zone transfers (AXFR) from anyone but its secondaries, and give minimal ANY answers. If a check fails, nothing is changed and the error carries a code (dns_unreachable, dns_not_authoritative, dns_open_resolver, dns_axfr_open, dns_any_large, dns_zone_invalid, dns_preset_exists, too_soon) and a message: relay that message to the user as is and do not try to work around it. On success, a rule (policy General UDP Countermeasure, udp, port 53, kind dns_authoritative) is created: traffic stays mitigated by the anti-DDoS, but the default resolver whitelist no longer applies to this IP; the server is re-checked weekly and the rule is removed automatically if recursion or AXFR become open. Do not promise anything about the level of protection. This changes how traffic to the IP is filtered: call it only after the user has explicitly asked for it and approved the exact IP and zone. Undo with delete_ddos_rule.

  • Permission : antiddos:write
  • Route équivalente : POST /client/v1/antiddos/rules/dns-authoritative

Arguments :

ArgumentTypeDescription
ip (requis)stringIPv4 address of the DNS server, from eligible_ips (list_ddos_rules)
zone (requis)stringDomain the server is authoritative for, e.g. example.com

dns_list_domains​

Domains and DNS zones of the account. For each one: domain name (use it in the other dns_* tools), kind (domain or dnszone), status, expiry, ns_state (managed = delegated to YorkHost nameservers, mixed, external, unknown), zone_exists, readonly and source. A readonly zone is hosted on a cPanel web hosting: it can be read here but must be edited in cPanel. Records only take effect publicly when ns_state is managed.

  • Permission : dns:read
  • Route équivalente : GET /client/v1/dns/domains
  • Arguments : aucun

dns_get_domain​

DNS state of one domain: nameservers (state, live delegation, registrar, managed) and the YorkHost zone (exists, readonly, source, dnssec, serial, record count).

  • Permission : dns:read
  • Route équivalente : GET /client/v1/dns/domains/:domain

Arguments :

ArgumentTypeDescription
domain (requis)stringDomain name, e.g. example.com (from dns_list_domains)

dns_list_records​

Records of a domain's DNS zone hosted at YorkHost: id (needed to update or delete), name (relative to the zone, @ = apex), fqdn, type, ttl, content, the type's fields (value; MX/SRV priority, weight, port, target; CAA flags, tag, value) and protected. Protected records (NS and SOA at the zone apex) are managed by YorkHost and cannot be changed or deleted.

  • Permission : dns:read
  • Route équivalente : GET /client/v1/dns/domains/:domain/records

Arguments :

ArgumentTypeDescription
domain (requis)stringDomain name, e.g. example.com (from dns_list_domains)

dns_add_record​

Add a record to a domain's DNS zone at YorkHost (A, AAAA, CNAME, MX, TXT, SRV, CAA…). Only send the fields of the record type (MX: priority; SRV: priority, weight, port; CAA: flags, tag): other fields are refused. Changes are public and cached for the TTL: confirm with the user first. NS and SOA records at the zone apex are protected and cannot be changed; zones hosted on cPanel are read-only (edit them in cPanel). Validation errors (code rec_err_*) explain what to fix.

  • Permission : dns:write
  • Route équivalente : POST /client/v1/dns/domains/:domain/records

Arguments :

ArgumentTypeDescription
domain (requis)stringDomain name, e.g. example.com (from dns_list_domains)
flagsintegerCAA flags (usually 0)
name (requis)stringRecord name relative to the zone: @ for the zone apex, www, mail, _dmarc…
portintegerSRV port
priorityintegerMX and SRV priority
tagstringCAA tag
ttlintegerTTL in seconds (default chosen by YorkHost)
type (requis)stringA, AAAA, CNAME, MX, TXT, SRV, CAA…
value (requis)stringRecord value: IP for A/AAAA, target hostname for CNAME/MX/SRV, text for TXT, CA domain for CAA
weightintegerSRV weight

dns_update_record​

Replace a record of a domain's DNS zone (id from dns_list_records): send the complete record (name, type, value and, when relevant, ttl, priority, weight, port), not only the changed field. Only send the fields of the record type (MX: priority; SRV: priority, weight, port; CAA: flags, tag): other fields are refused. Changes are public and cached for the TTL: confirm with the user first. NS and SOA records at the zone apex are protected and cannot be changed; zones hosted on cPanel are read-only (edit them in cPanel). Validation errors (code rec_err_*) explain what to fix.

  • Permission : dns:write
  • Route équivalente : PATCH /client/v1/dns/domains/:domain/records/:record_id

Arguments :

ArgumentTypeDescription
domain (requis)stringDomain name, e.g. example.com (from dns_list_domains)
flagsintegerCAA flags (usually 0)
name (requis)stringRecord name relative to the zone: @ for the zone apex, www, mail, _dmarc…
portintegerSRV port
priorityintegerMX and SRV priority
record_id (requis)stringRecord id from dns_list_records
tagstringCAA tag
ttlintegerTTL in seconds (default chosen by YorkHost)
type (requis)stringA, AAAA, CNAME, MX, TXT, SRV, CAA…
value (requis)stringRecord value: IP for A/AAAA, target hostname for CNAME/MX/SRV, text for TXT, CA domain for CAA
weightintegerSRV weight

dns_delete_record​

Delete a record of a domain's DNS zone (id from dns_list_records). Deleting an A, MX or CNAME record can take a website or mailbox offline: confirm with the user first. NS and SOA at the zone apex are protected; zones hosted on cPanel are read-only.

  • Permission : dns:write
  • Route équivalente : DELETE /client/v1/dns/domains/:domain/records/:record_id

Arguments :

ArgumentTypeDescription
domain (requis)stringDomain name, e.g. example.com (from dns_list_domains)
record_id (requis)stringRecord id from dns_list_records

dns_export_zone​

Export a domain's DNS zone hosted at YorkHost as a BIND zone file (field bind), e.g. as a backup before changes.

  • Permission : dns:read
  • Route équivalente : GET /client/v1/dns/domains/:domain/export

Arguments :

ArgumentTypeDescription
domain (requis)stringDomain name, e.g. example.com (from dns_list_domains)

rdns_list​

Reverse DNS (PTR) of the IP addresses of the account's services (VPS, dedicated servers…): ip, service_id, service_name, current ptr, default hostname and state (ok, pending, nozone, error). Optionally for one service only.

  • Permission : rdns:read
  • Route équivalente : GET /client/v1/rdns

Arguments :

ArgumentTypeDescription
service_idintegerYorkHost service ID (from list_services)

rdns_set​

Set the reverse DNS (PTR) of one of the account's IP addresses to a hostname. The hostname should resolve to the same IP (A or AAAA record), as mail servers check it: otherwise the PTR is still set and the result carries warning rdns_warn_forward — tell the user. Confirm the hostname with the user first.

  • Permission : rdns:write
  • Route équivalente : PUT /client/v1/rdns/:ip

Arguments :

ArgumentTypeDescription
hostname (requis)stringFully qualified hostname, e.g. mail.example.com
ip (requis)stringIPv4 or IPv6 address of one of the account's services (from rdns_list)

rdns_reset​

Restore the default YorkHost reverse DNS (PTR) of one of the account's IP addresses.

  • Permission : rdns:write
  • Route équivalente : DELETE /client/v1/rdns/:ip

Arguments :

ArgumentTypeDescription
ip (requis)stringIPv4 or IPv6 address of one of the account's services (from rdns_list)

rdns_bulk​

Set the reverse DNS of many IP addresses at once (up to 512 lines). An empty hostname restores the default PTR. Always call first with check_only=true: nothing is changed and the report (rows) gives, for each line, the result, error and warning; needed/remaining tell whether the batch fits the account's hourly change limit. Show it to the user, then call again with check_only=false to apply.

  • Permission : rdns:write
  • Route équivalente : POST /client/v1/rdns/bulk

Arguments :

ArgumentTypeDescription
check_only (requis)booleantrue = dry run (report only, nothing changed)
entries (requis)arrayLines {ip, hostname}

list_sandboxes​

Agent sandboxes (free trial VMs for AI agents: Linux, Linux desktop, Windows desktop) of the account, with SSH command, preview URL, expiry and, when being turned into a VPS, the transfer progress.

  • Permission : sandbox:read
  • Route équivalente : GET /client/v1/sandboxes
  • Arguments : aucun

create_sandbox​

Create a free trial VM for an AI agent. It runs for its run window (2 hours by default when created from an account; see free_minutes in list_products and run_until in the result), then is stopped, and deleted with its files unless turned into a VPS with keep_sandbox. No public IP: SSH through the YorkHost gateway, web apps on the HTTPS preview URL. kind: linux (SSH, coding agents preinstalled), desktop (Linux desktop in the browser via noVNC, for computer use) or windows (Windows desktop). Requires the SSH public key the agent will connect with; SSH keys registered with add_sandbox_key are authorized too. Account secrets (set_sandbox_secret) are exported as environment variables in Linux sandboxes unless inject_secrets is false.

  • Permission : sandbox:write
  • Route équivalente : POST /client/v1/sandboxes

Arguments :

ArgumentTypeDescription
inject_secretsbooleanExport the account's sandbox secrets (API keys, tokens) in this sandbox. Default true; set false for untrusted code.
kindstring
ssh_public_key (requis)stringOne OpenSSH public key line (ssh-ed25519 …)

New desktop link for a sandbox (the previous link stops working).

  • Permission : sandbox:write
  • Route équivalente : POST /client/v1/sandboxes/:id/links

Arguments :

ArgumentTypeDescription
sandbox_id (requis)stringSandbox ID (sbx…, from list_sandboxes)

keep_sandbox​

Turn a trial sandbox into a regular YorkHost VPS (order + invoice; public IP; its /home/agent folder is copied into the new VPS once paid). Two steps like create_order: preflight without confirmation_token, user approval, then confirm.

  • Permission : orders:write
  • Route équivalente : POST /client/v1/sandboxes/:id/keep

Arguments :

ArgumentTypeDescription
confirmation_tokenstring
sandbox_id (requis)stringSandbox ID (sbx…, from list_sandboxes)

claim_sandbox​

Attach an anonymous trial sandbox created with ssh yorkhost.sh to this account and turn it into a regular YorkHost VPS (order + invoice; its /home/agent folder is copied into the VPS once paid). Takes the claim link or token printed at creation. Only claim a sandbox the user created: its files come from its creator (SSH keys found in it are not copied; the account's registered SSH keys are installed for the agent user on the VPS). Two steps: preflight without confirmation_token, user approval, then confirm.

  • Permission : orders:write
  • Route équivalente : POST /client/v1/sandboxes/claim

Arguments :

ArgumentTypeDescription
claim_token (requis)stringyhsc_… token or the full claim link
confirmation_tokenstring

delete_sandbox​

Delete a trial sandbox and all its files. Irreversible: confirm with the user first.

  • Permission : sandbox:write
  • Route équivalente : DELETE /client/v1/sandboxes/:id

Arguments :

ArgumentTypeDescription
sandbox_id (requis)stringSandbox ID (sbx…, from list_sandboxes)

sandbox_exec​

Run a shell command inside one of the account's running sandboxes (kinds linux and desktop, not windows), without SSH. The command runs as bash -lc <command> as the Linux user agent in the trial VM (home /home/agent, passwordless sudo for root tasks such as apt-get), in /home/agent or cwd. Returns exit_code, stdout and stderr (each truncated beyond 256 KiB, see stdout_truncated/stderr_truncated), timed_out and duration_ms. timeout_seconds defaults to 60 (max 300): the command and its children are killed at the timeout. For servers and long jobs, start them in the background with their output redirected (e.g. nohup npm run dev > /tmp/dev.log 2>&1 &), then poll the log. The sandbox has no public IP: to test a web app, listen on 0.0.0.0:8080 and open the sandbox's preview_url from list_sandboxes (https://<sandbox_id>-8080.yorkhost.sh; for another port, change 8080 in the hostname), or curl localhost:<port> here.Outbound traffic is limited to web, git, SSH and DNS. At most 4 commands run at once per sandbox.

  • Permission : sandbox:write
  • Route équivalente : POST /client/v1/sandboxes/:id/exec

Arguments :

ArgumentTypeDescription
command (requis)stringShell command (bash syntax, pipes and && allowed), at most 32 KiB
cwdstringWorking directory under /home/agent (default /home/agent)
sandbox_id (requis)stringSandbox ID (sbx…, from list_sandboxes)
stdinstringOptional text sent to the command's standard input (at most 32 KiB)
timeout_secondsintegerDefault 60

sandbox_list_files​

List a directory inside a running sandbox (kinds linux and desktop), read as the Linux user agent: name (relative to path), type (file, dir, symlink, other), size, mode and mtime. path must be under /home/agent or /tmp (relative paths start from /home/agent; default /home/agent). depth 1 to 3 lists subdirectories recursively (default 1). At most 1000 entries (truncated flag); symlinks are not followed.

  • Permission : sandbox:read
  • Route équivalente : GET /client/v1/sandboxes/:id/files

Arguments :

ArgumentTypeDescription
depthintegerRecursion depth (default 1)
pathstringDirectory under /home/agent or /tmp (default /home/agent)
sandbox_id (requis)stringSandbox ID (sbx…, from list_sandboxes)

sandbox_read_file​

Read a file inside a running sandbox (kinds linux and desktop), as the Linux user agent (its permissions apply). path must be under /home/agent or /tmp (relative paths start from /home/agent). Returns the first 1 MiB: encoding utf-8 (content is the text) or base64 for binary files, plus size and truncated.

  • Permission : sandbox:read
  • Route équivalente : GET /client/v1/sandboxes/:id/files/content

Arguments :

ArgumentTypeDescription
path (requis)stringFile under /home/agent or /tmp
sandbox_id (requis)stringSandbox ID (sbx…, from list_sandboxes)

sandbox_write_file​

Create or overwrite a file inside a running sandbox (kinds linux and desktop), as the Linux user agent; missing parent directories are created and the file is replaced atomically. path must be under /home/agent or /tmp (relative paths start from /home/agent). content is text (encoding utf-8, default) or base64 (encoding base64) for binary data, at most 1 MiB. mode is an optional octal permission such as 755 (default: kept when overwriting an existing file).

  • Permission : sandbox:write
  • Route équivalente : PUT /client/v1/sandboxes/:id/files/content

Arguments :

ArgumentTypeDescription
content (requis)stringFile content (text, or base64 with encoding=base64)
encodingstringDefault utf-8
modestringOctal permission, e.g. 644 or 755
path (requis)stringFile under /home/agent or /tmp
sandbox_id (requis)stringSandbox ID (sbx…, from list_sandboxes)

list_sandbox_keys​

SSH public keys registered on the account for agent sandboxes (fingerprint, name). Each of them can connect to every sandbox of the account (ssh <sandbox id>@yorkhost.sh) and is added to sandboxes created later.

  • Permission : sandbox:read
  • Route équivalente : GET /client/v1/sandbox-keys
  • Arguments : aucun

add_sandbox_key​

Register an SSH PUBLIC key on the account (max 10): it can then connect to all the account's sandboxes, current and future. Never send a private key.

  • Permission : sandbox:write
  • Route équivalente : POST /client/v1/sandbox-keys

Arguments :

ArgumentTypeDescription
namestringLabel (default: the key comment)
public_key (requis)stringOne OpenSSH public key line (ssh-ed25519 …, ecdsa-sha2-… or ssh-rsa ≥ 2048 bits)

remove_sandbox_key​

Remove an SSH key from the account: it can no longer connect to the account's sandboxes through the gateway.

  • Permission : sandbox:write
  • Route équivalente : DELETE /client/v1/sandbox-keys

Arguments :

ArgumentTypeDescription
fingerprint (requis)stringSHA256:… fingerprint from list_sandbox_keys

list_sandbox_secrets​

Names of the account's sandbox secrets (environment variables such as ANTHROPIC_API_KEY, OPENAI_API_KEY, GITHUB_TOKEN exported in new Linux sandboxes). Values are never returned.

  • Permission : sandbox:read
  • Route équivalente : GET /client/v1/sandbox-secrets
  • Arguments : aucun

set_sandbox_secret​

Create or replace an account secret exported as an environment variable in the account's new Linux sandboxes (max 20, value up to 4 KiB). Stored encrypted and never shown again: only use a value the user explicitly gave for this purpose, and do not repeat it back.

  • Permission : sandbox:write
  • Route équivalente : PUT /client/v1/sandbox-secrets/:name

Arguments :

ArgumentTypeDescription
name (requis)stringVariable name, e.g. ANTHROPIC_API_KEY
value (requis)stringSecret value (up to 4096 bytes)

delete_sandbox_secret​

Delete an account secret (sandboxes created later no longer get it; existing ones keep their environment until deleted).

  • Permission : sandbox:write
  • Route équivalente : DELETE /client/v1/sandbox-secrets/:name

Arguments :

ArgumentTypeDescription
name (requis)stringVariable name from list_sandbox_secrets