NexRex

Running training and coaching: activities, plans, recovery, rosters and plan drafts.

Hosted MCP Server

npx add-mcp 'https://mcp.nexrex.ai/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Connect NexRex to your AI

Ask ChatGPT, Claude, Claude Code or Codex about your training. Sign in with your NexRex account to connect.

Connect NexRex to the AI app you already use, then ask it about your runs, your plan and your recovery. You connect by signing in with your NexRex account. There's no key or token to copy.

NexRex connects through MCP (Model Context Protocol), the standard these apps use to reach other services. Every app uses the same address:

https://mcp.nexrex.ai/mcp

You can also copy it from the Connect NexRex to your AI card in Settings → Integrations on the web.

[!NOTE]

This page connects your own account to an AI app. To build an integration with an organization key, see the Developer API.

What your AI can do

Once connected, your AI app can:

  • Read your profile, activities, training plan, nutrition log, recovery data and race predictions
  • Read the athletes and groups you coach, if you're a coach
  • Analyze performance for one athlete or a whole group
  • Draft training plans and suggest workout changes
  • Recommend a plan from the NexRex catalog and enroll an athlete in it
  • Assign group plans to groups you coach

It sees only what your NexRex account can see. For coaches, it follows each athlete's sharing settings. What NexRex sends to your AI app is then handled under that app's own terms; see the NexRex Privacy Policy for how NexRex handles your data.

[!WARNING]

Your AI can't change your calendar on its own. It saves a plan, applies a change, enrolls an athlete or assigns a group plan only after you explicitly tell it to.

Connect ChatGPT

You add NexRex from ChatGPT's Plugins page. ChatGPT renames its menus often, so if yours look different, follow OpenAI's guide to connecting a custom MCP server. Your ChatGPT plan or workspace admin may limit custom MCP servers.

1. Add a custom MCP server

Open chatgpt.com/plugins, select +, then Add custom MCP server.

2. Enter the NexRex address

Name it NexRex. Under Connection, paste https://mcp.nexrex.ai/mcp. Keep the sign-in (OAuth) option ChatGPT detects. You don't need a client ID or secret.

3. Create the plugin

Read ChatGPT's warning, select I understand and want to continue, then Create as a plugin.

4. Sign in to NexRex

Install the plugin. ChatGPT opens NexRex in your browser. Sign in, check which app is asking, and select Allow access.

5. Ask about your training

Start a new chat, type @, choose NexRex, and ask something like "How did my runs go this week?"

Connect Claude

These steps are for Claude Free, Pro and Max plans. Free plans can add one custom connector. If the menus look different, see Anthropic's guide to custom connectors.

1. Add a custom connector

In Claude, open Customize, then Connectors. Select + Add, then Add custom connector.

2. Enter the NexRex address

Name it NexRex, paste https://mcp.nexrex.ai/mcp, and select Continue. Claude detects how to sign in. Keep Sign in now and Use Claude's published identity (Recommended), then select Add.

3. Sign in to NexRex

Claude opens NexRex in your browser. Sign in, check which app is asking, and select Allow access.

4. Turn it on in a chat

In a chat, select +, then Connectors, and switch NexRex on.

On Team and Enterprise plans, an Owner adds NexRex once under Organization settings, then Connectors. Each member then opens Customize, then Connectors, and selects Connect next to NexRex.

Connect Claude Code

In your terminal, run:

claude mcp add --transport http nexrex https://mcp.nexrex.ai/mcp

Then sign in:

claude mcp login nexrex

Your browser opens NexRex. Sign in and select Allow access. You can also sign in from inside Claude Code: run /mcp, choose nexrex and follow the prompts.

Connect Codex

In your terminal, run:

codex mcp add nexrex --url https://mcp.nexrex.ai/mcp

Codex opens NexRex in your browser. Sign in and select Allow access. If the browser doesn't open, or Codex asks you to sign in again later, run:

codex mcp login nexrex

Other AI apps

Other MCP apps can connect to the same address if they support sign-in (OAuth). NexRex doesn't issue tokens to paste, so an app that only accepts a token can't connect.

See and end your connections

On the web, go to Settings → Integrations. On the Connect NexRex to your AI card, Connected AI apps lists each app you've connected, when you connected it and when it last used NexRex.

Select Disconnect to end a connection. The app loses access right away. To use it again, connect it again.

Removing NexRex inside your AI app stops that app from using it. To end the connection on the NexRex side as well, disconnect it in Settings → Integrations.

How long a connection lasts

A connection stays active while you use it. If an app doesn't use NexRex for 30 days, the connection ends, and you sign in again the next time you use it.

NexRex also ends a connection if the app's sign-in is used in an unexpected way, such as from two places at once. Connect again to continue.

Troubleshooting

NexRex stopped working after October 21, 2026

On October 21, 2026, NexRex moved every AI connection to sign-in. If you connected before then, connect again once:

  • ChatGPT or Claude: remove NexRex, then add it again with the steps above.
  • Claude Code: run claude mcp login nexrex.
  • Codex: run codex mcp login nexrex.

If you set NexRex up with a token, for example with --header in Claude Code or http_headers in Codex, remove it first with claude mcp remove nexrex or codex mcp remove nexrex. Then add it again with the command for your app.

Your AI app asks you to sign in again

The connection ended. It went unused for 30 days, someone disconnected it in NexRex, or NexRex ended it to protect your account. Sign in again to reconnect.

