stravacz-mcp

Order meals with strava.cz

Stravacz MCP Server

MCP (Model Context Protocol) server pro strava.cz - systém a webová/mobilní aplikace pro objednávání stravy v českých jídelnách, například školních. Strávníci mohou prostřednictvím systému kontrolovat jídelníčky, přihlašovat a odhlašovat jídlo, sledovat historii objednávek, platby a přeplatky.

"Buy Me A Coffee"

⚠️ Upozornění

!! 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 !!

💡 Poznámka: Tento projekt není nijak spojen se systémem strava.cz. Jedná se o neoficiální MCP server vytvořený komunitou na základě projektů strava-cz-python a strava-cli.

Docker Build PyPI Publish

⚡ Rychlý start

🐳 Docker (doporučeno)

# CLI (stdio) verze
docker run --rm -i ghcr.io/mirecekd/stravacz-mcp:latest-cli \
  --user USERNAME --password PASSWORD --canteen_number CANTEEN_NUMBER

# HTTP streaming verze (port 8809)
docker run -p 8809:8809 ghcr.io/mirecekd/stravacz-mcp:latest-http \
  --user USERNAME --password PASSWORD --canteen_number CANTEEN_NUMBER

📦 uvx (PyPI)

# Instalace z PyPI a spuštění
uvx --from stravacz-mcp stravacz-mcp-server \
  --user USERNAME --password PASSWORD --canteen_number CANTEEN_NUMBER

🔧 Dostupné transport metody

Stravacz MCP Server podporuje tři transport metody podle vzoru bakalari-mcp:

TransportPortDocker ImagePopis
CLI (stdio)-ghcr.io/mirecekd/stravacz-mcp:latest-cliPřímá MCP komunikace přes stdin/stdout
HTTP Streaming8809ghcr.io/mirecekd/stravacz-mcp:latest-httpNativní HTTP streaming transport
HTTP Proxy8805ghcr.io/mirecekd/stravacz-mcp:latest-proxyHTTP server pomocí mcp-proxy

🛠️ MCP Tools

Server poskytuje následující nástroje pro práci se strava.cz:

get_menu(datum=None)

Získání jídelníčku pro zadané datum (YYYY-MM-DD) nebo dnešní datum.

is_ordered(meal_id)

Kontrola, jestli je jídlo s daným ID objednané.

order_meals(*meal_ids)

Objednání více jídel podle jejich ID.

print_menu(include_soup=True, include_empty=False)

Formátované vypsání menu s možností filtrace.

get_user_info()

Získání informací o přihlášeném uživateli a jídelně.

logout()

Odhlášení ze strava.cz systému.

📋 MCP konfigurace

Claude Desktop (CLI verze)

{
  "mcpServers": {
    "stravacz-mcp": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i", "ghcr.io/mirecekd/stravacz-mcp:latest-cli",
        "--user", "YOUR_USER",
        "--password", "YOUR_PASSWORD", 
        "--canteen_number", "YOUR_CANTEEN_NUMBER"
      ],
      "transportType": "stdio"
    }
  }
}

Claude Desktop (HTTP streaming)

{
  "mcpServers": {
    "stravacz-mcp": {
      "url": "http://localhost:8809",
      "transportType": "http"
    }
  }
}

🏗️ Vývoj a build

Lokální vývoj

# Klonování repositáře
git clone https://github.com/mirecekd/stravacz-mcp.git
cd stravacz-mcp

# Instalace závislostí
pip install -e .

# Spuštění ze zdrojových kódů
python src/stravacz_mcp_server/server.py --user USER --password PASS --canteen_number NUM

Docker build

# Build všech verzí
./build-all.sh

# Nebo jednotlivě
./build-cli.sh     # CLI verze
./build-http.sh    # HTTP streaming verze  
./build-proxy.sh   # HTTP proxy verze

Python packaging

# Build Python balíčku
python -m build

# Lokální instalace z wheel
pip install dist/stravacz_mcp-1.0.0-py3-none-any.whl

🔍 Technické detaily

Závislosti

  • strava-cz >= 1.0.0 - Hlavní knihovna pro strava.cz API
  • fastmcp >= 0.9.0 - MCP framework
  • aiohttp >= 3.8.0 - Async HTTP klient

Async wrapper

Server používá async wrapper pro původně synchronní strava-cz knihovnu pomocí asyncio.to_thread(), což umožňuje neblokující operace.

Multi-arch Docker images

Všechny Docker images podporují:

  • linux/amd64 (Intel/AMD x64)
  • linux/arm64 (Apple Silicon, ARM64)

⚠️ Důležité upozornění

Tento projekt používa neoficiální web scraping API pro strava.cz. Server může přestat fungovat při změnách na webu strava.cz. Používejte zodpovědně a neautomatizujte masivní množství požadavků.

📄 Licence

MIT License - viz LICENSE soubor.

🤝 Přispívání

Contributions jsou vítané! Prosím vytvořte issue nebo pull request.

🔗 Související projekty


Vytvořeno s ❤️ pro českou AI/MCP komunitu

Related Servers