Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Ovh API MCP

by davidlandaisversion 0.3.0i★ –iRuns on your computer
Registry nameio.github.davidlandais/ovh-api-mcp

Install

Overview

Description from the maker (original English)

MCP server for the OVH API. Explore and call any OVH endpoint via sandboxed JS.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other
  • You need to fill in: OVH_APPLICATION_KEY, OVH_APPLICATION_SECRET, OVH_CONSUMER_KEY, OVH_CLIENT_SECRET

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: OVH_APPLICATION_KEY, OVH_APPLICATION_SECRET, OVH_CONSUMER_KEY, OVH_ENDPOINT, OVH_SERVICES, OVH_CLIENT_ID, OVH_CLIENT_SECRET

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "ovh-api": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "OVH_APPLICATION_KEY",
        "-e",
        "OVH_APPLICATION_SECRET",
        "-e",
        "OVH_CONSUMER_KEY",
        "-e",
        "OVH_ENDPOINT",
        "-e",
        "OVH_SERVICES",
        "-e",
        "OVH_CLIENT_ID",
        "-e",
        "OVH_CLIENT_SECRET",
        "ghcr.io/davidlandais/ovh-api-mcp:0.3.0"
      ],
      "env": {
        "OVH_APPLICATION_KEY": "your-value",
        "OVH_APPLICATION_SECRET": "your-value",
        "OVH_CONSUMER_KEY": "your-value",
        "OVH_ENDPOINT": "your-value",
        "OVH_SERVICES": "your-value",
        "OVH_CLIENT_ID": "your-value",
        "OVH_CLIENT_SECRET": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add ovh-api --env OVH_APPLICATION_KEY=your-value --env OVH_APPLICATION_SECRET=your-value --env OVH_CONSUMER_KEY=your-value --env OVH_ENDPOINT=your-value --env OVH_SERVICES=your-value --env OVH_CLIENT_ID=your-value --env OVH_CLIENT_SECRET=your-value -- docker run -i --rm -e OVH_APPLICATION_KEY -e OVH_APPLICATION_SECRET -e OVH_CONSUMER_KEY -e OVH_ENDPOINT -e OVH_SERVICES -e OVH_CLIENT_ID -e OVH_CLIENT_SECRET ghcr.io/davidlandais/ovh-api-mcp:0.3.0

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "ovh-api": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "OVH_APPLICATION_KEY",
        "-e",
        "OVH_APPLICATION_SECRET",
        "-e",
        "OVH_CONSUMER_KEY",
        "-e",
        "OVH_ENDPOINT",
        "-e",
        "OVH_SERVICES",
        "-e",
        "OVH_CLIENT_ID",
        "-e",
        "OVH_CLIENT_SECRET",
        "ghcr.io/davidlandais/ovh-api-mcp:0.3.0"
      ],
      "env": {
        "OVH_APPLICATION_KEY": "your-value",
        "OVH_APPLICATION_SECRET": "your-value",
        "OVH_CONSUMER_KEY": "your-value",
        "OVH_ENDPOINT": "your-value",
        "OVH_SERVICES": "your-value",
        "OVH_CLIENT_ID": "your-value",
        "OVH_CLIENT_SECRET": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "ovh-api": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "OVH_APPLICATION_KEY",
        "-e",
        "OVH_APPLICATION_SECRET",
        "-e",
        "OVH_CONSUMER_KEY",
        "-e",
        "OVH_ENDPOINT",
        "-e",
        "OVH_SERVICES",
        "-e",
        "OVH_CLIENT_ID",
        "-e",
        "OVH_CLIENT_SECRET",
        "ghcr.io/davidlandais/ovh-api-mcp:0.3.0"
      ],
      "env": {
        "OVH_APPLICATION_KEY": "your-value",
        "OVH_APPLICATION_SECRET": "your-value",
        "OVH_CONSUMER_KEY": "your-value",
        "OVH_ENDPOINT": "your-value",
        "OVH_SERVICES": "your-value",
        "OVH_CLIENT_ID": "your-value",
        "OVH_CLIENT_SECRET": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • OVH_APPLICATION_KEY required env
    OVH API application key
  • OVH_APPLICATION_SECRET secret required env
    OVH API application secret
  • OVH_CONSUMER_KEY secret required env
    OVH API consumer key
  • OVH_ENDPOINT env
    OVH API region: eu, ca, or us
  • OVH_SERVICES env
    Comma-separated OVH API services, or * for all
  • OVH_CLIENT_ID env
    OVH OAuth2 client ID (service account, alternative to API keys)
  • OVH_CLIENT_SECRET secret env
    OVH OAuth2 client secret (service account)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account davidlandais, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 18474 servers in this category
  • Published to the registry more recently than 3% of the other 18474 servers in this category
  • Basic checks equal to or better than 100% of the other 18474 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Ovh API MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: OVH_APPLICATION_KEY, OVH_APPLICATION_SECRET, OVH_CONSUMER_KEY, OVH_CLIENT_SECRET

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.3.0) reached the registry 8 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Docker on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, Brontide agent arena

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

