MCP server for evidence-based strength training
Project description
Strength Training MCP Server
A stateless MCP server exposing 8 tools for evidence-based strength training. Encodes classical powerlifting programs (5/3/1, Texas Method, Madcow, GZCLP, nSuns CAP3, Coan-Philippi, Smolov Jr), the Banister fitness-fatigue model, RPE-based autoregulation, and an adjustment policy engine.
No user data is stored on the server. All state lives in the calling agent. The server is a pure function: same inputs → same outputs.
Installation
# Install uv (one-time)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install deps + create venv
uv sync --all-extras
Running
# HTTP server
uv run python -m strength_training_mcp.server
# stdio server (Claude Desktop / Claude Code)
uv run strength-training-mcp
HTTP server starts on http://0.0.0.0:8080
- MCP JSON-RPC endpoint at
POST /mcp - Health check at
GET /health
Deployment
See modelscope-deploy.md for deploying to ModelScope Inference.
Quick deploy via uvx (ModelScope 自定义MCP → uvx):
# After publishing to PyPI (or use git+https://...)
uvx --from strength-training-mcp strength-training-mcp
To publish a release:
git tag v0.1.0
git push origin v0.1.0
The .github/workflows/publish.yml action will publish to PyPI automatically
(once trusted publishing is configured on PyPI).
A Docker image is also supported as a fallback — see deploy.sh.
Agent Integration
See docs/agent-integration/ for setup guides:
Tools
| Tool | Purpose |
|---|---|
list_training_templates |
Browse the built-in program library |
get_template_plan |
Get a specific week's prescribed sessions |
lookup_exercise_form |
Get form cues + alternatives for an exercise |
explain_principle |
Explain a training science principle with citation |
calculate_fatigue_score |
Compute Banister CTL/ATL/TSB from training history |
suggest_session_modification |
Get adjustment recommendations based on fatigue + actual |
apply_plan_adjustment |
Apply aggregate adjustments to a week (deload, etc.) |
recommend_session_for_today |
Compose today's session with rationale |
See docs/api.md for full tool reference.
Development
uv sync --all-extras
uv run pytest tests/unit # unit tests
uv run pytest tests/integration # E2E tests
uv run pytest --cov=src/strength_training_mcp
Knowledge Sources
All templates and principles cite their original public sources. See docs/rts-principles.md for citations.
License
MIT (subject to ModelScope deployment terms).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file strength_training_mcp-0.1.0.tar.gz.
File metadata
- Download URL: strength_training_mcp-0.1.0.tar.gz
- Upload date:
- Size: 137.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ae646e46ac9adbfd73b97f72322c002d161f15d78b2a63e6235d65c925e33ed
|
|
| MD5 |
b941383c5adee4bf3675df7bbe2ab8a8
|
|
| BLAKE2b-256 |
547a488705ee85076e3e70243b169df0721c0fa587802855db0c939086de763f
|
Provenance
The following attestation bundles were made for strength_training_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on daiduo2/strength-training-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
strength_training_mcp-0.1.0.tar.gz -
Subject digest:
7ae646e46ac9adbfd73b97f72322c002d161f15d78b2a63e6235d65c925e33ed - Sigstore transparency entry: 1896740072
- Sigstore integration time:
-
Permalink:
daiduo2/strength-training-mcp@d583c64327176c489ca95fc5cce66fc1510adb96 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/daiduo2
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d583c64327176c489ca95fc5cce66fc1510adb96 -
Trigger Event:
push
-
Statement type:
File details
Details for the file strength_training_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: strength_training_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 48.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
288b7ee2c226e8b0b41587d3faf601937cd5c5e40b6282d4e44319bbb498b0f1
|
|
| MD5 |
064ce677835d5137ce692f513caa2033
|
|
| BLAKE2b-256 |
7f24466ecbd744ddd65231bfe35149a1e3a5ccded7ddc8b97e7d8fe09b6b5552
|
Provenance
The following attestation bundles were made for strength_training_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on daiduo2/strength-training-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
strength_training_mcp-0.1.0-py3-none-any.whl -
Subject digest:
288b7ee2c226e8b0b41587d3faf601937cd5c5e40b6282d4e44319bbb498b0f1 - Sigstore transparency entry: 1896740296
- Sigstore integration time:
-
Permalink:
daiduo2/strength-training-mcp@d583c64327176c489ca95fc5cce66fc1510adb96 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/daiduo2
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d583c64327176c489ca95fc5cce66fc1510adb96 -
Trigger Event:
push
-
Statement type: