Skip to main content
Glama
VitexSoftware

mcp-server-subreg

README.md
# mcp-server-subreg

![mcp-server-subreg](mcp-server-subreg.svg)

[![M8ven Verified](https://m8ven.ai/api/agent-verify/badge?score=73)](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

B3.3/5.0

Scored across 20 tools

Disambiguation4/5

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 Consistency2/5

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.

Tool Count3/5

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.

Completeness3/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues