Upgates MCP Server
by mcp-open
README.md
# upgates-com-mcp
MCP konektor pro **Upgates** e-shop API v2. Čtecí přístup k objednávkám,
fakturám, produktům, zákazníkům a konfiguraci e-shopu s pseudonymizací
osobních údajů.
Součást platformy [OpenMCP.cz](https://openmcp.cz).
> **Poznámka k historii:** konektor původně vznikl v TypeScriptu. Od
> `a8f71aa` (7/2026) je implementován v Pythonu nad `openmcp-sdk`; TS strom
> byl odstraněn a je dohledatelný v git historii.
## Rychlý start
```bash
python -m venv .venv && . .venv/bin/activate
pip install -e .
export OPENMCP_MODE=local-stdio
export UPGATES_API_URL="https://vas-eshop.admin.s17.upgates.com/api/v2"
export UPGATES_API_LOGIN="api-login"
export UPGATES_API_KEY="api-klic"
export OPENMCP_PII_SALT="$(openssl rand -hex 32)"
python -m connector
```
`pip` si `openmcp-sdk` stáhne z GitHubu podle commitu připnutého
v `pyproject.toml` — na PyPI SDK není, protože tam jméno patří
nesouvisejícímu projektu. Bez přístupu k GitHubu (nebo když chcete přesně
ten snapshot, se kterým se staví produkční image) použijte vendorovaný archiv
z repozitáře:
```bash
python release/materialize_sdk.py --root . --output /tmp/openmcp-sdk
pip install /tmp/openmcp-sdk -e .
```
API přístup se zakládá v **Upgates Admin → Doplňky → API**.
`OPENMCP_PII_SALT` je povinný — bez něj konektor záměrně nenastartuje. Tichý
fallback na náhodný salt by zrušil stabilitu pseudonymizačních tokenů
a projevilo by se to až po restartu.
## Nástroje (23)
Všechny jsou **pouze ke čtení**; konektor nezapisuje ani nemaže.
| Oblast | Nástroje |
|---|---|
| Objednávky | `list_orders`, `get_order_history`, `list_order_statuses` |
| Faktury | `list_invoices` |
| Produkty | `list_products`, `list_products_simple`, `list_categories`, `list_labels`, `list_availabilities`, `list_manufacturers`, `list_parameters`, `list_pricelists` |
| Zákazníci | `list_customers`, `list_carts` |
| Doprava a platby | `list_shipments`, `list_payments`, `list_vouchers` |
| E-shop | `get_shop_config`, `get_shop_owner`, `get_languages` |
| Webhooky | `list_webhooks`, `list_webhook_events` |
| Diagnostika | `get_api_status` |
Seznam musí odpovídat `display.tools` v `connector.yaml` — z něj platforma
klasifikuje oprávnění nástrojů.
## Osobní údaje
Údaje zákazníků (e-maily, telefony, jména, adresy, IČO/DIČ, bankovní spojení)
se před odesláním do modelu nahradí stabilními tokeny typu
`<EMAIL_3f9c1a2b4d5e>`. Token je jednosměrný HMAC — nedá se rozšifrovat zpět
a nikde nevzniká re-identifikační mapa.
Katalogová data (produkty, kategorie, ceny) se nepseudonymizují. Ochranu
osobních údajů nelze operátorskou konfigurací vypnout.
## Konfigurace
| Klíč | Typ | Popis |
|---|---|---|
| `api_url` | credential | základní URL API v2 e-shopu |
| `api_login` | credential | přihlašovací jméno API klíče |
| `api_key` | credential (secret) | API klíč |
V režimu `local-stdio` se čtou z env jako `UPGATES_<KEY>` velkými písmeny.
## Testy
```bash
python -m pytest tests -q
openmcp-sdk validate connector.yaml
```
## Dokumentace
- [`docs/anonymization.md`](docs/anonymization.md) — pseudonymizace
- [`docs/readonly.md`](docs/readonly.md) — read-only režim
- [`docs/defaults.md`](docs/defaults.md) — výchozí hodnoty a limity
- [`docs/tools.md`](docs/tools.md) — nástroje
- [`CONTRIBUTING.md`](CONTRIBUTING.md) — postup a nároky na změny
- [`SECURITY.md`](SECURITY.md) — hlášení zranitelností
API specifikaci Upgates repozitář nešíří (viz `.gitignore`); aktuální verzi
najdete v [dokumentaci Upgates](https://www.upgates.cz/a/upgates-api).
## Licence
MIT — viz [LICENSE](LICENSE).
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues