MCP

Frontière AI for your AI agents, over MCP

One URL connects any Model Context Protocol client — Claude Code, Cursor, Cline, Roo Code — to the full Frontière AI API: model catalog, sovereign inference, embeddings, account balance, and live web search. Stateless JSON-RPC 2.0 over HTTP: no SDK to install, same prepaid balance as the REST API.

One endpoint, the whole API

POST /api/mcp speaks JSON-RPC 2.0. Every request is self-contained: initialize, list the tools, call one — no long-lived streams, no session state, which is exactly what serverless and edge runtimes need. The catalog tools work without a key; inference, embeddings, balance and web tools authenticate with your sk-front-… key on the Authorization header of each request.

Endpoint

POST /api/mcp
curl https://getfrontiereai.eu/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

No key needed for this call — catalog tools are public.

Eight tools

Three are public catalog lookups, five are authenticated. Inference and embeddings forward through the exact same gateway as /api/v1 — same providers, same fallback cascade, same per-token billing on your prepaid balance.

ToolWhat it doesAPI key
list_modelsList the model catalog with pricing, sovereignty labels and context windowsnone
get_modelFull details for one model by slug — license, compliance, tool calling, notesnone
search_modelsFind models by keyword across name, vendor, modality and providernone
chat_completionChat completion — same gateway and billing as POST /api/v1/chat/completionsrequired
create_embeddingEmbeddings — same gateway and billing as POST /api/v1/embeddingsrequired
check_balanceCurrent prepaid credit balancerequired
web_searchLive web search (Linkup, EU) — up to 8 results with full page textrequired
web_fetchRead one page as clean markdown (Linkup, EU)required

Web access, without leaving the EU

web_search and web_fetch run on Linkup, a search API built in Paris — zero-retention processing and SOC 2 Type II, disclosed as the provider's claims. Your agent asks, Frontière searches, and the model receives the full page text of the top results, the same engine that powers the dashboard chat console.

01

web_search returns up to 8 results with the FULL page text of each — not snippets — so the model can answer from the first call.

02

web_fetch reads any page as clean markdown: follow up on a result URL when the search text is not enough.

03

Search calls are covered by our own Linkup quota — they cost your balance nothing. Only the inference you trigger is billed, at the usual per-token price.

Connect a client

Any MCP client that supports streamable HTTP connects with a URL and a header. Point the URL at /api/mcp and set your API key as the Authorization header — that is the whole setup.

Client config (Claude Desktop, Cursor, Cline…)

{
  "mcpServers": {
    "frontiere": {
      "url": "https://getfrontiereai.eu/api/mcp",
      "headers": {
        "Authorization": "Bearer ***"
      }
    }
  }
}

Or call it raw — one JSON-RPC request per HTTP POST

curl https://getfrontiereai.eu/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

FAQ

Which clients can connect?

Any MCP client that speaks streamable HTTP: Claude Desktop and Claude Code, Cursor, Cline, Roo Code, Continue — or your own integration against the JSON-RPC protocol. No Frontière-specific SDK.

Do all tools require an API key?

No. list_models, get_model and search_models are public, so an agent can discover the catalog first. chat_completion, create_embedding, check_balance, web_search and web_fetch require your sk-front-… key on the Authorization header.

Is billing different from the REST API?

No. The tools forward through the same gateway as /api/v1: same per-token prices, same prepaid balance, same usage logs. An interrupted or failed call is not billed.

Where does web search go?

To Linkup, a search API based in Paris. Zero retention and SOC 2 Type II are the provider's claims, disclosed as such. The search call itself is covered by our Linkup quota — you are billed for the inference you run, not for the search.

Is state kept between calls?

No. The endpoint is stateless: each POST is an independent JSON-RPC request with a synchronous response. That is deliberate — it keeps the endpoint safe on serverless and edge runtimes where connections are short-lived.

Give your agent sovereign models

Create an account, grab a key, paste the URL — your agent has the whole EU-labeled catalog in minutes.

Create an account