# Personal MCP Server
[![smithery badge](https://smithery.ai/badge/personal-mcp)](https://smithery.ai/server/personal-mcp)
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](https://smithery.ai/server/personal-mcp):
```bash
npx -y @smithery/cli install personal-mcp --client claude
```
### Prerequisites
- Python 3.10 or higher
- pip or uv package manager
### Using pip
```bash
pip install -e .
```
### Development Installation
```bash
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:
```bash
personal-mcp run
```
### Development Mode
Run with hot reloading for development:
```bash
personal-mcp dev
```
### MCP Inspector
Debug with the MCP Inspector:
```bash
personal-mcp inspect
```
### Claude Desktop Integration
Install to Claude Desktop:
```bash
personal-mcp install --claude-desktop
```
### Configuration Options
```bash
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
```python
# 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
```python
# 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
```python
# 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
```bash
# Run all tests
pytest
# Run with coverage
pytest --cov=personal_mcp
# Run specific test file
pytest tests/test_database.py
```
### Code Quality
```bash
# 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.
Raw data
{
"_id": null,
"home_page": null,
"name": "personal-mcp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "health, mcp, personal, tracking, well-being",
"author": null,
"author_email": "Estav <estav@example.com>",
"download_url": "https://files.pythonhosted.org/packages/6a/ba/d6f8efca8ceb99798207250a5076bb788c8b0323062a1b4cf3d6944fd6c6/personal_mcp-0.1.5.tar.gz",
"platform": null,
"description": "# Personal MCP Server\n\n[![smithery badge](https://smithery.ai/badge/personal-mcp)](https://smithery.ai/server/personal-mcp)\n\nA 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.\n\n## Features\n\n### Workout Tracking\n- Log exercises, sets, and reps\n- Track perceived effort and post-workout feelings\n- Calculate safe training weights with rehabilitation considerations\n- Historical workout analysis\n- Shoulder rehabilitation support\n- RPE-based load management\n\n### Nutrition Management\n- Log meals and individual food items\n- Track protein and calorie intake\n- Monitor hunger and satisfaction levels\n- Daily nutrition targets and progress\n- Pre/post workout nutrition tracking\n- Meal timing analysis\n\n### Journal System\n- Daily entries with mood and energy tracking\n- Sleep quality and stress level monitoring\n- Tag-based organization\n- Trend analysis and insights\n- Correlation analysis between workouts, nutrition, and well-being\n- Pattern recognition in mood and energy levels\n\n## Installation\n\n### Installing via Smithery\n\nTo install Personal Health Tracker for Claude Desktop automatically via [Smithery](https://smithery.ai/server/personal-mcp):\n\n```bash\nnpx -y @smithery/cli install personal-mcp --client claude\n```\n\n### Prerequisites\n- Python 3.10 or higher\n- pip or uv package manager\n\n### Using pip\n```bash\npip install -e .\n```\n\n### Development Installation\n```bash\ngit clone https://github.com/yourusername/personal-mcp.git\ncd personal-mcp\nuv pip install -e \".[dev]\"\n```\n\n## Usage\n\n### Basic Server\nRun the server with default settings:\n```bash\npersonal-mcp run\n```\n\n### Development Mode\nRun with hot reloading for development:\n```bash\npersonal-mcp dev\n```\n\n### MCP Inspector\nDebug with the MCP Inspector:\n```bash\npersonal-mcp inspect\n```\n\n### Claude Desktop Integration\nInstall to Claude Desktop:\n```bash\npersonal-mcp install --claude-desktop\n```\n\n### Configuration Options\n```bash\npersonal-mcp --help\n```\n\nAvailable options:\n- `--name`: Set server name (default: \"Personal Assistant\")\n- `--db-path`: Specify database location\n- `--dev`: Enable development mode\n- `--inspect`: Run with MCP Inspector\n- `-v, --verbose`: Enable verbose logging\n\n## MCP Tools\n\n### Workout Tools\n```python\n# Log a workout\nworkout = {\n \"date\": \"2024-01-07\",\n \"exercises\": [\n {\n \"name\": \"Bench Press\",\n \"sets\": [\n {\"weight\": 135, \"reps\": 10, \"rpe\": 7}\n ]\n }\n ],\n \"perceived_effort\": 8\n}\n\n# Calculate training weights\nparams = {\n \"exercise\": \"Bench Press\",\n \"base_weight\": 200,\n \"days_since_surgery\": 90,\n \"recent_pain_level\": 2,\n \"recent_rpe\": 7\n}\n```\n\n### Nutrition Tools\n```python\n# Log a meal\nmeal = {\n \"meal_type\": \"lunch\",\n \"foods\": [\n {\n \"name\": \"Chicken Breast\",\n \"amount\": 200,\n \"unit\": \"g\",\n \"protein\": 46,\n \"calories\": 330\n }\n ],\n \"hunger_level\": 7,\n \"satisfaction_level\": 8\n}\n\n# Check nutrition targets\ntargets = await mcp.call_tool(\"check_nutrition_targets\", {\"date\": \"2024-01-07\"})\n```\n\n### Journal Tools\n```python\n# Create a journal entry\nentry = {\n \"entry_type\": \"daily\",\n \"content\": \"Great workout today...\",\n \"mood\": 8,\n \"energy\": 7,\n \"sleep_quality\": 8,\n \"stress_level\": 3,\n \"tags\": [\"workout\", \"recovery\"]\n}\n\n# Analyze entries\nanalysis = await mcp.call_tool(\"analyze_journal_entries\", {\n \"start_date\": \"2024-01-01\",\n \"end_date\": \"2024-01-07\"\n})\n```\n\n## Development\n\n### Running Tests\n```bash\n# Run all tests\npytest\n\n# Run with coverage\npytest --cov=personal_mcp\n\n# Run specific test file\npytest tests/test_database.py\n```\n\n### Code Quality\n```bash\n# Format code\nblack src/personal_mcp\n\n# Lint code\nruff check src/personal_mcp\n\n# Type checking\nmypy src/personal_mcp\n```\n\n## Project Structure\n```\npersonal-mcp/\n\u251c\u2500\u2500 src/\n\u2502 \u2514\u2500\u2500 personal_mcp/\n\u2502 \u251c\u2500\u2500 tools/\n\u2502 \u2502 \u251c\u2500\u2500 workout.py\n\u2502 \u2502 \u251c\u2500\u2500 nutrition.py\n\u2502 \u2502 \u2514\u2500\u2500 journal.py\n\u2502 \u251c\u2500\u2500 database.py\n\u2502 \u251c\u2500\u2500 models.py\n\u2502 \u251c\u2500\u2500 resources.py\n\u2502 \u251c\u2500\u2500 prompts.py\n\u2502 \u2514\u2500\u2500 server.py\n\u251c\u2500\u2500 tests/\n\u2502 \u251c\u2500\u2500 test_database.py\n\u2502 \u251c\u2500\u2500 test_server.py\n\u2502 \u2514\u2500\u2500 test_cli.py\n\u251c\u2500\u2500 pyproject.toml\n\u2514\u2500\u2500 mcp.json\n```\n\n## Contributing\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to the branch\n5. Create a Pull Request\n\n## License\nThis project is licensed under the MIT License - see the LICENSE file for details.\n",
"bugtrack_url": null,
"license": null,
"summary": "Personal MCP server for health and well-being tracking",
"version": "0.1.5",
"project_urls": {
"Bug Tracker": "https://github.com/estav/personal-mcp/issues",
"Homepage": "https://github.com/estav/personal-mcp",
"Repository": "https://github.com/estav/personal-mcp.git"
},
"split_keywords": [
"health",
" mcp",
" personal",
" tracking",
" well-being"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "8a00a483e1a274d42e1ae68043296430b1475712b308d39765bf95e126e04d82",
"md5": "4f7c4e77a1fdec1e5cf8f4d2528ab1ca",
"sha256": "eb96963d241066bb5e52e565c43c7d9e9ddbcbb1f49a3987cc3f8b1caac8edcc"
},
"downloads": -1,
"filename": "personal_mcp-0.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4f7c4e77a1fdec1e5cf8f4d2528ab1ca",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 15603,
"upload_time": "2025-01-08T12:22:06",
"upload_time_iso_8601": "2025-01-08T12:22:06.778223Z",
"url": "https://files.pythonhosted.org/packages/8a/00/a483e1a274d42e1ae68043296430b1475712b308d39765bf95e126e04d82/personal_mcp-0.1.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6abad6f8efca8ceb99798207250a5076bb788c8b0323062a1b4cf3d6944fd6c6",
"md5": "f71e86c2dd0b0503888e897d2f7ac776",
"sha256": "a3428640e7edae2b77e7a0fab9f62973a15890deb6572050589217016303b2eb"
},
"downloads": -1,
"filename": "personal_mcp-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "f71e86c2dd0b0503888e897d2f7ac776",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 63857,
"upload_time": "2025-01-08T12:22:09",
"upload_time_iso_8601": "2025-01-08T12:22:09.028729Z",
"url": "https://files.pythonhosted.org/packages/6a/ba/d6f8efca8ceb99798207250a5076bb788c8b0323062a1b4cf3d6944fd6c6/personal_mcp-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-08 12:22:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "estav",
"github_project": "personal-mcp",
"github_not_found": true,
"lcname": "personal-mcp"
}