wger 健身管理助手

Servidor MCP que conecta à plataforma de código aberto de gerenciamento de fitness e dieta wger. Permite consultar e gerenciar diretamente planos de treino, registros de exercícios e dados alimentares pessoais em clientes de IA como Cursor e Claude.

Documentação


title: Wger MCP Server emoji: 💪 colorFrom: red colorTo: yellow sdk: docker app_port: 7860 pinned: false license: mit tags:

  • mcp
  • fitness
  • wger
  • mcp-server

wger MCP Server 💪

Transforma o wger (plataforma open-source de fitness/nutrição) em um servidor MCP (Model Context Protocol), expondo serviços via SSE. Qualquer agente de IA compatível com MCP (Claude Desktop, Cursor, Cline, agentes próprios, etc.) pode se conectar para consultar a biblioteca de exercícios, músculos/equipamentos, nutrição de alimentos, além de gerenciar registros de peso e planos nutricionais.

✨ Ferramentas fornecidas (15 no total)

Somente leitura pública (sem Token)

FerramentaDescrição
search_exercisesBusca exercícios por nome (suporte a múltiplos idiomas, correspondência de aliases)
get_exercise_detailsObtém detalhes do exercício: descrição, músculos-alvo, equipamentos, imagens, aliases
list_exercise_categoriesLista categorias de exercícios (Abs/Arms/Back/Legs…)
list_musclesLista grupos musculares (com nomes em chinês/inglês, visão frontal/traseira, diagramas)
list_equipmentLista tipos de equipamentos (Barbell/Dumbbell/Kettlebell…)
get_exercise_imagesObtém diagramas de exercícios
search_ingredientsBusca alimentos, retorna informações nutricionais por 100g (mais de 3 milhões de itens, do Open Food Facts)
get_ingredient_detailsObtém informações nutricionais detalhadas de alimentos
list_weight_unitsLista unidades de peso disponíveis (com conversão em gramas)

Requer login (necessita WGER_API_TOKEN)

FerramentaDescrição
list_weight_entriesLista registros de peso
add_weight_entryRegistra um dado de peso
get_user_profileObtém perfil do usuário
list_nutrition_plansLista planos nutricionais
get_nutrition_plan_valuesObtém resumo do plano nutricional
list_workout_sessionsLista registros de treino

🚀 Deploy no Hugging Face Spaces

Este repositório já está configurado com Docker SDK; basta enviar para o HF Space:

  1. Crie um novo Space em huggingface.co/new-space, selecionando Docker como SDK.
  2. Envie os arquivos deste repositório para o repositório Git do Space.
  3. O Space será construído e iniciado automaticamente, escutando na porta 7860.
  4. (Opcional) Para ferramentas que exigem login: adicione WGER_API_TOKEN em Settings → Variables and secrets do Space.

Após o deploy, o endpoint MCP será:

https://<你的用户名>-<space名>.hf.space/sse

🔌 Configuração de conexão do agente

Claude Desktop / Cursor / Cline (SSE)

{
  "mcpServers": {
    "wger": {
      "url": "https://<你的用户名>-<space名>.hf.space/sse"
    }
  }
}

Agente próprio (cliente fastmcp)

from fastmcp import Client

async with Client("https://<user>-<space>.hf.space/sse") as client:
    tools = await client.list_tools()
    result = await client.call_tool("search_exercises",
                                    {"term": "bench", "language": "English", "limit": 5})

🏠 Execução local

pip install -r requirements.txt
python run_mcp_server.py --port 8100
# 默认监听 0.0.0.0:8100,SSE 端点 http://localhost:8100/sse

Configuração (variáveis de ambiente, todas opcionais):

VariávelPadrãoDescrição
WGER_API_URLhttps://wger.deEndereço da instância wger; alterável para self-hosting
WGER_API_VERSIONv2Versão da API
WGER_API_TOKEN(vazio)Necessário para ferramentas que exigem login
WGER_TIMEOUT30Timeout de requisição em segundos
WGER_CACHE_TTL3600Cache da lista da biblioteca de exercícios em segundos

⚠️ Sobre o anti-scraping do wger.de (importante)

A instância oficial do wger.de implementa o proxy anti-scraping Anubis no frontend:

  • /api/v1/* é bloqueado por desafios; acessos programáticos recebem a página de desafio PoW em vez de dados
  • /api/v2/* é explicitamente liberado (para uso em aplicativos móveis e clientes de API)

Portanto, este servidor usa a API v2 por padrão. Se você fizer self-hosting do wger sem Anubis, pode alterar WGER_API_VERSION para v1.

📦 Estrutura do projeto

wger-mcp-server/
├── run_mcp_server.py          # 启动器(SSE 模式)
├── wger_mcp_server/
│   ├── __init__.py            # FastMCP 实例 + 工具注册
│   ├── config.py              # 配置(URL/Token/语言映射)
│   ├── client.py              # 异步 HTTP 客户端 + 缓存
│   ├── tools_exercises.py     # 动作相关工具
│   ├── tools_nutrition.py     # 营养/食材工具
│   └── tools_tracking.py      # 登录类工具(需 Token)
├── requirements.txt
├── Dockerfile                 # HF Spaces 部署
└── .env.example

🔑 Obtendo o Token da API wger

  1. Registre-se e faça login em wger.de
  2. Acesse https://wger.de/en/user/api-key
  3. Gere a chave e preencha WGER_API_TOKEN

📄 Licença

MIT. Os dados de exercícios do wger seguem CC-BY-SA 4.0 (da comunidade wger).