Model Context Protocol server for the EuroDNS User API โ domains, DNS zones, subscriptions and SSL.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Manage your domains, DNS zones and subscriptions by asking for it.
A Model Context Protocol server for the EuroDNS User API โ domains, DNS zones, contacts, subscriptions, SSL, invoices and orders.
Documentation ยท Tools ยท Guardrails ยท Deploying
This is an independent open-source project. It is not affiliated with, endorsed by, or supported by EuroDNS. "EuroDNS" is used only to identify the API this server talks to.
Written by a professional engineer with AI assistance. Every line was reviewed before it was committed, and the responsibility for what it does is human.
stdio for a local client, streamable HTTP for a shared deployment.Two things are worth reading off that diagram. Authorisation has two independent gates โ what the deployment permits at all, then what the caller's scopes permit within it. And the audit log is fed by every path, including refusals, because the upstream API authenticates every caller with one shared key and cannot attribute anything itself.
403 from the API is almost always a missing allowlist entry, not bad
credentials.For a client that spawns the server itself, such as Claude Desktop:
To try it in a terminal first:
Without credentials it still starts, lists every tool, prompt and resource, and refuses each
call with a message naming the two variables โ so a marketplace, or
npx @modelcontextprotocol/inspector, can show the surface before you have a key.
The package ships two commands: eurodns-mcp for stdio, which is the one above, and
eurodns-mcp-http for the HTTP transport โ reachable as
npx -p @jigsawfr/eurodns-mcp eurodns-mcp-http.
For a shared deployment over HTTP, use the container instead โ see Deployment.
Try not to put the API key in the client config file: Secrets shows two ways around it.
| Ask | Tool it reaches for |
|---|---|
| "What DNS records does example.com have?" | eurodns_dns_get_zone |
"Add a TXT record _acme-challenge on example.com" | eurodns_dns_upsert_record |
| "What would change if I pointed www at 203.0.113.10?" | eurodns_dns_diff_zone |
| "Is example.lu available?" | eurodns_domain_check_availability |
| "Which of my domains have DNSSEC enabled?" | eurodns_domain_search |
| "When does this SSL certificate expire?" | eurodns_ssl_get_subscription |
| "What is my prepaid balance?" | eurodns_account_get_prepaid_balance |
| "What did I change last week?" | eurodns_audit_query |
| "What was refused, and why?" | eurodns_audit_query |
| Page | What it covers |
|---|---|
| Tools | All 63 tools, the pairs they fold, the prompts and the two resources |
| Guardrails | Risk classes, what a deployment can forbid, confirmation before a call |
| Configuration | Every environment variable, with its default |
| HTTP transport | Serving several clients, static tokens, OAuth 2.1 and scopes |
| Secrets | Keeping the API key out of a client config, and 1Password Connect |
| Audit log | What is recorded, the hash chain, asking the server what happened |
| Entra ID | Step-by-step OAuth with Microsoft Entra ID, and its pitfalls |
| Deploying | Containers, Fly.io, Render, Railway, and shipping the log to a SIEM |
| Protocol | Which MCP revisions are spoken, and how both are served at one endpoint |
| Development | Building, testing, the generated tool surface, and how releases work |
Published images live at ghcr.io/jigsawfr/eurodns-mcp, built for linux/amd64 and
linux/arm64 with a build provenance attestation.
Two things decide where this runs, and neither is the usual latency-or-price argument:
On both counts Fly.io comes out ahead, at a couple of dollars a month for a dedicated IPv4
against roughly $100 elsewhere. deploy/ has the per-platform detail,
ready-made fly.toml and render.yaml, and the comparison in full.
One setting catches everyone once: inside a container the server listens on 0.0.0.0, and
it refuses to start on a non-loopback address without authentication. Set
EURODNS_MCP_AUTH to token or oauth.
The choice is not about how secure you want to be โ both are โ but about whether callers need separate identities, and it has a cost you should see coming.
token is one shared secret in a header. It works in a minute, needs nothing but the
server, and is the right answer for a deployment one person uses. What you give up is
attribution: the audit log records a label, so it can tell you a destructive call happened but
not who made it.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/eurodns-mcp)<a href="https://allmcps.com/mcp/eurodns-mcp"><img src="https://allmcps.com/api/badge/eurodns-mcp?style=directory" alt="Eurodns MCP on AllMCPs" /></a>