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 personal-mcp 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| personal_mcp-0.1.5.tar.gz | 63.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| personal_mcp-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 79.5 kB
Release files / personal_mcp-0.1.5.tar.gz
| Download URL | personal_mcp-0.1.5.tar.gz |
|---|---|
| Size | 63.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3428640e7edae2b77e7a0fab9f62973a15890deb6572050589217016303b2eb
|
|
BLAKE2b-256 checksum How to use checksums |
6abad6f8efca8ceb99798207250a5076bb788c8b0323062a1b4cf3d6944fd6c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.9
|
Release files / personal_mcp-0.1.5-py3-none-any.whl
| Download URL | personal_mcp-0.1.5-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eb96963d241066bb5e52e565c43c7d9e9ddbcbb1f49a3987cc3f8b1caac8edcc
|
|
BLAKE2b-256 checksum How to use checksums |
8a00a483e1a274d42e1ae68043296430b1475712b308d39765bf95e126e04d82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.9
|
Security for personal-mcp 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.