Skip to main content

Personal MCP server for health and well-being tracking

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

personal_mcp-0.1.4.tar.gz (63.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

personal_mcp-0.1.4-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file personal_mcp-0.1.4.tar.gz.

File metadata

  • Download URL: personal_mcp-0.1.4.tar.gz
  • Upload date:
  • Size: 63.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.9

File hashes

Hashes for personal_mcp-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d4a8c56b11028b94d0bfcdffad277d5a0d0d8e1ebaf2730b38addcbcc77c2ecd
MD5 74438eec945553590827ef4a3c55fdec
BLAKE2b-256 ef54581e359aee5b782cbfdddd9141947673fdb8d1e0691ef52fce5f35769830

See more details on using hashes here.

File details

Details for the file personal_mcp-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for personal_mcp-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c21db30a67e9cbd7a326c0c580a4e1d6576db95f2f0a250df4bd23c98b09d45b
MD5 d9784a85421a2d91b31c4ac4c5a56fee
BLAKE2b-256 4e9c0552fe94532899ccc909da28a7bdae6315199b7b2114b29b535da4c9a978

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page