# ExerciseBank

An MCP server for the ExerciseBank catalogue. Your agent picks exercises by muscle, equipment and joints to spare, then finds ranked replacements. Useful when building a fitness app.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: exercisebank
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/exercisebank/examples/tree/HEAD/packages/exercisebank-mcp
- Updated: 2026-09-20
- HTML: https://affpapa.org/en/nevibecode/mcp/exercisebank

## What it does

The server puts the ExerciseBank API within reach of your coding agent. Its tools cover the filter vocabulary (`get_vocabulary`), a filtered search (`search_exercises`) with options for muscle, available gear, movement pattern, difficulty range, joints to skip, impact and one-sided moves, a full record lookup (`get_exercise`) and ranked substitutes with a score and a reason (`get_substitutes`). A fifth tool, `get_media_urls`, returns signed video and image links.

You need a sandbox key first. It is free, needs no card, comes from `https://exercisebank.net/signup` and goes into `EB_KEY`. Node 18 or later is required; the server sits on your machine and talks over stdio. Signed media only works once `EB_END_USER` is defined, since each video is signed for one named person, and the links expire after 15 minutes.

With a sandbox key the media covers a sample of 50 exercises; the whole catalogue requires a paid plan. This server is meant for your own desk. A shipped product should call the API from its own backend, pass its own user ids and use the npm package `exercisebank`. A reference for language models lives at `https://exercisebank.net/llms.txt`.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `EB_KEY`, `EB_END_USER` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env EB_KEY=<EB_KEY> --env EB_END_USER=<EB_END_USER> --transport stdio exercisebank-mcp -- npx -y exercisebank-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add exercisebank-mcp --env EB_KEY=<EB_KEY> --env EB_END_USER=<EB_END_USER> -- npx -y exercisebank-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "exercisebank-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "exercisebank-mcp"
            ],
            "env": {
                "EB_KEY": "<EB_KEY>",
                "EB_END_USER": "<EB_END_USER>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "exercisebank-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "exercisebank-mcp"
            ],
            "env": {
                "EB_KEY": "<EB_KEY>",
                "EB_END_USER": "<EB_END_USER>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e EB_KEY=<EB_KEY> -e EB_END_USER=<EB_END_USER> exercisebank-mcp npx -y exercisebank-mcp
```
Replace <…> with your own values

## When to use it
- pick exercises that match the gear someone owns
- keep movements off a plan when certain joints must be spared
- swap one exercise for another with a reasoned ranking
- look up valid filter values before writing a query
- prototype a workout generator without writing code first

## Example prompts
- List the ExerciseBank vocabulary and the 50 sandbox exercises
- Find dumbbell chest exercises, no knee loading, difficulty not above medium
- What can replace a barbell squat for someone without a barbell?

## Similar
- [Garmin Connect](https://affpapa.org/en/nevibecode/mcp/garmin-connect.md) — MCP server · ★ 37
- [Coach Watts](https://affpapa.org/en/nevibecode/mcp/coach-watts.md) — MCP server · ★ 104
- [fitness-coach](https://affpapa.org/en/nevibecode/skills/fitness-coach.md) — skill · 822 installs
- [workout-program-designer](https://affpapa.org/en/nevibecode/skills/workout-program-designer.md) — skill · 664 installs
- [fitness-wellness](https://affpapa.org/en/nevibecode/skills/fitness-wellness.md) — skill · 663 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
