mcp-server-subreg
# mcp-server-subreg

[](https://m8ven.ai/verified/verify?id=2004833ab8634413)
MCP server exposing the [Subreg.cz](https://subreg.cz) domain registrar SOAP
API — via the [`subreg-client`](https://github.com/Spoje-NET/python3-subreg-client)
library — as tools for LLM agents built with [FastMCP](https://gofastmcp.com).
## Configuration
Credentials are read from the environment only, never accepted as tool
parameters:
| 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.
## Tools
Read-only: `check_domain`, `info_domain`, `domains_list`, `pricelist`,
`get_pricelist`, `get_credit`, `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`.
## Usage
```sh
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=...
mcp-server-subreg
```
## Development
```sh
pytest
```
TDQS
Scored across 20 tools
Most tools target distinct resources and actions clearly (domains, contacts, DNS, orders, credit). The only notable ambiguity is between pricelist and get_pricelist, which both fetch pricing data but are described differently enough to be mostly distinguishable.
Naming conventions are mixed: retrieval uses both get_ and info_ prefixes, list operations use noun-first names (contacts_list, domains_list), and some tools are bare nouns (pricelist). This inconsistency makes it harder to predict tool names.
With 20 tools, the server is on the heavier side, but the scope covers domain lifecycle, contacts, DNS, billing, and orders, which justifies the count. It's borderline but not excessive.
Core domain operations are present (check, register, renew, delete, list, info), plus contacts and DNS record management. However, there are notable gaps such as no delete_contact, no update_dns_record, no order listing, and no domain transfer support.