Personal MCP Server
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
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for iflow-mcp_evangstav_personal-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_evangstav_personal_mcp-0.1.0.tar.gz | 58.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_evangstav_personal_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 73.0 kB
Release files / iflow_mcp_evangstav_personal_mcp-0.1.0.tar.gz
| Download URL | iflow_mcp_evangstav_personal_mcp-0.1.0.tar.gz |
|---|---|
| Size | 58.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f96758530e7c0d00751607dba1402921d7dc1b8afb9100dc370208e05e17d43
|
|
BLAKE2b-256 checksum How to use checksums |
c01c34a9e2379dbc7296c843008744e88f1cb5cbcb7da919c1516868cd556ff4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_evangstav_personal_mcp-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_evangstav_personal_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
080490f0942c4a2a8e437e302a574b097dd3971cd15602ad7e5c4b8b4c85e6f1
|
|
BLAKE2b-256 checksum How to use checksums |
ac6ed9cef721b9ba6ecf1e6259c5a324aecac177da4366a85d889bbcd83a188e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|