MCP Server
What is MCP?
MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools. MyoForge has an MCP server - so you can ask Claude, ChatGPT, or any MCP-compatible assistant to manage your programs and workout history through natural conversation.
For example, you could say "Create a 4-day upper/lower program with linear progression" and the AI will write the ForgeScript code, validate it, and save it to your account.
Requires a premium subscription.
Connecting to MyoForge
The MyoForge MCP server URL is:
https://workout.myoforge.app/mcp
There are two ways to authenticate:
- OAuth 2.1 (default) - On first use, your AI client opens a browser window to sign in with your MyoForge account, then handles token refresh automatically. Best for clients with a built-in connector UI (Claude.ai, ChatGPT).
- API key - Pass a MyoForge API key (the same kind used for the REST API) as a Bearer token. No browser sign-in needed - handy for command-line clients or config-file setups. See Using an API key below.
Below are setup instructions for each major AI platform.
Using an API key
If you'd rather not go through the OAuth browser flow, you can authenticate with an API key instead. This is the same key used by the REST API.
- Open MyoForge and go to Settings
- Tap API Keys
- Tap Create API Key and give it a name
- Copy the key - it starts with
lftsk_
Then send it in the Authorization header when configuring your MCP client:
Authorization: Bearer lftsk_your_key_here
Most clients that let you set custom headers (Claude Code, config-file setups) support this. The per-client sections below show the API-key variant where applicable. Keep the key secret - if you lose it, delete it and create a new one.
Claude.ai (Web)
- Open claude.ai
- Go to Settings -> Connectors
- Click Add custom connector at the bottom
- Paste the URL:
https://workout.myoforge.app/mcp - Click Add
- You'll be redirected to sign in with your MyoForge account
After that, MyoForge tools will be available in your conversations. You can also add it from the chat input - click the Search and tools menu, then Add connectors.
Claude Desktop
Option A: Via Settings UI
- Open Claude Desktop
- Go to Settings -> Connectors
- Click Add custom connector
- Paste the URL:
https://workout.myoforge.app/mcp - Click Add
- You'll be redirected to sign in with your MyoForge account
Option B: Via config file
Claude Desktop doesn't support remote servers directly via claude_desktop_config.json. Use the mcp-remote package as a bridge:
- Click the Settings icon (bottom-left corner)
- Go to the Developer tab
- Click Edit Config - this opens
claude_desktop_config.json - Add the MyoForge server:
{
"mcpServers": {
"myoforge": {
"command": "npx",
"args": ["mcp-remote", "https://workout.myoforge.app/mcp"]
}
}
}
- Save the file and restart Claude Desktop
- On first use, Claude will open your browser to authenticate with MyoForge
To use an API key instead of the OAuth browser flow, pass it as a header via mcp-remote:
{
"mcpServers": {
"myoforge": {
"command": "npx",
"args": [
"mcp-remote",
"https://workout.myoforge.app/mcp",
"--header",
"Authorization: Bearer lftsk_your_key_here"
]
}
}
}
Claude Code
Run this command in your terminal:
claude mcp add myoforge --transport http https://workout.myoforge.app/mcp
That's it. Claude Code will prompt for authentication on first use.
To authenticate with an API key instead of the OAuth browser flow, pass it as a header:
claude mcp add myoforge --transport http https://workout.myoforge.app/mcp \
--header "Authorization: Bearer lftsk_your_key_here"
ChatGPT
ChatGPT calls MCP connections "Apps" (previously "Connectors"). You'll need ChatGPT Plus, Pro, Team, Enterprise, or Edu.
- Open ChatGPT
- Go to Settings -> Apps & Connectors
- Scroll down and enable Developer Mode under Advanced settings
- Go to Settings -> Connectors -> Create
- Fill in:
- Name: MyoForge
- Description: Manage weightlifting programs and workout history
- Connector URL:
https://workout.myoforge.app/mcp
- Click Create
- ChatGPT will verify the connection and show available tools
- On first use, you'll be redirected to sign in with your MyoForge account
Gemini CLI
Gemini CLI supports remote MCP servers via settings.json.
- Open
~/.gemini/settings.json(create it if it doesn't exist) - Add the MyoForge server:
{
"mcpServers": {
"myoforge": {
"httpUrl": "https://workout.myoforge.app/mcp",
"authProviderType": "dynamic_discovery",
"timeout": 30000
}
}
}
- Start a Gemini CLI session
- Run
/mcpto verify the server is connected - On first use, run
/mcp auth myoforgeto authenticate with your MyoForge account
To use an API key instead, drop authProviderType and pass the key as a header:
{
"mcpServers": {
"myoforge": {
"httpUrl": "https://workout.myoforge.app/mcp",
"headers": { "Authorization": "Bearer lftsk_your_key_here" },
"timeout": 30000
}
}
}
Other MCP Clients
Any MCP-compatible client that supports Streamable HTTP transport can connect. Point it at:
https://workout.myoforge.app/mcp
Authenticate either via OAuth 2.1 (dynamic client registration is supported) or by sending an API key in the Authorization: Bearer lftsk_... header.
What Can You Do With It?
Once connected, you can ask the AI to:
- Create programs - describe what you want and it'll write the ForgeScript
- Edit programs - "Add a fourth day focused on arms" or "Change squat progression to 5/3/1"
- Review programs - "Is my program balanced? Am I hitting enough back volume?"
- Log workouts - "I did 3x5 squats at 225lb and 3x8 bench at 155lb today"
- Analyze history - "Show me my last 10 workouts" or "How has my squat progressed?"
- Test progressions - simulate workouts in the playground to verify the logic works
- Manage custom exercises - create, update, or delete exercises not in the built-in list
- Configure gyms and equipment - set up bars, plates, and fixed weights per gym
- Tune per-exercise settings - set your 1RM, weight rounding, equipment, or notes for an exercise
The AI has access to the ForgeScript language reference and built-in program examples, so it can learn the syntax on the fly.
Available Tools
These are the tools the AI assistant can call on your behalf:
Programs
| Tool | What it does |
|---|---|
list_programs |
List all your programs (id, name, active status) |
get_program |
Get a program's full ForgeScript source. Use id=current for the active one |
create_program |
Create a new program from ForgeScript code |
update_program |
Update an existing program's source code |
delete_program |
Delete a program (can't delete the active one) |
Workout History
| Tool | What it does |
|---|---|
get_history |
List workout history records. Supports date filtering and pagination |
get_history_record |
Get a single workout record by ID |
create_history_record |
Log a new workout in ForgeScript Workouts format |
update_history_record |
Update an existing workout record |
delete_history_record |
Delete a workout record |
Custom Exercises
| Tool | What it does |
|---|---|
list_custom_exercises |
List your custom exercises. Supports pagination via limit/cursor |
get_custom_exercise |
Get a single custom exercise by ID |
create_custom_exercise |
Create a custom exercise with name, target/synergist muscles, and types |
update_custom_exercise |
Update an existing custom exercise. Only provided fields change |
delete_custom_exercise |
Delete a custom exercise |
Gyms and Equipment
| Tool | What it does |
|---|---|
list_gyms |
List your gyms (id, name, current flag, equipment count) |
create_gym |
Create a new gym, copying the current gym's equipment |
update_gym |
Rename a gym and/or make it the current one |
delete_gym |
Delete a gym (can't delete the last one) |
list_equipment |
List a gym's equipment, including soft-deleted ones |
get_equipment |
Get a single equipment's full config (bar, plates, fixed weights, etc.) |
update_equipment |
Update equipment config; set isDeleted to hide/restore it |
create_custom_equipment |
Create a new custom equipment in a gym |
Exercise Settings
| Tool | What it does |
|---|---|
list_exercise_data |
List per-exercise customizations (1RM, rounding, equipment overrides, notes, muscles, unilateral) |
get_exercise_data |
Get the stored customizations for one exercise key (e.g. squat_barbell) |
set_exercise_data |
Set/upsert per-exercise settings; pass null for a field to clear it |
delete_exercise_data |
Clear all stored customizations for an exercise key |
Measurements
| Tool | What it does |
|---|---|
list_measurements |
Overview of tracked body measurements (bodyweight, body parts, bodyfat): count + latest value per key |
get_measurement |
Get the recorded history for one key (e.g. weight, chest, bodyfat), newest-first, paginated |
add_measurement |
Record a new value with a unit suffix (e.g. 180lb, 37cm, 18%); timestamp defaults to now |
update_measurement |
Change the reading at a given timestamp (the timestamp itself is fixed — re-date via delete + add) |
delete_measurement |
Delete a single recorded value |
Testing and Analysis
| Tool | What it does |
|---|---|
run_playground |
Simulate a workout - complete sets, run progressions, verify logic works |
get_program_stats |
Analyze a program: duration per day, weekly volume per muscle group, strength vs hypertrophy split |
Reference (No Auth Required)
These tools don't need authentication - the AI can call them anytime:
| Tool | What it does |
|---|---|
get_forgescript_reference |
ForgeScript language reference - syntax, progressions, templates |
get_forgescript_examples |
Complete program examples (5/3/1, GZCLP, PPL, etc.) |
get_liftohistory_reference |
ForgeScript Workouts format reference for workout records |
list_exercises |
All built-in exercise names and equipment variants |
list_builtin_programs |
List of built-in programs available in the app |
get_builtin_program |
Full source of a built-in program - great for learning ForgeScript |
Example Conversations
Creating a program:
"Create a 3-day full body program for a beginner. Linear progression, compound lifts only. Start with light weights."
The AI will read the ForgeScript reference, write the program, test it in the playground, and save it to your account.
Analyzing your training:
"Pull my last month of workouts and tell me if I'm progressing on squat."
The AI fetches your history, looks at the weights and reps over time, and gives you feedback.
Tweaking a program:
"My current program doesn't have enough back work. Add pull-ups and barbell rows."
The AI reads your current program, modifies the ForgeScript to add the exercises with appropriate progression, and saves the update.
Tips
- The AI should read
get_forgescript_referencebefore writing any program. If it doesn't, remind it. - Use
run_playgroundto test before saving. Catches syntax errors and lets you verify progressions work. get_program_statsis useful for checking program balance - volume per muscle group, session duration, etc.- Built-in programs (
list_builtin_programs+get_builtin_program) are great examples for the AI to learn from.
REST API
If you want direct programmatic access instead of going through an AI assistant, MyoForge also has a REST API with the same capabilities. Generate an API key in Settings and make HTTP requests directly.