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.

"Buy Me A Coffee" "PayPal.me"

⚠️ 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.

Docker Build PyPI Publish

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

TransportePortaImagem DockerDescrição
CLI (stdio)-ghcr.io/mirecekd/stravacz-mcp:latest-cliComunicação MCP direta via stdin/stdout
HTTP Streaming8809ghcr.io/mirecekd/stravacz-mcp:latest-httpTransporte nativo de streaming HTTP
HTTP Proxy8805ghcr.io/mirecekd/stravacz-mcp:latest-proxyServidor 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


Criado com ❤️ para a comunidade tcheca de IA/MCP

Suporte

Se esta ferramenta for útil para você, você pode apoiar o desenvolvimento:

"Buy Me A Coffee" "PayPal.me"