Metadata-Version: 2.4
Name: strength-training-mcp
Version: 0.1.1
Summary: MCP server for evidence-based strength training
Project-URL: Homepage, https://github.com/daiduo2/strength-training-mcp
Project-URL: Repository, https://github.com/daiduo2/strength-training-mcp
Project-URL: Documentation, https://github.com/daiduo2/strength-training-mcp/tree/main/docs
Project-URL: Issues, https://github.com/daiduo2/strength-training-mcp/issues
Author: Aura Team
License: MIT
License-File: LICENSE
Keywords: autoregulation,banister,jts,mcp,powerlifting,rpe,rts,strength-training
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Healthcare Industry
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: fastapi>=0.110.0
Requires-Dist: mcp[cli]>=1.0.0
Requires-Dist: pydantic>=2.6.0
Requires-Dist: sse-starlette>=2.0.0
Requires-Dist: uvicorn[standard]>=0.27.0
Provides-Extra: dev
Requires-Dist: httpx2>=0.30.0; extra == 'dev'
Requires-Dist: jsonschema>=4.21.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest-benchmark>=4.0.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# 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

```bash
# Install uv (one-time)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install deps + create venv
uv sync --all-extras
```

## Running

```bash
# 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

- **ModelScope**: see [modelscope-deploy.md](modelscope-deploy.md) — deploy via `uvx`.
- **Your own cloud server / VPS**: see [docs/selfhost.md](docs/selfhost.md) for systemd + Caddy setup.

Quick start on any machine:

```bash
# HTTP server (for self-host / remote clients)
uvx --from strength-training-mcp strength-training-mcp-http --port 8080

# stdio server (for Claude Desktop / Claude Code local)
uvx --from strength-training-mcp strength-training-mcp
```

## Agent Integration

See `docs/agent-integration/` for setup guides:

- [Claude Desktop](docs/agent-integration/claude-desktop.md)
- [Aura](docs/agent-integration/aura.md)
- [Cursor](docs/agent-integration/cursor.md)
- [Custom Agent (Python SDK)](docs/agent-integration/custom-agent.md)

## 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](docs/api.md) for full tool reference.

## Development

```bash
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](docs/rts-principles.md) for citations.

## License

MIT (subject to ModelScope deployment terms).
