stravacz-mcp
Peça refeições com strava.cz
Documentação
Servidor MCP Stravacz
Servidor MCP (Model Context Protocol) para strava.cz - sistema e aplicativo web/móvel para pedidos de refeições em refeitórios tchecos, como os escolares. Os usuários podem, por meio do sistema, consultar cardápios, fazer e cancelar pedidos de refeições, acompanhar o histórico de pedidos, pagamentos e saldos.
⚠️ Aviso
!! Para usar este projeto, é necessário ter algum conhecimento com docker/python e saber como funciona a conexão MCP com o cliente LLM em questão !!
💡 Nota: Este projeto não tem nenhuma ligação com o sistema strava.cz. Trata-se de um servidor MCP não oficial, criado pela comunidade com base nos projetos strava-cz-python e strava-cli.
⚡ Início rápido
🐳 Docker (recomendado)
# 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
🔧 Métodos de transporte disponíveis
O Servidor MCP Stravacz suporta três métodos de transporte, seguindo o modelo do bakalari-mcp:
| Transporte | Porta | Imagem Docker | Descrição |
|---|---|---|---|
| CLI (stdio) | - | ghcr.io/mirecekd/stravacz-mcp:latest-cli | Comunicação MCP direta via stdin/stdout |
| HTTP Streaming | 8809 | ghcr.io/mirecekd/stravacz-mcp:latest-http | Transporte nativo de streaming HTTP |
| HTTP Proxy | 8805 | ghcr.io/mirecekd/stravacz-mcp:latest-proxy | Servidor HTTP usando mcp-proxy |
🛠️ Ferramentas MCP
O servidor fornece as seguintes ferramentas para trabalhar com o strava.cz:
get_menu(datum=None)
Obter o cardápio para uma data específica (AAAA-MM-DD) ou para a data de hoje.
is_ordered(meal_id)
Verificar se uma refeição com determinado ID está pedida.
order_meals(*meal_ids)
Pedir várias refeições pelos seus IDs.
print_menu(include_soup=True, include_empty=False)
Exibição formatada do cardápio com opção de filtro.
get_user_info()
Obter informações sobre o usuário logado e o refeitório.
logout()
Sair do sistema strava.cz.
📋 Configuração do MCP
Claude Desktop (versão CLI)
{
"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"
}
}
}
🏗️ Desenvolvimento e build
Desenvolvimento local
# 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
Empacotamento Python
# Build Python balíčku
python -m build
# Lokální instalace z wheel
pip install dist/stravacz_mcp-1.0.0-py3-none-any.whl
🔍 Detalhes técnicos
Dependências
- strava-cz >= 1.0.0 - Biblioteca principal para a API do strava.cz
- fastmcp >= 0.9.0 - Framework MCP
- aiohttp >= 3.8.0 - Cliente HTTP assíncrono
Wrapper assíncrono
O servidor usa um wrapper assíncrono para a biblioteca originalmente síncrona strava-cz usando asyncio.to_thread(), o que permite operações não bloqueantes.
Imagens Docker multi-arquitetura
Todas as imagens Docker suportam:
- linux/amd64 (Intel/AMD x64)
- linux/arm64 (Apple Silicon, ARM64)
⚠️ Aviso importante
Este projeto utiliza uma API não oficial de web scraping para o strava.cz. O servidor pode parar de funcionar caso haja mudanças no site do strava.cz. Use com responsabilidade e não automatize um volume massivo de requisições.
📄 Licença
Licença MIT - consulte o arquivo LICENSE.
🤝 Contribuições
Contribuições são bem-vindas! Por favor, crie uma issue ou pull request.
🔗 Projetos relacionados
- strava-cz-python - Biblioteca Python original para o strava.cz
- bakalari-mcp - Outro servidor MCP meu - para a API Bakaláři
- strava-cli - Ferramenta CLI para o strava.cz
Criado com ❤️ para a comunidade tcheca de IA/MCP
Suporte
Se esta ferramenta for útil para você, você pode apoiar o desenvolvimento:

