Files
janssen/mcp_mysql_v1.0.md
2026-06-17 15:05:10 +02:00

2.6 KiB

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):

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é.