ExerciseBank

Official registry Search and web

Search 1,492 filmed exercises by muscle, equipment, pattern and joints to avoid; get substitutes.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package exercisebank-mcp
Claude Code
claude mcp add exercisebank -e 'EB_KEY=<your eb_key>' -e 'EB_END_USER=<EB_END_USER>' -- npx -y exercisebank-mcp@0.1.1
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "exercisebank": {
            "command": "npx",
            "args": [
                "-y",
                "exercisebank-mcp@0.1.1"
            ],
            "env": {
                "EB_KEY": "<your eb_key>",
                "EB_END_USER": "<EB_END_USER>"
            }
        }
    }
}

Environment variables

  • EB_KEY required secret Your ExerciseBank API key. Free sandbox key, no card: https://exercisebank.net/signup
  • EB_END_USER Optional. An opaque id for the person at this machine; enables get_media_urls (signed video and still URLs). Counts as an end user on the plan.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. ExerciseBank examples
  2. Get a key
  3. Four rules of an integration
  4. When ExerciseBank is the right pick
  5. Reference

ExerciseBank examples

ExerciseBank 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.

FolderWhat it shows
packages/exercisebank/The official JS/TS client, on npm as exercisebank: search, detail, substitutes, signed media, catalogue sync
packages/exercisebank-mcp/An MCP server, on npm as exercisebank-mcp: Claude, Cursor and other agents search the catalogue directly
node/Search, substitutes and signed media in 25 lines, no dependencies; a daily catalogue sync with ETag
python/The same as a small requests client
ai-workout-generator/Claude builds a workout from real exercises through tool calls; your server attaches the videos
players/Playing a signed clip on the web, React Native, Swift and Kotlin
openapi.jsonThe 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.

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.

Reference

The example code is MIT licensed. The library itself is licensed through a plan.

Frequently asked questions

What is ExerciseBank?

Search 1,492 filmed exercises by muscle, equipment, pattern and joints to avoid; get substitutes.

How do I install ExerciseBank?

It runs on your machine. In Claude Code: claude mcp add exercisebank -e 'EB_KEY=<your eb_key>' -e 'EB_END_USER=<EB_END_USER>' -- npx -y exercisebank-mcp@0.1.1. For other clients, paste the JSON configuration from this page into their MCP settings.

Does ExerciseBank need an API key?

Yes. It expects EB_KEY, which you set in its configuration.

Is ExerciseBank open source?

Its code is public on GitHub, but the repository does not declare a standard license.

Who maintains ExerciseBank?

It is published by exercisebank. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.