OVHcloud MCP Server
Manage your OVHcloud infrastructure — VPS, domains/DNS, billing, account — plus API discovery and remote SSH execution, all from any MCP client.
VPS control: list all VPS, get server state/hardware/IPs, view disks, IPs and snapshot info, create snapshots, and start, stop or reboot a VPS.
Usage monitoring: pull per-disk usage statistics over a chosen period (
ovh_vps_monitoring).Domains & DNS: list domains/zones, inspect nameservers and DNSSEC, list or inspect records with type/subdomain filters, and create, update, delete or force-refresh DNS records.
Account & billing: read account details, list all services with state/renewal/expiration, list recent invoices with PDF links, and get an invoice's line items.
API Explorer: browse OVH API categories, keyword-search endpoints across all or one category, and view full parameter/type details for any endpoint — no code required.
Raw API access: call any OVH endpoint directly, read-only by default; POST/PUT/DELETE unlock with
OVH_ALLOW_RAW_WRITES=true.SSH: execute shell commands on a remote host (non-zero exit or signal counts as an error) and test SSH connectivity, using env defaults or per-call overrides.
Note: the schema's ovh_vps_monitoring advertises CPU and network RX/TX stats, but the README states OVH's public schema offers no such data and only disk statistics are actually available.
Manage VPS, domains, DNS, billing, and execute SSH commands on OVHcloud infrastructure.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OVHcloud MCP Server list my VPS instances"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OVHcloud MCP Server
MCP server for OVHcloud. Manage VPS, domains, DNS, billing, and execute SSH commands from any MCP-compatible client.
27 tools, plus search over OVH's published API schemas and a raw API call for anything not covered.
Requirements
Node.js 22+
OVH API credentials (create token)
Related MCP server: Hetzner Cloud MCP Server — Cloud API + SSH management (60 tools)
Installation
git clone https://github.com/hlebtkachenko/ovhcloud-mcp.git
cd ovhcloud-mcp
npm ci
npm run buildConfiguration
Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"ovhcloud": {
"command": "node",
"args": ["/path/to/ovhcloud-mcp/dist/index.js"],
"env": {
"OVH_APPLICATION_KEY": "your_app_key",
"OVH_APPLICATION_SECRET": "your_app_secret",
"OVH_CONSUMER_KEY": "your_consumer_key"
}
}
}
}Claude Desktop
claude_desktop_config.json (location)
{
"mcpServers": {
"ovhcloud": {
"command": "node",
"args": ["/path/to/ovhcloud-mcp/dist/index.js"],
"env": {
"OVH_APPLICATION_KEY": "your_app_key",
"OVH_APPLICATION_SECRET": "your_app_secret",
"OVH_CONSUMER_KEY": "your_consumer_key"
}
}
}
}Claude Code
.mcp.json in your project root, or ~/.claude.json globally:
{
"mcpServers": {
"ovhcloud": {
"command": "node",
"args": ["/path/to/ovhcloud-mcp/dist/index.js"],
"env": {
"OVH_APPLICATION_KEY": "your_app_key",
"OVH_APPLICATION_SECRET": "your_app_secret",
"OVH_CONSUMER_KEY": "your_consumer_key"
}
}
}
}Any MCP client (stdio)
The server uses stdio transport. Point your MCP client to:
node /path/to/ovhcloud-mcp/dist/index.jsWith environment variables set for authentication (see below).
Environment Variables
Authentication (one of two modes, auto-detected):
Variable | Mode | Description |
| API key | Application key |
| API key | Application secret |
| API key | Consumer key |
| OAuth2 | Service account ID |
| OAuth2 | Service account secret |
| Both |
|
OAuth2 gets its access token the same way as go-ovh: client credentials with scope=all from https://www.ovh.com/auth/oauth2/token (EU), https://ca.ovh.com/auth/oauth2/token (CA) or https://us.ovhcloud.com/auth/oauth2/token (US).
Other (optional):
Variable | Description |
|
|
| HTTP timeout per request (default 30000) |
SSH (optional):
Variable | Description |
| Default SSH host. The env credentials below are used only for this host |
| SSH port for |
| Username for |
| Password for |
| Private key file for |
| Pinned host key fingerprint of |
For any other host, the tool call must pass username and password itself. Without SSH_HOST_KEY (and always for other hosts) the host key is not verified; the result then carries a warning.
Tools
VPS
OVH's public API schema has no VPS CPU or network statistics, so ovh_vps_monitoring covers disks only.
Tool | Description |
| List all VPS with hardware details |
| Server state, hardware, IPs, service status |
| Disk usage statistics ( |
| List assigned IPs |
| Reboot a VPS |
| Start a stopped VPS |
| Stop a running VPS |
| Get snapshot info |
| Create a snapshot (needs the snapshot option and no existing snapshot) |
Domains & DNS
Tool | Description |
| List all domains and DNS zones |
| Nameservers, DNSSEC status |
| List records with type/subdomain filters |
| Single record details |
| Create DNS record, then refresh the zone |
| Update DNS record, then refresh the zone |
| Delete DNS record, then refresh the zone |
| Force zone refresh |
Account & Billing
Tool | Description |
| Account details (name, email, country) |
| All services with state, renewal mode and expiration ( |
| Invoices in a date range (default: last 365 days), newest first, with PDF links |
| Invoice with line items (the bill password is left out) |
API Explorer
Discover and inspect any OVH API endpoint without writing code.
Tool | Description |
| List all API categories (vps, cloud, email, dedicated, etc.) |
| Search endpoints by keyword across all or specific categories |
| Parameters, types, and descriptions for any endpoint |
SSH
Tool | Description |
| Execute a command on a remote server; non-zero exit or a signal is an error |
| Test SSH connectivity |
Raw API
Tool | Description |
| Call any OVH API endpoint directly; POST/PUT/DELETE need |
Docker
docker build -t ovhcloud-mcp .
docker run --rm \
-e OVH_APPLICATION_KEY=... \
-e OVH_APPLICATION_SECRET=... \
-e OVH_CONSUMER_KEY=... \
ovhcloud-mcpMulti-stage build, runs as non-root node user.
Security
API paths are checked before every request:
..,?,#and\are rejected, also when percent-encoded; tool parameters are encoded as single path segmentsovh_api_rawis read-only unlessOVH_ALLOW_RAW_WRITES=trueSSH env credentials are sent only to
SSH_HOST;SSH_HOST_KEYpins its host keyA write that times out is reported as "outcome unknown" and never retried
Every tool carries MCP annotations (
readOnlyHint,destructiveHint,openWorldHint)30-second timeout on all HTTP requests; error responses truncated to 500 characters
SSH output capped at 100 KB
Docker container runs as unprivileged user
Testing
npm test # build + node:test suite against a fake OVH API and SSH server
npm run check:contract # validate every tool request against OVH's published API schemasNo OVH credentials are needed for either. Layout and design: ARCHITECTURE.md.
Tech Stack
TypeScript
@modelcontextprotocol/sdkZod (schema validation)
ssh2 (SSH client)
Native
fetch
API Reference
License
Available Tools
27 toolsovh_account_infoA
Get OVH account details (name, email, country, etc.)
Inputs: no named parameters.
ovh_api_catalogA
List all available OVH API categories (vps, domain, cloud, dedicated, email, etc.)
Inputs: no named parameters.
ovh_api_endpoint_detailB
Get full details for a specific API endpoint (parameters, types, descriptions)
Inputs: path (required), method.
ovh_api_rawB
Call any OVH API endpoint directly (advanced)
Inputs: path (required), method, body, query.
ovh_api_searchA
Search OVH API endpoints by keyword or path pattern. Searches endpoint paths and descriptions across all (or specific) API categories.
Inputs: query (required), category, method.
ovh_domain_dns_createB
Create a new DNS record
Inputs: zone (required), fieldType (required), subDomain (required), target (required), +1 more.
ovh_domain_dns_deleteB
Delete a DNS record (careful!)
Inputs: zone (required), recordId (required).
ovh_domain_dns_record_detailA
Get a specific DNS record by ID
Inputs: zone (required), recordId (required).
ovh_domain_dns_recordsA
List DNS records for a zone (optionally filter by type or subdomain)
Inputs: zone (required), fieldType, subDomain.
ovh_domain_dns_refreshC
Force refresh a DNS zone
Inputs: zone (required).
ovh_domain_dns_updateC
Update an existing DNS record
Inputs: zone (required), recordId (required), subDomain, target, +1 more.
ovh_domain_listA
List all domains in your OVH account
Inputs: no named parameters.
ovh_domain_zone_infoC
Get DNS zone details
Inputs: zone (required).
ovh_invoice_detailA
Get full details of a specific invoice
Inputs: billId (required).
ovh_invoicesC
List recent invoices (bills)
Inputs: limit.
ovh_servicesB
List all active OVH services
Inputs: no named parameters.
ovh_ssh_checkB
Test SSH connectivity to a remote server
Inputs: host, port, username, password, +1 more.
ovh_ssh_execA
Execute a command on a remote server via SSH. Uses env defaults (SSH_HOST, SSH_USER, SSH_PASSWORD/SSH_PRIVATE_KEY_FILE) or per-call overrides.
Inputs: command (required), host, port, username, +3 more.
ovh_vps_create_snapshotA
Create a new VPS snapshot (overwrites existing)
Inputs: serviceName (required), description.
ovh_vps_infoB
Get detailed VPS information
Inputs: serviceName (required).
ovh_vps_ipsA
List all IPs assigned to a VPS
Inputs: serviceName (required).
ovh_vps_listA
List all VPS services on your OVH account
Inputs: no named parameters.
ovh_vps_monitoringB
Get VPS usage statistics (CPU, network RX/TX)
Inputs: serviceName (required), type, period.
ovh_vps_rebootC
Reboot a VPS (careful!)
Inputs: serviceName (required).
ovh_vps_snapshotB
Get VPS snapshot information
Inputs: serviceName (required).
ovh_vps_startC
Start a stopped VPS
Inputs: serviceName (required).
ovh_vps_stopA
Stop a running VPS (careful!)
Inputs: serviceName (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 27 tools
Each tool has a clear resource prefix (e.g., ovh_vps_, ovh_domain_dns_) and distinct action suffixes (list, create, delete, etc.), making it easy to differentiate them. No two tools overlap in purpose.
All tools follow a consistent ovh_<resource>_<action> pattern in snake_case. The naming convention is uniform across all categories, aiding predictability.
With 27 tools, the server covers multiple OVH services (account, API, domain, invoices, services, SSH, VPS). While slightly high, each tool serves a distinct purpose within its category, so the count is well-scoped for a comprehensive API wrapper.
The VPS category lacks lifecycle operations like create, delete, or update VPS instances. Invoices miss a download option. The API tools are thorough, but gaps in VPS management and missing broader OVH services reduce completeness.
Maintenance
Related MCP Connectors
EU cloud as MCP tools: VPS, databases, caches, storage, containers and more. Takes an API token.
Manage your Servera hosting over MCP: VPS/VDS, DNS, firewall, backups, SSL, billing, tickets.
Manage your Servera hosting over MCP: VPS/VDS, DNS, firewall, backups, SSL, billing, tickets.
Manage CloudPepper servers, Odoo instances, backups, and deployments over MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceCode Mode MCP server for the OVH API. Two tools (search + execute) give LLMs access to all OVH endpoints via sandboxed JavaScript.23MIT
- AlicenseNot gradedqualityCmaintenanceOpen-source MCP server for managing Hetzner Cloud infrastructure with two management layers: * Layer 1 — Hetzner Cloud API (35 tools): Server power control, metrics, snapshots, backups, firewalls, DNS zones and records, rescue mode, server rebuild and rescale. Works even when the server OS is unresponsive. * Layer 2 — SSH (25 tools): Service management (systemd), Nginx config and reload,MIT
- AlicenseNot gradedqualityCmaintenanceMCP server wrapping the full VitoDeploy REST API to manage projects, servers, sites, databases, services, workers, SSL, DNS, and more through any MCP-compatible agent, with 108 tools covering every endpoint.MIT
- AlicenseBqualityDmaintenanceExposes tools to manage and inspect an OpenMediaVault NAS, running on the NAS and communicating over SSH with any MCP-capable coding harness.48MIT