---
title: ToolRouter — Tool Detail
description: Detailed documentation for a ToolRouter tool including skills, parameters, and examples.
url: https://toolrouter.com/tools/workout-planner
---
# Workout Planner

Searchable database of 1300+ exercises with muscles worked, equipment needed, and step-by-step instructions. Filter by body part, target muscle, or equipment to build workout routines for any fitness level. For fitness apps, personal training, and rehab planning.

- **Version:** 0.02
- **Categories:** data

## Skills (9)

### Search Exercises (`search_exercises`)

Find exercises by name when you already know what you are looking for, like "bench press" or "squat". Good for checking form instructions or finding variations.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `name` | string | Yes | Exercise name to search for (partial match supported) |
| `limit` | integer | No | Maximum number of results to return (default 10) [default: 10] |
| `offset` | integer | No | Number of results to skip for pagination (default 0) [default: 0] |

**Returns:** Matching exercises with muscles worked, equipment needed, and how to do them

**Examples:**

*What bench press variations are there?:*

```json
{
  "name": "bench press"
}
```

*Show me different squat exercises:*

```json
{
  "name": "squat",
  "limit": 5
}
```

### Get Exercise (`get_exercise`)

Get the full breakdown for a specific exercise, including which muscles it works and step-by-step instructions on how to perform it.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | string | Yes | Unique exercise ID (e.g. "0001") |

**Returns:** Full exercise breakdown with target muscles, equipment, and instructions

**Examples:**

*How do I do exercise 0001?:*

```json
{
  "id": "0001"
}
```

*Show me the details for this exercise:*

```json
{
  "id": "0025"
}
```

### Browse Exercises (`browse_exercises`)

Browse the full exercise library with pagination. Use this when you want to explore what is available without a specific search in mind.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return (default 10) [default: 10] |
| `offset` | integer | No | Number of results to skip for pagination (default 0) [default: 0] |

**Returns:** A page of exercises from the full library

**Examples:**

*Show me some exercises to browse:*

```json
{}
```

*What else is in the library? Show page 2:*

```json
{
  "offset": 10,
  "limit": 10
}
```

### Exercises by Body Part (`exercises_by_body_part`)

Find exercises for a specific body part like chest, back, or legs. Use list_body_parts first if you are not sure which values are valid.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `body_part` | string | Yes | Body part to filter by (e.g. "chest", "back", "upper legs") |
| `limit` | integer | No | Maximum number of results to return (default 10) [default: 10] |
| `offset` | integer | No | Number of results to skip for pagination (default 0) [default: 0] |

**Returns:** Exercises that work the requested body part with full details

**Examples:**

*What exercises can I do for chest?:*

```json
{
  "body_part": "chest"
}
```

*Give me some back exercises:*

```json
{
  "body_part": "back",
  "limit": 5
}
```

### Exercises by Target Muscle (`exercises_by_target_muscle`)

Find exercises that isolate a specific muscle like biceps, glutes, or abs. Use list_target_muscles first if you are not sure which values are valid.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `target` | string | Yes | Target muscle to filter by (e.g. "biceps", "glutes", "abs") |
| `limit` | integer | No | Maximum number of results to return (default 10) [default: 10] |
| `offset` | integer | No | Number of results to skip for pagination (default 0) [default: 0] |

**Returns:** Exercises that target the requested muscle with full details

**Examples:**

*What are the best exercises for biceps?:*

```json
{
  "target": "biceps"
}
```

*I want to work my glutes:*

```json
{
  "target": "glutes",
  "limit": 5
}
```

### Exercises by Equipment (`exercises_by_equipment`)

Find exercises you can do with specific equipment like dumbbells, a barbell, or just body weight. Use list_equipment first if you are not sure which values are valid.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `equipment` | string | Yes | Equipment type to filter by (e.g. "dumbbell", "barbell", "body weight") |
| `limit` | integer | No | Maximum number of results to return (default 10) [default: 10] |
| `offset` | integer | No | Number of results to skip for pagination (default 0) [default: 0] |

**Returns:** Exercises you can do with the specified equipment

**Examples:**

*What can I do with dumbbells?:*

```json
{
  "equipment": "dumbbell"
}
```

*I only have my body weight, what exercises are there?:*

```json
{
  "equipment": "body weight",
  "limit": 5
}
```

### List Body Parts (`list_body_parts`)

See all the body part categories you can filter by. Run this first if you are unsure what to pass to exercises_by_body_part.

**Returns:** All body part categories you can use to filter exercises

**Examples:**

*What body parts can I filter by?:*

```json
{}
```

### List Target Muscles (`list_target_muscles`)

See all the target muscle categories you can filter by. Run this first if you are unsure what to pass to exercises_by_target_muscle.

**Returns:** All target muscle categories you can use to filter exercises

**Examples:**

*What muscles can I search by?:*

```json
{}
```

### List Equipment (`list_equipment`)

See all the equipment types you can filter by. Run this first if you are unsure what to pass to exercises_by_equipment.

**Returns:** All equipment types you can use to filter exercises

**Examples:**

*What equipment options can I filter by?:*

```json
{}
```

## Quick Start

```bash
# Via CLI
TOOLROUTER_API_KEY=tr_live_xxx npx -y toolrouter-mcp call workout-planner search_exercises --name bench press

# Via REST API
curl -H "Authorization: Bearer tr_live_xxx" \
     -d '{"tool":"workout-planner","skill":"search_exercises","input":{"name":"bench press"}}' \
     https://api.toolrouter.com/v1/tools/call
```

## Frequently Asked Questions

### Can I find exercises by name?

Yes. `search_exercises` does a partial match on the exercise name, which makes it easy to find variations like bench press or squat without knowing the exact ID.

### How do I get full instructions for one exercise?

Use `get_exercise` with the exercise ID. It returns the target muscles, equipment, and step-by-step instructions for doing the movement properly.

### Can I filter by body part, target muscle, or equipment?

Yes. Use the body part and target muscle filters for the muscle group you want, and `body weight` is treated as the no-equipment option.

### How do I find the valid filter values first?

Use `list_body_parts`, `list_target_muscles`, and `list_equipment` to browse the allowed values before you build a workout plan or search query.

---

## Get Started with ToolRouter

**Already connected?** Call any tool with `use_tool({ tool, skill, input })`. Browse tools with `discover` or visit https://toolrouter.com/llms-full.txt

**New to ToolRouter?** Connect with one command (no API key needed — auto-provisions on first use):

```bash
# MCP (Claude Code, Codex CLI)
claude mcp add toolrouter -- npx -y toolrouter-mcp

# MCP (Cursor, Windsurf, Cline, VS Code, Gemini CLI, Claude Desktop)
{"mcpServers":{"toolrouter":{"command":"npx","args":["-y","toolrouter-mcp"]}}}

# Claude Chat / Claude Cowork / Claude Mobile — add as a connector:
# Settings → Connectors → Add custom connector → URL: https://api.toolrouter.com/mcp

# ChatGPT — add as an app:
# Settings → Apps → Advanced settings → enable Developer mode → Create app → MCP Server URL: https://api.toolrouter.com/mcp

# CLI (works instantly, no restart needed)
npx -y toolrouter-mcp tools                    # browse all tools
npx -y toolrouter-mcp search "seo"             # search by keyword
npx -y toolrouter-mcp call seo analyze_page --url https://example.com
```

Free tools work immediately. For paid tools, visit https://toolrouter.com/claim to add credits.

All platforms: https://toolrouter.com/connect | Full catalog: https://toolrouter.com/llms-full.txt | Docs: https://toolrouter.com/docs