Personal MCP Server

Personal MCP Server

A Model Context Protocol server for tracking personal health and well-being, offering tools for workout logging, nutrition management, and daily journaling with AI-assisted analysis integration.

evangstav

Health & Wellness
Note Taking
Visit Server

README

Personal MCP Server

smithery badge

A Model Context Protocol server for personal health and well-being tracking. This server provides tools and resources for tracking workouts, nutrition, and daily journal entries, with AI-assisted analysis through Claude integration.

Features

Workout Tracking

  • Log exercises, sets, and reps
  • Track perceived effort and post-workout feelings
  • Calculate safe training weights with rehabilitation considerations
  • Historical workout analysis
  • Shoulder rehabilitation support
  • RPE-based load management

Nutrition Management

  • Log meals and individual food items
  • Track protein and calorie intake
  • Monitor hunger and satisfaction levels
  • Daily nutrition targets and progress
  • Pre/post workout nutrition tracking
  • Meal timing analysis

Journal System

  • Daily entries with mood and energy tracking
  • Sleep quality and stress level monitoring
  • Tag-based organization
  • Trend analysis and insights
  • Correlation analysis between workouts, nutrition, and well-being
  • Pattern recognition in mood and energy levels

Installation

Installing via Smithery

To install Personal Health Tracker for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install personal-mcp --client claude

Prerequisites

  • Python 3.10 or higher
  • pip or uv package manager

Using pip

pip install -e .

Development Installation

git clone https://github.com/yourusername/personal-mcp.git
cd personal-mcp
uv pip install -e ".[dev]"

Usage

Basic Server

Run the server with default settings:

personal-mcp run

Development Mode

Run with hot reloading for development:

personal-mcp dev

MCP Inspector

Debug with the MCP Inspector:

personal-mcp inspect

Claude Desktop Integration

Install to Claude Desktop:

personal-mcp install --claude-desktop

Configuration Options

personal-mcp --help

Available options:

  • --name: Set server name (default: "Personal Assistant")
  • --db-path: Specify database location
  • --dev: Enable development mode
  • --inspect: Run with MCP Inspector
  • -v, --verbose: Enable verbose logging

MCP Tools

Workout Tools

# Log a workout
workout = {
    "date": "2024-01-07",
    "exercises": [
        {
            "name": "Bench Press",
            "sets": [
                {"weight": 135, "reps": 10, "rpe": 7}
            ]
        }
    ],
    "perceived_effort": 8
}

# Calculate training weights
params = {
    "exercise": "Bench Press",
    "base_weight": 200,
    "days_since_surgery": 90,
    "recent_pain_level": 2,
    "recent_rpe": 7
}

Nutrition Tools

# Log a meal
meal = {
    "meal_type": "lunch",
    "foods": [
        {
            "name": "Chicken Breast",
            "amount": 200,
            "unit": "g",
            "protein": 46,
            "calories": 330
        }
    ],
    "hunger_level": 7,
    "satisfaction_level": 8
}

# Check nutrition targets
targets = await mcp.call_tool("check_nutrition_targets", {"date": "2024-01-07"})

Journal Tools

# Create a journal entry
entry = {
    "entry_type": "daily",
    "content": "Great workout today...",
    "mood": 8,
    "energy": 7,
    "sleep_quality": 8,
    "stress_level": 3,
    "tags": ["workout", "recovery"]
}

# Analyze entries
analysis = await mcp.call_tool("analyze_journal_entries", {
    "start_date": "2024-01-01",
    "end_date": "2024-01-07"
})

Development

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=personal_mcp

# Run specific test file
pytest tests/test_database.py

Code Quality

# Format code
black src/personal_mcp

# Lint code
ruff check src/personal_mcp

# Type checking
mypy src/personal_mcp

Project Structure

personal-mcp/
├── src/
│   └── personal_mcp/
│       ├── tools/
│       │   ├── workout.py
│       │   ├── nutrition.py
│       │   └── journal.py
│       ├── database.py
│       ├── models.py
│       ├── resources.py
│       ├── prompts.py
│       └── server.py
├── tests/
│   ├── test_database.py
│   ├── test_server.py
│   └── test_cli.py
├── pyproject.toml
└── mcp.json

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Recommended Servers

Apple MCP Server

Apple MCP Server

Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.

Featured
Local
TypeScript
Todoist MCP

Todoist MCP

An MCP server that enables LLMs to interact with Todoist tasks, projects, and other features through the Todoist API.

Featured
TypeScript
Notion API MCP Server

Notion API MCP Server

Enables advanced todo list management and content organization using Notion's API, supporting features like creating databases, dynamic filtering, and collaborative task tracking.

Featured
Python
Todoist MCP Server

Todoist MCP Server

Integrates Claude with Todoist for natural language task management, supporting project and section organization, task creation, updating, completion, and deletion using everyday language.

Featured
JavaScript
Todoist MCP Server

Todoist MCP Server

An MCP server that integrates Claude with Todoist, enabling natural language task management including creating, updating, completing, and deleting tasks.

Featured
JavaScript
Curri MCP Server

Curri MCP Server

Enables interaction with Curri's API by managing text notes, offering tools for note creation, and generating summaries using structured prompts.

Official
Local
JavaScript
Inkdrop MCP Server

Inkdrop MCP Server

Integrates Inkdrop note-taking app with Claude AI through Model Context Protocol, allowing Claude to search, read, create, and update notes in your Inkdrop database.

Official
Local
JavaScript
Notion MCP Server

Notion MCP Server

Enables interaction with Notion through the Notion API by exposing it as tools for LLMs, allowing operations like reading, creating, updating, and deleting Notion pages seamlessly via natural language.

Official
TypeScript
Notion MCP Server

Notion MCP Server

A Model Context Protocol server that connects Claude and other AI assistants to your Notion workspace, allowing AIs to interact with databases, pages, and blocks.

Local
JavaScript
Datetime MCP Server

Datetime MCP Server

This server enables users to store, manage, and summarize notes using a custom URI scheme, with functionality to add new notes and generate summaries with varying levels of detail.

Local
Python