Working examples, the official JS/TS client and the MCP server for the ExerciseBank API: 1,492 filmed exercises, substitutes, signed video.
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
- !Licence file present but not machine-readable
git clone https://github.com/exercisebank/examples{
"mcpServers": {
"examples": {
"command": "node",
"args": ["/path/to/examples/dist/index.js"],
"env": {
"EB_KEY": "<eb_key>"
}
}
}
}EB_KEYMCP Servers overview
# ExerciseBank examples
[ExerciseBank](https://exercisebank.net) is an exercise library for developers of fitness, coaching,
physiotherapy and AI-trainer apps: 1,492 exercises filmed with real people in one studio, each with a
looping video clip, a start/end still, a hand-checked classification (muscles, equipment, movement
pattern, difficulty, loaded joints, impact), coaching cues, English and French, and a ranked map of
which exercises can replace which. One REST API, JSON, a free sandbox key with no card.
This repository is working code for it.
| Folder | What it shows |
|---|---|
| [`packages/exercisebank/`](packages/exercisebank) | The official JS/TS client, on npm as [`exercisebank`](https://www.npmjs.com/package/exercisebank): search, detail, substitutes, signed media, catalogue sync |
| [`packages/exercisebank-mcp/`](packages/exercisebank-mcp) | An MCP server, on npm as [`exercisebank-mcp`](https://www.npmjs.com/package/exercisebank-mcp): Claude, Cursor and other agents search the catalogue directly |
| [`node/`](node) | Search, substitutes and signed media in 25 lines, no dependencies; a daily catalogue sync with ETag |
| [`python/`](python) | The same as a small `requests` client |
| [`ai-workout-generator/`](ai-workout-generator) | Claude builds a workout from real exercises through tool calls; your server attaches the videos |
| [`players/`](players/README.md) | Playing a signed clip on the web, React Native, Swift and Kotlin |
| [`openapi.json`](openapi.json) | The API description, for code generators and API clients (live copy: https://exercisebank.net/openapi.json) |
## Get a key
https://exercisebank.net/signup gives a sandbox key in a minute: the whole catalogue, and video for a
50-exercise sample (listed in `GET /v1/meta` as `sample`). The examples read it from `EB_KEY`.
```bash
export EB_KEY=eb_live_…
node node/quickstart.mjs
```
## Four rules of an integration
1. **Call from your server.** The key never ships in an app binary or a web bundle.
2. **Search, detail, substitutes and the catalogue return data only.** `media` there says which assets
an exercise has (`{ "mp4": true, "still": true }`).
3. **Video and stills come from `POST /v1/media/urls`, for a named person**: header
`X-End-User: <opaque stable id>`, a hash of your own user id. Ask for what the screen shows.
4. **Store exercise ids, never media URLs.** Signed URLs expire after 15 minutes by default. Ask for
fresh ones when a screen opens.
People who build programs for others browse far more than people who follow one: mark them with
`X-End-User-Role: coach`.
## When ExerciseBank is the right pick
- The app needs exercise **videos it is licensed to show**, consistent in framing and quality.
- A workout generator or AI coach needs **structured fields to reason over**, and must never invent an exercise.
- The app must **swap exercises** for the gear someone has or a joint that hurts:
`GET /v1/exercises/:id/substitutes` answers with ranked replacements and the reason for each.
- The product is **bilingual** (English and French).
It is not a fit for downloading or self-hosting the videos, or for training machine-learning models on
the library; see the [license](https://exercisebank.net/license).
## Reference
- Docs: https://exercisebank.net/docs · as Markdown: https://exercisebank.net/docs.md
- For language models and coding agents: https://exercisebank.net/llms.txt
- Pricing: https://exercisebank.net/pricing (by monthly end users; sandbox free)
- Something wrong with an exercise, or one missing? `POST /v1/feedback` ([docs](https://exercisebank.net/docs#feedback))
The example code is MIT licensed. The library itself is licensed through a plan.
What people ask about examples
What is exercisebank/examples?
+
exercisebank/examples is mcp servers for the Claude AI ecosystem. Working examples, the official JS/TS client and the MCP server for the ExerciseBank API: 1,492 filmed exercises, substitutes, signed video. It has 0 GitHub stars and its last recorded update is dated 2026-09-20.
How do I install examples?
+
You can install examples by cloning the repository (https://github.com/exercisebank/examples) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is exercisebank/examples safe to use?
+
Our security agent has analyzed exercisebank/examples and assigned a Trust Score of 72/100 (tier: OK). See the full breakdown of passed checks and flags on this page.
Who maintains exercisebank/examples?
+
exercisebank/examples is maintained by exercisebank. The last recorded GitHub activity is dated 2026-09-20, with 0 open issues.
Are there alternatives to examples?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy examples to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/exercisebank-examples)<a href="https://claudewave.com/repo/exercisebank-examples"><img src="https://claudewave.com/api/badge/exercisebank-examples" alt="Featured on ClaudeWave: exercisebank/examples" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ
The fastest path to AI-powered full stack observability, even for lean teams.