by mirecekd
MCP (Model Context Protocol) server pro Bakaláři v3 API. Umožňuje přístup k Bakaláři školnímu systému přes standardizované MCP rozhraní.
!! K používání tohoto projektu je potřeba trošku umět s dockerem/pythonem a vědět, jak funguje připojení MCP k danému LLM klientu !!
Server podporuje tři transport metody:
Pro spuštění s nativním HTTP streaming transportem na portu 8806:
# Build HTTP streaming image ./build-http.sh # nebo manuálně docker build -f Dockerfile.http -t mirecekd/bakalari-mcp:http . # Spuštění docker run -p 8806:8806 mirecekd/bakalari-mcp:http \ --user YOUR_USERNAME \ --password YOUR_PASSWORD \ --url https://your-school.bakalari.cz
Server bude dostupný jako HTTP streaming MCP na http://localhost:8806
.
Pro spuštění jako HTTP server na portu 8805:
# Build MCP proxy image ./build-proxy.sh # nebo manuálně docker build -f Dockerfile.proxy -t mirecekd/bakalari-mcp:proxy . # Spuštění s environment variables docker run -e BAKALARI_USER=your_user -e BAKALARI_PASSWORD=your_pass -e BAKALARI_URL=your_url -p 8805:8805 mirecekd/bakalari-mcp:proxy
Server bude dostupný jako SSE MCP na http://localhost:8805
.
# Build CLI Docker image ./build-cli.sh # nebo manuálně docker build -f Dockerfile.cli -t mirecekd/bakalari-mcp:cli . # Spuštění přes Docker docker run --rm -i mirecekd/bakalari-mcp:cli \ --user USERNAME \ --password PASSWORD \ --url https://your-school.bakalari.cz
# Zkopíruj a upravuješ konfiguraci cp .env.example .env # Edituj .env s tvými údaji # Spuštění docker-compose up bakalari-mcp-server # Nebo pro development (s live reloading) docker-compose --profile dev up bakalari-mcp-dev
# Pro MCP konfiguraci - nahraď uvx příkaz tímto: docker run --rm -i ghcr.io/mirecekd/bakalari-mcp:latest-cli \ --user YOUR_USER \ --password YOUR_PASSWORD \ --url https://skola.bakalari.cz
Pokud máš již vybuilděný balíček:
# Z místního wheel souboru uvx --from ./dist/bakalari_mcp_server-1.0.0-py3-none-any.whl bakalari-mcp-server --user USERNAME --password PASSWORD --url https://your-school.bakalari.cz # Nebo z aktuálního adresáře během vývoje uvx --from . bakalari-mcp-server --user USERNAME --password PASSWORD --url https://your-school.bakalari.cz
Pro vytvoření distribučního balíčku:
# Instalace build nástrojů pip install build # Vytvoření balíčku python3 -m build # Výsledné soubory najdeš v dist/
# Instalace závislostí pip install fastmcp aiohttp # Spuštění ze zdrojového kódu python3 src/bakalari_mcp_server/server.py --user USERNAME --password PASSWORD --url https://your-school.bakalari.cz
--user
(povinný): Uživatelské jméno pro Bakaláři--password
(povinný): Heslo pro Bakaláři--url
(povíně volitelný): URL Bakaláři serveru (výchozí: https://skola.bakalari.cz)Získá rozvrh pro zadané datum s dekódovanými informacemi.
Parametry:
datum
(volitelný): Datum ve formátu YYYY-MM-DD. Pokud není zadáno, použije se dnešní datum.Příklad odpovědi:
*Configuration content*
Získá stálý rozvrh (základní rozvrh bez změn).
Příklad odpovědi:
*Configuration content*
Pro použití s Docker místo uvx, aktualizuj MCP konfiguraci:
*Configuration content*
Pro použití jako HTTP server přes MCP proxy:
*Configuration content*
Pro použití s nativním HTTP streaming transportem:
*Configuration content*
Pre-built Docker images jsou dostupné na GitHub Container Registry:
ghcr.io/mirecekd/bakalari-mcp:latest-cli
ghcr.io/mirecekd/bakalari-mcp:latest-proxy
ghcr.io/mirecekd/bakalari-mcp:latest-http
# CLI version docker run --rm -i ghcr.io/mirecekd/bakalari-mcp:latest-cli \ --user USERNAME --password PASSWORD --url https://school.bakalari.cz # Proxy version (port 8805) docker run -p 8805:8805 \ -e BAKALARI_USER=USERNAME \ -e BAKALARI_PASSWORD=PASSWORD \ -e BAKALARI_URL=https://school.bakalari.cz \ ghcr.io/mirecekd/bakalari-mcp:latest-proxy # HTTP Streaming version (port 8806) docker run -p 8806:8806 ghcr.io/mirecekd/bakalari-mcp:latest-http \ --user USERNAME --password PASSWORD --url https://school.bakalari.cz
Všechny images podporují:
Vybuduj Docker image:
cd bakalari-mcp-server # Pro stdio mode: ./build-cli.sh # Pro HTTP mode: ./build-proxy.sh # Nebo oba najednou: ./build-all.sh
Spusť kontejner (pro HTTP mode):
docker run -d -e BAKALARI_USER=your_user -e BAKALARI_PASSWORD=your_pass -e BAKALARI_URL=your_url -p 8805:8805 mirecekd/bakalari-mcp:proxy
Aktualizuj MCP settings aplikace v claude_desktop_config.json
, anythingllm_mcp_servers.json
, cline_mcp_settings.json
Restartuj aplikaci pro načtení nové konfigurace
Server automaticky spravuje autentizaci:
Všechny nástroje vrací chybové zprávy v případě problémů:
*Configuration content*
Možné typy chyb:
# Získání dnešního rozvrhu result = await mcp_client.call_tool("rozvrh") # Získání rozvrhu pro konkrétní datum result = await mcp_client.call_tool("rozvrh", {"datum": "2024-03-15"}) # Získání stálého rozvrhu result = await mcp_client.call_tool("staly_rozvrh")
Server inteligentně dekóduje rozvrh pomocí:
Server rozpoznává a správně zpracovává:
Pro lokální vývoj:
# Klonování a setup git clone <repository-url> cd bakalari-mcp-server # Instalace dev závislostí pip install -e . # Spuštění pro testování python3 src/bakalari_mcp_server/server.py --user TEST --password TEST --url https://test.bakalari.cz
No version information available