Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OVH_ENDPOINTNoOVH API endpoint: eu, ca, useu
OVH_SERVICESNoServices to load, comma-separated or **
OVH_TRANSPORTNoTransport mode: http or stdiostdio
OVH_CONSUMER_KEYNoOVH consumer key
OVH_APPLICATION_KEYNoOVH application key
OVH_APPLICATION_SECRETNoOVH application secret

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
execute

Execute JavaScript against the OVH API. Use 'search' first to find endpoints. Your code must be an async arrow function: async () => { ... } Available:

declare const ovh: {
request(options: {
method: "GET" | "POST" | "PUT" | "DELETE";
path: string;
query?: Record<string, string | number | boolean>;
body?: unknown;
}): Promise<any>;
};

Authentication is automatic. Errors (HTTP >= 400) throw exceptions. Examples:

// List email domains
async () => await ovh.request({ method: "GET", path: "/email/domain" })
// List accounts then get details
async () => {
const accounts = await ovh.request({ method: "GET", path: "/email/domain/example.com/account" });
const details = [];
for (const name of accounts.slice(0, 5)) {
const d = await ovh.request({ method: "GET", path: `/email/domain/example.com/account/${name}` });
details.push(d);
}
return details;
}
search

Search the OVH API OpenAPI 3.1 spec. All configured services are included. The spec is passed as argument to your function. Your code must be a function that receives spec and returns a value: (spec) => { ... } Types available:

interface ParameterObject {
name: string; in: "path" | "query"; required: boolean;
description: string; schema: SchemaObject;
}
interface OperationObject {
summary: string; parameters: ParameterObject[];
requestBody?: { content: { "application/json": { schema: SchemaObject } } };
responses: { "200": { content: { "application/json": { schema: SchemaObject } } } };
}
declare function yourCode(spec: {
paths: Record<string, Record<string, OperationObject>>;
components: { schemas: Record<string, SchemaObject> };
}): any;

Examples:

// Find account-related endpoints
(spec) => {
const results = [];
for (const [path, methods] of Object.entries(spec.paths)) {
if (path.includes("/account")) {
for (const [method, op] of Object.entries(methods)) {
results.push({ method: method.toUpperCase(), path, summary: op.summary });
}
}
}
return results;
}
// Inspect a model schema
(spec) => spec.components.schemas["email.domain.Account"]
// Get request body for creating an account
(spec) => {
const op = spec.paths["/email/domain/{domain}/account"]?.post;
return { summary: op?.summary, requestBody: op?.requestBody, parameters: op?.parameters };
}

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidlandais/ovh-api-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server