by formulahendryEarly↓ 66/wk★ 440Updated 14 months ago

Runs on your computer

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

by desktop-commanderGrowing★ 211Updated 3 days ago

Runs in the cloud✓ desktopcommander.app

Brontide agent arena

THE MECH ARENA BUILT FOR AI AGENTS. HUMANS WELCOME. Pilot mech duels over MCP, free, no sign-in.

by beeswaxpatVery newUpdated today

Runs in the cloud✓ brontide.live

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

ovh-api-mcp

A native Model Context Protocol (MCP) server that gives LLMs full access to the OVH API (v1 and v2). Built in Rust for minimal footprint (~19 MB Docker image, ~1.2 MiB RAM).

Early Release — Designed for local development use. Security hardening has been applied (sandboxed execution, spec validation, secret protection), but the server has not been battle-tested at scale. Do not expose it to the public internet. Feedback and bug reports are welcome.

How it works

The server exposes two MCP tools:

ToolDescription
searchExplore the OVH OpenAPI spec using JavaScript — find endpoints, inspect schemas, read parameters
executeCall any OVH API endpoint using JavaScript — authentication is handled transparently

The LLM writes JavaScript that runs inside a sandboxed QuickJS engine with resource limits (memory, CPU timeout, stack size). Every API call is validated against the loaded OpenAPI spec before execution.

The server supports two transport modes:

  • HTTP (Streamable HTTP) — for web-based clients and Docker deployments
  • stdio — for direct integration with Claude Desktop, Cursor, and MCP inspectors

OVH credentials are optional at startup: the server starts and exposes its tools even without API keys. Tools return a clear error when called without credentials.

Quick start

With stdio (Claude Desktop / Cursor)

Add to your MCP client configuration:

{

"mcpServers": { "ovh-api": { "command": "ovh-api-mcp", "args": ["--transport", "stdio"], "env": { "OVH_APPLICATION_KEY": "your_app_key", "OVH_APPLICATION_SECRET": "your_app_secret", "OVH_CONSUMER_KEY": "your_consumer_key" } } } }

With Docker
docker run -d --name ovh-api \

-e OVH_APPLICATION_KEY=your_app_key \ -e OVH_APPLICATION_SECRET=your_app_secret \ -e OVH_CONSUMER_KEY=your_consumer_key \ -p 3104:3104 \ ghcr.io/davidlandais/ovh-api-mcp:latest

From source
cargo install --git https://github.com/davidlandais/ovh-api-mcp

export OVH_APPLICATION_KEY=your_app_key export OVH_APPLICATION_SECRET=your_app_secret export OVH_CONSUMER_KEY=your_consumer_key

ovh-api-mcp --port 3104

Pre-built binaries

Download from GitHub Releases — available for macOS (x86_64, aarch64) and Linux (x86_64 musl).

Claude Code configuration (HTTP mode)
{

"mcpServers": { "ovh-api": { "type": "http", "url": "http://localhost:3104/mcp", "headers": { "Authorization": "Bearer local" } } } }

The Authorization header is required to bypass Claude Code's OAuth discovery. See claude-code#2831.

OVH credentials

You need three values: an application key, an application secret, and a consumer key.

Go to the token creation page for your region, log in with your OVH account, set the permissions and validity, and you'll get all three keys at once:

RegionURL
Europehttps://auth.eu.ovhcloud.com/api/createToken
Canadahttps://auth.ca.ovhcloud.com/api/createToken
UShttps://auth.us.ovhcloud.com/api/createToken

For full API access, set all four methods (GET, POST, PUT, DELETE) with path /*.

OAuth2 authentication (service accounts)

As an alternative to API keys, you can use OVH service accounts with OAuth2 client credentials:

VariableDescription
OVH_CLIENT_IDService account ID
OVH_CLIENT_SECRETService account secret

Service accounts are created via the OVH API (POST /me/api/oauth2/client with flow: CLIENT_CREDENTIALS). You must then create an IAM policy (POST /v2/iam/policy) to grant API permissions to the service account. See the OVHcloud documentation for details.

The server auto-detects the auth mode from environment variables. Do not set both API keys and OAuth2 credentials at the same time.

CLI options

Options:

--transport Transport mode: http, stdio [env: OVH_TRANSPORT] [default: http] --port Port to listen on [env: PORT] [default: 3104] --host Host to bind to [default: 127.0.0.1] --endpoint OVH API endpoint: eu, ca, us [env: OVH_ENDPOINT] [default: eu] --app-key OVH application key [env: OVH_APPLICATION_KEY] --app-secret OVH application secret [env: OVH_APPLICATION_SECRET] --consumer-key OVH consumer key [env: OVH_CONSUMER_KEY] --client-id OVH OAuth2 client ID [env: OVH_CLIENT_ID] --client-secret OVH OAuth2 client secret [env: OVH_CLIENT_SECRET] --services Services to load, comma-separated or "*" [env: OVH_SERVICES] [default: *] --cache-dir Directory to cache the merged spec [env: OVH_CACHE_DIR] --cache-ttl Cache TTL in seconds, 0 to disable [env: OVH_CACHE_TTL] [default: 86400] --no-cache Disable spec caching entirely --max-code-size Maximum code input size [env: OVH_MAX_CODE_SIZE] [default: 1048576]

Usage examples

Once connected, the LLM can use the tools like this:

Search for DNS endpoints:

// search tool

(spec) => { const results = []; for (const [path, methods] of Object.entries(spec.paths)) { if (path.includes("/domain/zone")) { for (const [method, op] of Object.entries(methods)) { results.push({ method: method.toUpperCase(), path, summary: op.summary }); } } } return results; }

List your domain zones:

// execute tool

async () => await ovh.request({ method: "GET", path: "/v1/domain/zone" })

Get DNS records for a domain:

// execute tool

async () => { const records = await ovh.request({ method: "GET", path: "/v1/domain/zone/example.com/record" }); const details = []; for (const id of records.slice(0, 10)) { details.push(await ovh.request({ method: "GET", path: /v1/domain/zone/example.com/record/${id} })); } return details; }

Security

  • Sandboxed execution — JavaScript runs in QuickJS with memory limit (64 MiB), stack limit (1 MiB), and execution timeout (10s for search, 30s for execute)
  • Spec-validated API calls — every ovh.request() call is matched against the loaded OpenAPI spec; unknown endpoints or wrong HTTP methods are rejected
  • Path injection prevention — API paths containing ?, #, or .. are rejected
  • Secret protection — app_secret and consumer_key are stored using secrecy (zeroized on drop)
  • No HTTP redirects — prevents credential leakage to third-party domains
  • Non-root container — Docker image runs as unprivileged user

Architecture

src/

main.rs CLI, logging, transport selection (HTTP/stdio), graceful shutdown tools.rs MCP tool definitions (search, execute) via rmcp macros sandbox.rs QuickJS sandboxed JS execution with resource limits auth.rs OVH API client with signature, clock sync, request handling spec.rs OpenAPI spec fetching, caching, merging, and path validation types.rs Input types for MCP tool parameters

License

MIT — David Landais

Ask PopNx