wger 健身管理助手
Servidor MCP que conecta con la plataforma de gestión de fitness y dieta de código abierto wger. Permite consultar y gestionar directamente planes de entrenamiento, registros de ejercicio y datos de alimentación desde clientes de IA como Cursor o Claude.
Documentación
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 💪
Envuelve las capacidades de wger (plataforma de código abierto de fitness/nutrición) como un servidor MCP (Model Context Protocol), ofreciendo servicios mediante SSE. Cualquier agente de IA compatible con MCP (Claude Desktop, Cursor, Cline, agentes propios, etc.) puede conectarse para consultar la biblioteca de ejercicios, músculos/equipamiento, nutrición de alimentos, y gestionar registros de peso, planes de nutrición, etc.
✨ Herramientas proporcionadas (15 en total)
Públicas de solo lectura (sin necesidad de Token)
| Herramienta | Descripción |
|---|---|
search_exercises | Busca ejercicios de fitness por nombre (compatible con varios idiomas, coincidencia de alias) |
get_exercise_details | Obtiene detalles del ejercicio: descripción, grupos musculares objetivo, equipamiento, imágenes, alias |
list_exercise_categories | Lista categorías de ejercicios (Abs/Arms/Back/Legs…) |
list_muscles | Lista grupos musculares (incluye nombres en chino e inglés, vista frontal/posterior, diagramas) |
list_equipment | Lista tipos de equipamiento (Barbell/Dumbbell/Kettlebell…) |
get_exercise_images | Obtiene diagramas de ejercicios |
search_ingredients | Busca alimentos, devuelve información nutricional por cada 100 g (más de 3 millones de registros, de Open Food Facts) |
get_ingredient_details | Obtiene información nutricional detallada de alimentos |
list_weight_units | Lista unidades de peso disponibles (incluye conversión a gramos) |
De inicio de sesión (requiere WGER_API_TOKEN)
| Herramienta | Descripción |
|---|---|
list_weight_entries | Lista registros de peso |
add_weight_entry | Registra un dato de peso |
get_user_profile | Obtiene el perfil de usuario |
list_nutrition_plans | Lista planes de nutrición |
get_nutrition_plan_values | Obtiene resumen del plan de nutrición |
list_workout_sessions | Lista registros de entrenamiento |
🚀 Despliegue en Hugging Face Spaces
Este repositorio ya está configurado con Docker SDK; simplemente haz push al Space de HF:
- Crea un nuevo Space en huggingface.co/new-space, selecciona Docker como SDK.
- Haz push de los archivos de este repositorio al repositorio Git de ese Space.
- El Space se construirá e iniciará automáticamente, escuchando en el puerto
7860. - (Opcional) Si necesitas herramientas de inicio de sesión: agrega
WGER_API_TOKENen Settings → Variables and secrets del Space.
Después del despliegue, el endpoint MCP es:
https://<你的用户名>-<space名>.hf.space/sse
🔌 Configuración de conexión del agente
Claude Desktop / Cursor / Cline (SSE)
{
"mcpServers": {
"wger": {
"url": "https://<你的用户名>-<space名>.hf.space/sse"
}
}
}
Agente propio (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})
🏠 Ejecución local
pip install -r requirements.txt
python run_mcp_server.py --port 8100
# 默认监听 0.0.0.0:8100,SSE 端点 http://localhost:8100/sse
Configuración (variables de entorno, todas opcionales):
| Variable | Predeterminado | Descripción |
|---|---|---|
WGER_API_URL | https://wger.de | Dirección de la instancia de wger, modificable si es autoalojada |
WGER_API_VERSION | v2 | Versión de la API |
WGER_API_TOKEN | (vacío) | Necesario para herramientas de inicio de sesión |
WGER_TIMEOUT | 30 | Tiempo de espera de solicitud en segundos |
WGER_CACHE_TTL | 3600 | Segundos de caché para la lista de biblioteca de ejercicios |
⚠️ Sobre la protección anti-scraping de wger.de (importante)
La instancia oficial de wger.de implementa el proxy anti-scraping Anubis en el frontend:
/api/v1/*es interceptado por el desafío; el acceso programático recibe la página de desafío PoW en lugar de datos/api/v2/*está explícitamente permitido (para uso de aplicaciones móviles y clientes API)
Por lo tanto, este servidor usa la API v2 por defecto. Si autoalojas wger y no has habilitado Anubis, puedes cambiar WGER_API_VERSION a v1.
📦 Estructura del proyecto
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
🔑 Obtener el Token de API de wger
- Regístrate e inicia sesión en wger.de
- Visita
https://wger.de/en/user/api-key - Genera una clave e introdúcela en
WGER_API_TOKEN
📄 Licencia
MIT. Los datos de ejercicios de wger siguen CC-BY-SA 4.0 (de la comunidad de wger).