This commit is contained in:
2026-06-17 15:05:10 +02:00
parent de959d849d
commit 4884117227
85 changed files with 34611 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
# mcp_mysql_v1.0.py — MCP server pro MySQL
**Verze:** 1.0 | **Datum:** 2026-06-17
MCP server (FastMCP + `mysql-connector-python`) pro dotazování MySQL na Toweru.
Vzor: `mcp_postgres.py`. Server id v `.mcp.json`: **`mysql`** → tooly `mcp__mysql__*`.
## Připojení
- Host: `192.168.1.76:3306`
- User: `root` / heslo `Vlado9674+` (uloženo přímo ve skriptu, stejně jako u postgres)
- Default DB: **žádná** (None) — DB se předává argumentem `db`, nebo tabulky kvalifikuj `db.tabulka`.
- `use_pure=True`, `charset=utf8mb4`, autocommit, lazy connection cache s `ping(reconnect=True)`.
## Dostupné databáze (mimo systémové)
`fio` (transactions), `studie` (iwrs_*, covance_*, CTMS_contacts), `medicus`, `medevio`,
`kanboard`, `OrdinaceDropBoxBackup`, `puzzle`, `torrents`, `MYSQL_DATABASE`.
## Tooly
- `ping()` — verze + latence.
- `list_databases(include_system=False)` — seznam DB.
- `list_tables(db)` — tabulky vč. enginu, odhadu řádků, komentáře.
- `describe_table(table, db)` — sloupce (typ/null/key/default/comment), indexy, přesný COUNT(*).
Pozn.: klíče metadat z `information_schema` jsou VELKÝMI písmeny (`COLUMN_NAME`, …).
- `query(sql, db=None, params_json=None, limit=100)`**read-only** (SELECT/WITH/SHOW/EXPLAIN/DESCRIBE).
Zápisy odmítá. `params_json` = JSON pole pro `%s` placeholdery, např. `'["6192081885"]'`. Limit max 1000 (Python-side cutoff).
- `explain(sql, db=None)` — EXPLAIN FORMAT=JSON (nespouští dotaz).
- `preview_execute(sql, db, params_json)` — zápis v transakci + ROLLBACK, vrací would_affect_rows.
⚠️ DDL (CREATE/ALTER/DROP/TRUNCATE) v MySQL commituje implicitně → rollback ho nevrátí (hlásí `ddl_autocommits`).
- `execute(sql, db, params_json, confirmed=False)` — zápis; vyžaduje `confirmed=True` po preview a schválení uživatelem.
## fio.transactions (26 877 řádků)
Bankovní pohyby z Fio. Klíčové sloupce: `id_operace` (PK), `transaction_date`, `amount` (decimal, výdaj záporně),
`currency`, `vs`/`ks`/`ss`, `protiucet`+`kod_banky`, `nazev_protiuctu`, `typ`, `zprava_pro_prijemce`,
`uziv_identifikace`, `komentar`, `stazeno_kdy`.
Příklad — platba pojištění Pajero (VS 6192081885):
```sql
SELECT id_operace, transaction_date, amount, currency, vs, komentar
FROM fio.transactions WHERE vs = '6192081885';
-- 27100937414 | 2025-06-13 | -9674.00 CZK | ČSOB a.s. | Pojištění Pajero 27.06.2025-26.06.2026 povinné ručení + plné asistenční služby
```
## Aktivace
Po přidání do `.mcp.json` je potřeba restart Claude Code (reload MCP serverů), pak jsou tooly `mcp__mysql__*` dostupné.