aiTrainer
The aiTrainer server acts as a personal workout coach, allowing you to log, track, and manage exercise data through an MCP interface.
Log workouts: Record exercises with sets, reps, weights, optional RPE (1–10), notes, and units; automatically grouped into sessions based on the day and idle timeout.
View current workout: Retrieve the open workout session and all exercises logged so far today.
Exercise history: Get recent workout sessions for a specific exercise to review past performance.
Recent workouts: Browse workout sessions across all exercises, filterable by number of days or result limit.
Progress & coaching signals: Obtain insights for a specific exercise including estimated 1RM, personal bests, volume trends, and sessions since last weight increase.
List exercises: View known exercises and their aliases (e.g.
bench,bench press) to help normalize names when logging.Edit sessions and sets: Fetch a session by ID, update session dates/notes, or modify individual sets by ID.
Delete data: Remove entire workout sessions or specific exercises from a session.
Allows logging exercises and reading workout progress via Telegram chat.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aiTrainer Log squat 5 reps at 100 kg"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: super-hevy-mcp
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-mcpOr:
python -m aicoach.serverConfiguration
Environment variables:
Variable | Default | Description |
|
| SQLite database path |
|
| Default weight unit |
|
| 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 one exercise and attach it to the current session |
| Show the open session and exercises logged so far |
| Fetch one session with set ids for editing |
| Recent sessions for one exercise |
| Recent sessions across exercises |
| Coaching signals for one exercise |
| Known exercises and aliases |
| Change a session date or note |
| Update one set by id |
| Delete an entire workout session |
| Delete one exercise from a session |
| Merge source sessions into one target session |
Example tool input
{
"exercise": "squat",
"sets": [
{"reps": 5, "weight": 100},
{"reps": 5, "weight": 100},
{"reps": 5, "weight": 100}
],
"note": "moved well"
}Tests
pytestMCP stdio smoke test:
python scripts/mcp_smoke_test.pyOpenClaw 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/Available Tools
6 toolsget_current_workoutA
Return the open workout session and all exercises logged so far today.
Inputs: no named parameters. Returns: result
get_exercise_historyB
Return recent workout sessions for a single exercise.
Inputs: exercise (required), limit. Returns: result
get_progressB
Return coaching signals such as estimated 1RM, volume trend, and PRs.
Inputs: exercise (required). Returns: result
get_recent_workoutsC
Return recent workout sessions across all exercises.
Inputs: days, limit. Returns: result
list_exercisesA
List known exercises and aliases to help normalize exercise names.
Inputs: no named parameters. Returns: result
log_workoutA
Log sets for one exercise and attach them to the current open workout session.
Inputs: sets (required), exercise (required), note, performed_on. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct aspect: current workout, exercise history, progress, recent workouts, exercise list, and logging. No overlap in purpose.
Every tool follows a consistent verb_noun pattern (get_, list_, log_), with no mixing of styles or vague verbs.
With 6 tools, the server is well-scoped for a workout tracking assistant—not too few, not too many.
Covers core needs: listing exercises, logging, viewing current workout, history, and progress. Minor gap: no explicit create/close session, though log_workout may implicitly open one.
Maintenance
Related MCP Connectors
Adaptive running coach MCP server — training data, plans, and recovery for AI assistants.
Fitness MCP for coaches and gyms: build workouts and read clients' training from live Superset data.
Talk to your own gym log. Reps: Gym Workout Log (repsworkout.com) is a workout log for iPhone and Android. Connect it to Claude, ChatGPT or any MCP client to read your workout history, PRs, lift progression, weekly summaries, routines and training plan, and to save routines and plans after you confirm them. It never logs a workout for you and can’t delete your history. Sign in with an e-mail code, Apple or Google; new users can create a free account while connecting, then get the app to log workouts.
Workout journal Claude and ChatGPT write to: log workouts, get a program, see your progress.
Related MCP Servers
- FlicenseBqualityDmaintenanceA personal fitness tracking server that enables logging and querying workouts, nutrition, and body metrics through a local SQLite database. Integrates with OpenNutrition MCP for food logging and supports exercise history tracking for workout progression.17-
- AlicenseNot gradedqualityDmaintenanceMCP server for the Hevy workout tracker that enables users to query training history, log workouts, and manage routines via natural language.MIT
- AlicenseNot gradedqualityCmaintenanceEnables creating workout plans, tracking progress, suggesting exercises, and calculating training volume through natural language, compliant with MCP protocol.MIT
- AlicenseNot gradedqualityBmaintenanceSelf-hosted fitness tracking MCP server that gives AI assistants access to your nutrition, training, weight, sleep, and accomplishment data via 77 tools and 5 resources. Enables natural-language logging and querying of personal health metrics through Claude or ChatGPT.12 npm1BSD 2-Clause "Simplified"