Servidor MCP de Senechal
Un servidor de Protocolo de Contexto de Modelo (MCP) que actúa como complemento del proyecto Senechal, proporcionando datos de salud desde la API de Senechal a las aplicaciones LLM.
Descripción general
Este servidor proporciona una interfaz estandarizada para que los LLM accedan a los datos de salud desde la API de Senechal. Expone:
Recursos : Datos de salud que se pueden cargar en el contexto de un LLM
Herramientas : Funciones que los LLM pueden llamar para obtener datos de salud
Indicaciones : Plantillas reutilizables para analizar datos de salud
Related MCP server: OpenAPI MCP Server
Instalación
Clonar este repositorio
Crear un entorno virtual:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activateInstalar dependencias:
pip install -r requirements.txt
Configuración
Copie el archivo .env.example a .env y agregue su clave API y URL de Senechal:
# Required: Senechal API Key
SENECHAL_API_KEY=your_api_key_here
# Required: API base URL
SENECHAL_API_BASE_URL=https://your-api-host/api/senechalTanto la clave API como la URL API son necesarias para que el servidor funcione.
Configuración de Windows
Al ejecutar en Windows, asegúrese de:
Utilice barras invertidas o rutas de escape adecuadas en la configuración
Utilice la ruta completa a su entorno virtual de Python en claude-desktop-config.json:
{
"mcpServers": {
"senechal-health": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": [
"C:\\path\\to\\senechal_mcp_server.py"
],
"env": {
"SENECHAL_API_KEY": "your_api_key_here"
}
}
}
}Tenga en cuenta que las variables de entorno en la configuración de MCP no utilizan el archivo .env , por lo que deberá configurarlas explícitamente en la configuración.
Uso
Prueba de la configuración cliente/servidor
La forma más sencilla de probar la configuración es ejecutar el cliente de ejemplo:
# In one terminal, start the server
python senechal_mcp_server.py
# In another terminal, run the example client
python example_client.pyIniciar el servidor
python senechal_mcp_server.pyModo de desarrollo con MCP Inspector
mcp dev senechal_mcp_server.pyInstalar en Claude Desktop
El servidor incluye un archivo de configuración para Claude Desktop:
mcp install senechal_mcp_server.pyLuego puede seleccionar “Senechal Health” en el menú de herramientas en Claude Desktop.
Recursos disponibles
senechal://health/summary/{period}- Obtenga un resumen de salud por día, semana, mes o añoEjemplo:
senechal://health/summary/day?span=7&metrics=allParámetros:
period: día, semana, mes, añospan: Número de períodos (predeterminado: 1)metrics: Lista separada por comas o "todos" (predeterminado)offset: Número de períodos a compensar a partir de ahora (predeterminado: 0)
senechal://health/profile- Obtener el perfil de salud del usuarioContiene datos demográficos, medicamentos y suplementos.
senechal://health/current- Obtenga mediciones de salud actualesEjemplo:
senechal://health/current?types=1,2,3Parámetros:
types: lista opcional separada por comas de identificaciones de tipos de medición
senechal://health/trends- Conozca las tendencias de salud a lo largo del tiempoEjemplo:
senechal://health/trends?days=30&types=1,2,3&interval=dayParámetros:
days: Número de días a analizar (predeterminado: 30)types: lista opcional separada por comas de identificaciones de tipos de medicióninterval: Intervalo de agrupación: día, semana, mes (predeterminado: día)
senechal://health/stats- Obtenga análisis estadísticos de métricas de saludEjemplo:
senechal://health/stats?days=30&types=1,2,3Parámetros:
days: Periodo de análisis en días (predeterminado: 30)types: lista opcional separada por comas de identificaciones de tipos de medición
Herramientas disponibles
fetch_health_summary- Obtener un resumen de salud para un período específicoParámetros:
period(obligatorio): día, semana, mes, añometrics(opcional): Métricas separadas por comas o "todas" (predeterminado)span(opcional): Número de períodos a devolver (predeterminado: 1)offset(opcional): Número de períodos a compensar (predeterminado: 0)
fetch_health_profile- Obtener el perfil de salud del usuarioNo se requieren parámetros
fetch_current_health- Obtener las últimas mediciones de saludParámetros:
types(opcional): Lista de identificaciones de tipos de medición para filtrar por
fetch_health_trends- Obtener datos de tendencias de saludParámetros:
days(opcional): Número de días a analizar (predeterminado: 30)types(opcional): Lista de identificaciones de tipos de medición para filtrar porinterval(opcional): intervalo de agrupación: día, semana, mes (predeterminado: día)
fetch_health_stats: obtiene análisis estadísticos de métricas de saludParámetros:
days(opcional): Período de análisis en días (predeterminado: 30)types(opcional): Lista de identificaciones de tipos de medición para filtrar por
Indicaciones disponibles
analyze_health_summary: solicitud para analizar resúmenes de saludProporciona una plantilla para identificar métricas anormales, tendencias y sugerir acciones.
Destinado a ser utilizado con datos de
senechal://health/summary/day?span=7
compare_health_trends: solicitud para comparar tendencias de salud en diferentes períodos de tiempoProporciona una plantilla para comparar tendencias en diferentes períodos de tiempo (7, 30, 90 días)
Diseñado para usarse con datos del punto final de tendencias de salud
Ejemplos de interacciones
Cargando datos de resumen de salud
# In an LLM application, load a week of health summaries
content, mime_type = await session.read_resource("senechal://health/summary/day?span=7")Llamadas a herramientas de datos de salud
# In an LLM conversation
result = await session.call_tool(
"fetch_health_trends",
arguments={
"days": 30,
"interval": "day"
}
)
# More complex example combining tools and resources
profile = await session.call_tool("fetch_health_profile")
trends = await session.call_tool(
"fetch_health_trends",
arguments={"days": 90, "interval": "week"}
)Uso de indicaciones de análisis de salud
# Get a prompt for analyzing health data
prompt_result = await session.get_prompt("analyze_health_summary")
for message in prompt_result.messages:
print(f"[{message.role}]: {message.content.text}")Consulte el archivo example_client.py para obtener un ejemplo completo y funcional.
Puntos finales de API
El servidor Senechal MCP se comunica con los siguientes puntos finales de API de Senechal:
/health/summary/{period}- Obtener resúmenes de salud/health/profile- Obtener perfil de salud/health/current- Obtener mediciones actuales/health/trends- Conozca las tendencias de salud/health/stats- Obtener estadísticas de salud