aiTrainer
Personal workout coach MCP server that logs exercises in natural language, tracks progress with SQLite, and provides coaching signals like estimated 1RM and volume trends.
README
aiTrainer
Personal workout coach as a Python MCP server for OpenClaw. Chat over Telegram, log exercises in natural language, and let the agent read structured progress from SQLite.
Features
- Log exercises, sets, reps, weights, optional RPE, and notes
- Automatic workout session grouping (same day + within idle timeout)
- Exercise aliases (
bench,bench press, etc.) - Progress signals: estimated 1RM, personal bests, volume trend, sessions since last increase
- MCP stdio transport for OpenClaw
Requirements
- Python 3.11+
- Linux target machine (also works on macOS for development)
Install
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Run locally
aicoach-mcp
Or:
python -m aicoach.server
Configuration
Environment variables:
| Variable | Default | Description |
|---|---|---|
AICOACH_DB_PATH |
~/.local/share/aicoach/aicoach.db |
SQLite database path |
AICOACH_DEFAULT_UNIT |
kg |
Default weight unit |
AICOACH_IDLE_TIMEOUT_SECONDS |
10800 (3h) |
Auto-close idle workout sessions |
OpenClaw setup
Add aiCoach to your OpenClaw MCP config. On a standard install this lives in ~/.openclaw/openclaw.json.
Option A: CLI helper
openclaw mcp set aicoach '{
"command": "/path/to/aicoach/.venv/bin/aicoach-mcp",
"env": {
"AICOACH_DB_PATH": "/home/you/.local/share/aicoach/aicoach.db"
}
}'
Option B: direct JSON config
{
"mcpServers": {
"aicoach": {
"command": "/path/to/aicoach/.venv/bin/aicoach-mcp",
"args": [],
"env": {
"AICOACH_DB_PATH": "/home/you/.local/share/aicoach/aicoach.db"
}
}
}
}
Notes:
- A
commandfield means OpenClaw launches the server over stdio automatically. - Use the absolute path to your virtualenv binary on the Linux host.
- Restart or reload OpenClaw after changing MCP config.
Agent prompt
Copy prompts/coach_instructions.md into your OpenClaw agent instructions so the model knows when to call aiCoach tools.
MCP tools
| Tool | Purpose |
|---|---|
log_workout |
Log one exercise and attach it to the current session |
get_current_workout |
Show the open session and exercises logged so far |
get_exercise_history |
Recent sessions for one exercise |
get_recent_workouts |
Recent sessions across exercises |
get_progress |
Coaching signals for one exercise |
list_exercises |
Known exercises and aliases |
Example tool input
{
"exercise": "squat",
"sets": [
{"reps": 5, "weight": 100},
{"reps": 5, "weight": 100},
{"reps": 5, "weight": 100}
],
"note": "moved well"
}
Tests
pytest
MCP stdio smoke test:
python scripts/mcp_smoke_test.py
OpenClaw example config
See examples/openclaw-mcp-snippet.json for a copy-paste MCP server entry.
Project layout
aicoach/
config.py # settings and env vars
db.py # sqlite schema
repository.py # storage and session logic
progress.py # coaching signals
server.py # MCP server
prompts/
coach_instructions.md
tests/
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.