MCP server for the Subreg.cz domain registrar
console applicationapt install mcp-server-subregAn MCP (Model Context Protocol) server exposing the Subreg.cz domain registrar SOAP API as tools for an LLM agent, built on fastmcp and python3-subreg-client.
Tools cover domain availability/info/listing, pricelists, account credit, DNS zone lookups, contacts, and order status, read-only by default, plus domain registration/renewal/deletion, DNS record writes, contact writes, and credit adjustments, gated behind SUBREG_READONLY=false. Login credentials are read once from the environment at startup and are never tool parameters.
MCP server exposing the Subreg.cz domain registrar SOAP
API โ via the subreg-client
library โ as tools for LLM agents built with FastMCP.
Credentials are read from the environment only, never accepted as tool parameters. Copy the template and fill in real values:
cp .env.example .env
# edit .env โ never commit .env
| Variable | Required | Description |
|---|---|---|
SUBREG_LOCATION |
yes | SOAP endpoint, e.g. https://soap.subreg.cz/cmd.php |
SUBREG_URI |
yes | SOAP namespace URI, e.g. https://soap.subreg.cz/soap |
SUBREG_LOGIN |
yes | Subreg account login |
SUBREG_PASSWORD |
yes | Subreg account password |
SUBREG_READONLY |
no | true (default) blocks mutating tools; set to false to allow domain/DNS/contact/billing writes |
Use https://ote-soap.subreg.cz/... endpoints for Subreg's OTE sandbox
environment while testing writes. Prefer OTE (or a disposable account) for
any SUBREG_READONLY=false session โ never mutate production domains from
an agent.
Read-only: check_domain, info_domain, domains_list, pricelist,
get_pricelist, get_credit, users_list, info_user, get_dns_zone,
info_contact, contacts_list, info_order, get_tld_info.
Mutating (require SUBREG_READONLY=false): register_domain,
renew_domain, delete_domain, add_dns_record, delete_dns_record,
create_contact, update_contact, credit_correction.
info_user requires a numeric sub-user id (discover via users_list).
Subreg's Info_User rejects an empty payload.
pip install -e .
export SUBREG_LOCATION=https://soap.subreg.cz/cmd.php
export SUBREG_URI=https://soap.subreg.cz/soap
export SUBREG_LOGIN=...
export SUBREG_PASSWORD=...
export SUBREG_READONLY=true
mcp-server-subreg
pytest
Exercises every read tool against a real Subreg SOAP account and verifies
that mutating tools refuse under SUBREG_READONLY=true:
export SUBREG_LOCATION=https://soap.subreg.cz/cmd.php
export SUBREG_URI=https://soap.subreg.cz/soap
export SUBREG_LOGIN=...
export SUBREG_PASSWORD=...
export SUBREG_READONLY=true
python tests/live_capability_scenario.py --json-out /tmp/subreg-live.json
--allow-writes is refused against production soap.subreg.cz (use OTE).
This package may not be indexed in our database yet. Please try again later or check the package repository directly.