z230
This commit is contained in:
@@ -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é.
|
||||
Reference in New Issue
Block a user