Cover image
Try Now
2025-03-08

Thi sis a companion MCP server for the Senechal project

3 years

Works with Finder

1

Github Watches

1

Github Forks

0

Github Stars

Senechal MCP Server

A Model Context Protocol (MCP) server that acts as a companion to the Senechal project, providing health data from the Senechal API to LLM applications.

Overview

This server provides a standardized interface for LLMs to access health data from the Senechal API. It exposes:

  • Resources: Health data that can be loaded into an LLM's context
  • Tools: Functions that can be called by LLMs to fetch health data
  • Prompts: Reusable templates for analyzing health data

Installation

  1. Clone this repository
  2. Create a virtual environment:
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install dependencies:
    pip install -r requirements.txt
    

Configuration

Copy the .env.example file to .env and add your Senechal API key and URL:

# Required: Senechal API Key
SENECHAL_API_KEY=your_api_key_here

# Required: API base URL
SENECHAL_API_BASE_URL=https://your-api-host/api/senechal

Both the API key and API URL are required for the server to function.

Windows Configuration

When running on Windows, be sure to:

  1. Use backslashes or properly escaped paths in the configuration
  2. Use the full path to your Python virtual environment in the 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"
            }
        }
    }
}

Note that environment variables in the MCP configuration do not use the .env file, so you'll need to set them explicitly in the config.

Usage

Testing the Client/Server Setup

The simplest way to test the setup is to run the example client:

# In one terminal, start the server
python senechal_mcp_server.py

# In another terminal, run the example client
python example_client.py

Start the Server

python senechal_mcp_server.py

Development Mode with MCP Inspector

mcp dev senechal_mcp_server.py

Install in Claude Desktop

The server includes a configuration file for Claude Desktop:

mcp install senechal_mcp_server.py

You can then select "Senechal Health" from the tools menu in Claude Desktop.

Available Resources

  • senechal://health/summary/{period} - Get health summary for day, week, month, or year

    • Example: senechal://health/summary/day?span=7&metrics=all
    • Parameters:
      • period: day, week, month, year
      • span: Number of periods (default: 1)
      • metrics: Comma-separated list or "all" (default)
      • offset: Number of periods to offset from now (default: 0)
  • senechal://health/profile - Get the user's health profile

    • Contains demographics, medications, supplements
  • senechal://health/current - Get current health measurements

    • Example: senechal://health/current?types=1,2,3
    • Parameters:
      • types: Optional comma-separated list of measurement type IDs
  • senechal://health/trends - Get health trends over time

    • Example: senechal://health/trends?days=30&types=1,2,3&interval=day
    • Parameters:
      • days: Number of days to analyze (default: 30)
      • types: Optional comma-separated list of measurement type IDs
      • interval: Grouping interval - day, week, month (default: day)
  • senechal://health/stats - Get statistical analysis of health metrics

    • Example: senechal://health/stats?days=30&types=1,2,3
    • Parameters:
      • days: Analysis period in days (default: 30)
      • types: Optional comma-separated list of measurement type IDs

Available Tools

  • fetch_health_summary - Fetch a health summary for a specific period

    • Parameters:
      • period (required): day, week, month, year
      • metrics (optional): Comma-separated metrics or "all" (default)
      • span (optional): Number of periods to return (default: 1)
      • offset (optional): Number of periods to offset (default: 0)
  • fetch_health_profile - Fetch the user's health profile

    • No parameters required
  • fetch_current_health - Fetch the latest health measurements

    • Parameters:
      • types (optional): List of measurement type IDs to filter by
  • fetch_health_trends - Fetch health trend data

    • Parameters:
      • days (optional): Number of days to analyze (default: 30)
      • types (optional): List of measurement type IDs to filter by
      • interval (optional): Grouping interval - day, week, month (default: day)
  • fetch_health_stats - Fetch statistical analysis of health metrics

    • Parameters:
      • days (optional): Analysis period in days (default: 30)
      • types (optional): List of measurement type IDs to filter by

Available Prompts

  • analyze_health_summary - Prompt to analyze health summaries

    • Provides a template for identifying abnormal metrics, trends, and suggesting actions
    • Intended to be used with data from senechal://health/summary/day?span=7
  • compare_health_trends - Prompt to compare health trends over different time periods

    • Provides a template for comparing trends across different timeframes (7, 30, 90 days)
    • Intended to be used with data from the health trends endpoint

Example Interactions

Loading Health Summary Data

# In an LLM application, load a week of health summaries
content, mime_type = await session.read_resource("senechal://health/summary/day?span=7")

Calling Health Data Tools

# 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"}
)

Using Health Analysis Prompts

# 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}")

See the example_client.py file for a complete working example.

API Endpoints

The Senechal MCP server communicates with the following Senechal API endpoints:

  • /health/summary/{period} - Get health summaries
  • /health/profile - Get health profile
  • /health/current - Get current measurements
  • /health/trends - Get health trends
  • /health/stats - Get health stats

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Bora Yalcin
  • Evaluator for marketplace product descriptions, checks for relevancy and keyword stuffing.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Callycode Limited
  • A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Khalid kalib
  • Write professional emails

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Beniyam Berhanu
  • Therapist adept at identifying core issues and offering practical advice with images.

  • Lists Tailwind CSS classes in monospaced font

  • apappascs
  • Discover the most comprehensive and up-to-date collection of MCP servers in the market. This repository serves as a centralized hub, offering an extensive catalog of open-source and proprietary MCP servers, complete with features, documentation links, and contributors.

  • ShrimpingIt
  • Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx

  • OffchainLabs
  • Go implementation of Ethereum proof of stake

  • huahuayu
  • A unified API gateway for integrating multiple etherscan-like blockchain explorer APIs with Model Context Protocol (MCP) support for AI assistants.

  • deemkeen
  • control your mbot2 with a power combo: mqtt+mcp+llm

    Reviews

    2 (1)
    Avatar
    user_T7p3ifuP
    2025-04-15

    Weather MCP Tool for Claude is incredibly efficient and user-friendly. It provides accurate and real-time weather updates, which helps in planning daily activities effectively. The integration with Claude is seamless, ensuring a smooth user experience. Highly recommend this tool for anyone looking for reliable weather information!