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)

HerramientaDescripción
search_exercisesBusca ejercicios de fitness por nombre (compatible con varios idiomas, coincidencia de alias)
get_exercise_detailsObtiene detalles del ejercicio: descripción, grupos musculares objetivo, equipamiento, imágenes, alias
list_exercise_categoriesLista categorías de ejercicios (Abs/Arms/Back/Legs…)
list_musclesLista grupos musculares (incluye nombres en chino e inglés, vista frontal/posterior, diagramas)
list_equipmentLista tipos de equipamiento (Barbell/Dumbbell/Kettlebell…)
get_exercise_imagesObtiene diagramas de ejercicios
search_ingredientsBusca alimentos, devuelve información nutricional por cada 100 g (más de 3 millones de registros, de Open Food Facts)
get_ingredient_detailsObtiene información nutricional detallada de alimentos
list_weight_unitsLista unidades de peso disponibles (incluye conversión a gramos)

De inicio de sesión (requiere WGER_API_TOKEN)

HerramientaDescripción
list_weight_entriesLista registros de peso
add_weight_entryRegistra un dato de peso
get_user_profileObtiene el perfil de usuario
list_nutrition_plansLista planes de nutrición
get_nutrition_plan_valuesObtiene resumen del plan de nutrición
list_workout_sessionsLista registros de entrenamiento

🚀 Despliegue en Hugging Face Spaces

Este repositorio ya está configurado con Docker SDK; simplemente haz push al Space de HF:

  1. Crea un nuevo Space en huggingface.co/new-space, selecciona Docker como SDK.
  2. Haz push de los archivos de este repositorio al repositorio Git de ese Space.
  3. El Space se construirá e iniciará automáticamente, escuchando en el puerto 7860.
  4. (Opcional) Si necesitas herramientas de inicio de sesión: agrega WGER_API_TOKEN en 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):

VariablePredeterminadoDescripción
WGER_API_URLhttps://wger.deDirección de la instancia de wger, modificable si es autoalojada
WGER_API_VERSIONv2Versión de la API
WGER_API_TOKEN(vacío)Necesario para herramientas de inicio de sesión
WGER_TIMEOUT30Tiempo de espera de solicitud en segundos
WGER_CACHE_TTL3600Segundos 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

  1. Regístrate e inicia sesión en wger.de
  2. Visita https://wger.de/en/user/api-key
  3. 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).