Codex keeps retrying after the connection ended

If Codex repeatedly reports invalid_grant, clear its saved NexRex sign-in and reconnect:

codex mcp logout nexrex
codex mcp login nexrex

Use the server name you configured if it differs from nexrex. Complete the NexRex sign-in and select Allow access, then start a new Codex session. Retrying an ended connection does not restore it; reconnecting creates a new connection. You do not need to sign out of your Codex account.

Your AI shows the wrong account's data

The NexRex sign-in page shows which account you're connecting, under Connecting as. Disconnect the app in Settings → Integrations, then connect again while signed in to the right account.

"This connection could not be completed"

The sign-in was interrupted or took too long. Go back to your AI app and start connecting again.

Working with specific tools

Your AI app picks NexRex tools on its own. You can also ask for one by name when you know what you need.

Find your own athlete data

The get_current_user tool returns the account you connected:

{
  "user_id": "usr_8f2k...",
  "athlete_id": "usr_8f2k...",
  "email": "you@example.com",
  "display_name": "Jamie Chen",
  "roles": ["coach"],
  "org_id": "org_x1y2...",
  "profile_available": true
}

[!TIP]

For coaches: your own account may not be on your athlete roster, so a roster search can miss you. Ask your AI to call get_current_user first, then use the returned athlete_id to fetch your own profile, training plan and activities.

Find and enroll in a catalog plan

Use these tools when you want your AI to match you, or an athlete you coach, to an existing plan in the NexRex catalog instead of drafting a custom one.

ToolTypeWhat it does
recommend_training_plansRead-onlyRanks the catalog plans you can view for an athlete
enroll_training_planWrite (requires confirmation)Enrolls the athlete in one catalog plan

recommend_training_plans always gives the same result for the same inputs. NexRex scores each plan's distance, goal, length, weekly volume, level and days per week against the athlete's recent training, race prediction and primary race. It doesn't change any data. These optional inputs narrow the match:

  • distance: full, half, hyrox, start or none (marathon and half marathon also work)
  • goal: finish, time_target, base_building or maintenance
  • race_date: YYYY-MM-DD
  • days_per_week: 1 to 7
  • target_time: H:MM:SS
  • top_k: how many candidates to return, 1 to 10 (default 3)

The result lists candidates with their reasons and gaps, plus these flags:

  • missing_inputs: details your AI should ask you about before recommending again
  • health_hold: true when injury or recovery signals say not to push. Your AI doesn't recommend or enroll a plan. It suggests recovery or checking in with your coach instead.
  • no_good_match: true when no catalog plan fits. Only then does your AI offer to draft a custom plan with create_training_plan.

enroll_training_plan enrolls the athlete in a catalog plan from a start_date (YYYY-MM-DD). NexRex schedules every workout onto the athlete's calendar and makes it their primary plan. Optional inputs are training_days_per_week (2 to 7) and long_run_preference (saturday, sunday or weekend). If the athlete is already enrolled, NexRex returns the existing plan_instance_id with already_enrolled: true and doesn't enroll them again.

{
  "athlete_id": "usr_8f2k...",
  "training_plan_id": "plan_half_12w...",
  "plan_instance_id": "pi_3c9d...",
  "already_enrolled": false,
  "start_date": "2026-11-02"
}

Your AI calls enroll_training_plan only after the athlete explicitly confirms both the plan and the start date.

The plan_recommendation prompt

NexRex also provides a plan_recommendation prompt, titled Recommend a training plan in apps that list prompts. It walks your AI through the whole flow:

  1. Identify the athlete with get_current_user.
  2. Review the athlete's training status, race prediction and profile.
  3. Call recommend_training_plans, and ask only for the missing_inputs it returns.
  4. Stop if health_hold is true.
  5. Explain the top candidate and its gaps in plain language.
  6. Offer create_training_plan only when no_good_match is true.
  7. Call enroll_training_plan once, after you confirm the plan and start date.

You can pass your request as the optional athlete_request argument, for example: "Find me a half marathon plan for a race on March 15, running 4 days a week."

Assign group plans (coaches)

If you coach groups, your AI can view and assign group plans.

  • list_group_plans (read-only) lists a group's plans with their plan instance ID, name, template, start date, weeks, status, and member and sub-group counts. It returns active plans by default. Pass an empty status to list all of them.
  • assign_group_plan assigns a saved group plan template to a group and enrolls its members. It needs group_id, training_plan_id and start_date (YYYY-MM-DD). Optional inputs are sub_groups, assignments and plan_name.

By default, assign_group_plan assigns every current group member and uses the template's sub-groups. When the plan has more than one sub-group, assignments is required: it maps each member's user ID to a sub-group name. Every assignee must be a current member of the group. You need a coach role in the group's organization, and your organization must have group training plans.

NexRex queues the workout scheduling for members. The result lists the targeted member_user_ids with member_scheduling: "queued". It doesn't report each member's result.

Your AI calls assign_group_plan only after you explicitly confirm the template, start date and member assignments.

A typical coach flow:

  1. create_training_plan with a group_id drafts the plan.
  2. save_training_plan with save_mode: "template_only" saves it as a group plan template.
  3. assign_group_plan assigns the saved training_plan_id.
  4. list_group_plans and get_group_plan show the assigned plan.
  5. propose_plan_revision with scope: "group", then approve_plan_revision, changes it later.

This documentation is built and hosted on Mintlify, a developer documentation platform.