domeneshop-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DOMENESHOP_DEBUG | No | Set to true to log every API request to stderr | |
| DOMENESHOP_TOOLS | No | Comma-separated allowlist of tool names to expose | |
| DOMENESHOP_API_TOKEN | Yes | API token from the Domeneshop control panel | |
| DOMENESHOP_READ_ONLY | No | Set to true to expose only read-only tools | |
| DOMENESHOP_API_SECRET | Yes | The matching API secret | |
| DOMENESHOP_TIMEOUT_MS | No | Per-request timeout in milliseconds | 30000 |
| DOMENESHOP_DISABLED_TOOLS | No | Comma-separated tool names to hide |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_domainsA | List all domains on the Domeneshop account, optionally filtered by domain name. Use this first to find the domain_id the other tools need. |
| get_domainA | Get details for a single domain by its Domeneshop domain ID: expiry, renewal, nameservers and active services. |
| list_dns_recordsA | List DNS records for a domain, optionally filtered by host and/or record type. |
| get_dns_recordB | Get a single DNS record by ID. |
| create_dns_recordB | Create a new DNS record for a domain. Returns the stored record, including its new ID. |
| update_dns_recordA | Replace an existing DNS record. This overwrites the whole record, so send every field it should keep: any omitted field is dropped, and leaving out ttl resets it to the default 3600 seconds. To change only some fields, use patch_dns_record instead. Returns the stored record. |
| patch_dns_recordA | Change only some fields of an existing DNS record, e.g. just data or ttl. The current record is read first and every field you leave out keeps its stored value. Prefer this over update_dns_record. Returns the stored record. |
| upsert_dns_recordA | Make sure a host has exactly this record of the given type: updates the existing record for that host and type, or creates one if there is none. When updating, optional fields you leave out (e.g. ttl, priority) keep their stored value. Fails without changing anything if the host already has several records of that type (common for MX and TXT); then use patch_dns_record with a record_id, or create_dns_record to add another. Returns { action: "created" | "updated", record }. |
| delete_dns_recordB | Delete a DNS record. This cannot be undone. |
| list_forwardsA | List all HTTP forwards configured for a domain. |
| get_forwardC | Get the HTTP forward configured for a specific host. |
| create_forwardA | Create a new HTTP forward for a domain. Fails if the host already has a forward or a conflicting A, AAAA, ANAME or CNAME record. |
| update_forwardA | Update an existing HTTP forward for a domain. Returns the stored forward. frame is reset to false unless given. The host itself cannot be changed: to move a forward, delete it and create it again for the new host. |
| delete_forwardB | Delete an HTTP forward. This cannot be undone. |
| update_dyndnsA | Point one or more hostnames at the given (or the caller's apparent) IP address using Domeneshop's dynamic DNS protocol. The record type (A or AAAA) follows from the address; a missing record is created, an existing one overwritten. |
| list_invoicesA | List invoices from the past three years on the Domeneshop account, optionally filtered by status. |
| get_invoiceA | Get details for a single invoice, including a link to the PDF. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools map to distinct resource+action pairs (domains, DNS records, forwards, dyndns, invoices). The one soft spot is the trio update_dns_record / patch_dns_record / upsert_dns_record, which all modify a DNS record; descriptions explicitly differentiate replace-vs-partial-vs-ensure semantics and even steer toward patch, so misselection is unlikely but not impossible.
Every tool follows a clean snake_case verb_noun pattern (list_domains, get_dns_record, create_forward, update_dyndns, etc.) with no mixed conventions or vague verbs. Pluralization is used consistently for collection tools and singular for single-resource tools.
17 tools is slightly above the comfortable 3-15 band, but the surface spans four sub-resources (domains, DNS records, forwards, invoices) plus dyndns, and nearly every tool earns its place. The DNS record CRUD set is large but justified by real API semantics (patch vs update vs upsert).
DNS records and HTTP forwards both have full list/get/create/update/delete lifecycles, and invoices and domains are covered read-side, so core workflows have no dead ends. Domain registration/transfer/delete operations are absent, but these appear outside the stated account-management scope.