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)
| Ferramenta | Descrição |
|---|---|
search_exercises | Busca exercícios por nome (suporte a múltiplos idiomas, correspondência de aliases) |
get_exercise_details | Obtém detalhes do exercício: descrição, músculos-alvo, equipamentos, imagens, aliases |
list_exercise_categories | Lista categorias de exercícios (Abs/Arms/Back/Legs…) |
list_muscles | Lista grupos musculares (com nomes em chinês/inglês, visão frontal/traseira, diagramas) |
list_equipment | Lista tipos de equipamentos (Barbell/Dumbbell/Kettlebell…) |
get_exercise_images | Obtém diagramas de exercícios |
search_ingredients | Busca alimentos, retorna informações nutricionais por 100g (mais de 3 milhões de itens, do Open Food Facts) |
get_ingredient_details | Obtém informações nutricionais detalhadas de alimentos |
list_weight_units | Lista unidades de peso disponíveis (com conversão em gramas) |
Requer login (necessita WGER_API_TOKEN)
| Ferramenta | Descrição |
|---|---|
list_weight_entries | Lista registros de peso |
add_weight_entry | Registra um dado de peso |
get_user_profile | Obtém perfil do usuário |
list_nutrition_plans | Lista planos nutricionais |
get_nutrition_plan_values | Obtém resumo do plano nutricional |
list_workout_sessions | Lista registros de treino |
🚀 Deploy no Hugging Face Spaces
Este repositório já está configurado com Docker SDK; basta enviar para o HF Space:
- Crie um novo Space em huggingface.co/new-space, selecionando Docker como SDK.
- Envie os arquivos deste repositório para o repositório Git do Space.
- O Space será construído e iniciado automaticamente, escutando na porta
7860. - (Opcional) Para ferramentas que exigem login: adicione
WGER_API_TOKENem 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ável | Padrão | Descrição |
|---|---|---|
WGER_API_URL | https://wger.de | Endereço da instância wger; alterável para self-hosting |
WGER_API_VERSION | v2 | Versão da API |
WGER_API_TOKEN | (vazio) | Necessário para ferramentas que exigem login |
WGER_TIMEOUT | 30 | Timeout de requisição em segundos |
WGER_CACHE_TTL | 3600 | Cache 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
- Registre-se e faça login em wger.de
- Acesse
https://wger.de/en/user/api-key - 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).