Your assistant, connected to your team.
Connect Track Tools Pro to ChatGPT. Ask questions about your team and approve real coaching work using your roster, workouts, logs, recruits, and notes.
Powered by MCP (Model Context Protocol), the secure standard that lets supported apps use approved tools and data. Use ChatGPT Plugins in developer mode while the public listing is in review.
Animated demo: a coach types a plain-English request to an assistant, the assistant runs real Track Tools Pro tools, and a miniature Track Tools Pro screen updates. Three scenarios play in a loop. Plan a week: the assistant drafts seven days of training for twelve athletes and assigns the workouts after the coach approves. Clean the library: the assistant finds 63 workouts, archives 21 that were never assigned, and merges duplicates after approval. Import a roster: the assistant reads a school roster page, skips three athletes already on the roster, and adds 21 with events and PRs after approval. The conversation is simulated; every command shown is a real tool the connection supports, and write actions run only after the coach approves.
Simulated conversation. Real Track Tools Pro tools — every command shown is one the connection actually supports.
Works with
- ChatGPT
- Claude
- Codex
- Cursor
- Windsurf
- GitHub Copilot
ChatGPT on the web — developer mode connection · Streamable HTTP MCP with secure sign-in · Other supported apps: Codex · Cursor · Windsurf · VS Code
Open ChatGPT Plugins
Turn on Developer mode in ChatGPT settings, then open Plugins to add Track Tools Pro while the public listing is in review.
Connect and sign in
Add the Track Tools Pro MCP URL and complete the normal coach sign-in. No passwords in chat.
Approve real work
The assistant reads first. For each write, review the exact action on Track Tools Pro's approval page before it runs.
Analyze a season, not a screenshot
Ask the assistant to review an athlete's full workout history, spot taper trends, and compare what happened before PRs or poor races.
Find the work that is slipping
See which athletes have stopped logging, which assignments were skipped, and which groups are drifting from the plan.
Draft better next steps
Have it draft a 7-day training week from your roster, groups, and recent training logs — and show you the plan before anything is created.
Same coach login. Same team scope.
The assistant connects through your Track Tools Pro account, so it can reach exactly what you can see and nothing more. Team boundaries and coach permissions are enforced by Track Tools Pro's servers — not by trusting the assistant.
What the setup prompt asks the agent to do
If your app can't make this connection yet, the setup prompt tells you up front — before anything touches your team.
Setup prompt
Copy this prompt into your supported app to get started.
You are helping me connect Track Tools Pro to an assistant using MCP.
Track Tools Pro is a coaching platform for track and field teams that helps coaches plan training, log whole groups at practice, manage rosters and recruiting, and spot workload trends before the next session. It brings roster, workout, training log, recruiting, files, and team workflow data into one place so coaches can spend less time copying information between tools.
IMPORTANT CONTEXT:
The person using this prompt may be new to MCP, ChatGPT Plugins, OAuth, or assistants.
Your job is to guide them patiently, in plain English, one step at a time.
Do not assume technical knowledge.
Do not overwhelm them.
Do not dump all technical instructions immediately unless you are already running inside an MCP-capable agent and can actually perform the setup.
Your goal is to help the user reach the “light at the end of the tunnel”:
Track Tools Pro connected to an assistant that can securely help with their real team, roster, workouts, training logs, recruits, and coaching workflows.
Track Tools Pro MCP lets an assistant securely work with my team data, roster, workouts, recruits, training logs, and coach workflows directly from Track Tools Pro instead of making me copy and paste data back and forth.
Track Tools Pro now supports OAuth for MCP. In plain English, OAuth means the user signs in through Track Tools Pro in a browser, approves the connection, and the MCP-capable app receives a secure login token automatically. The user should not have to copy or paste a token during the normal setup path.
Start by figuring out what kind of app or chat environment you are running in.
There are two possible situations:
1. You are running inside an MCP-capable agent or MCP-compatible app.
2. This chat has no MCP or Plugins connection available. ChatGPT on the web may support Plugins through Developer mode, depending on account and workspace policy.
If you are already MCP-capable, skip the beginner explanation and proceed with setup.
If you are not MCP-capable, become a friendly guide. Explain what is happening, why MCP matters, what app they should use next, and how to move forward.
Do not make the user feel dumb. Assume this is new to them.
Use language like:
“You’re not doing anything wrong. This chat just may not be the kind of app that can install tools directly.”
or:
“We’re close. The missing piece is that Track Tools Pro needs to be connected inside an app that supports MCP.”
Do not say only “paste this somewhere else” and stop. Help the user understand where to paste it, why, and what will happen next.
---
FIRST STEP: CHECK WHETHER YOU ARE MCP-CAPABLE
Determine whether you are running inside an agent that can install or configure MCP servers.
If you can create or configure MCP servers/connectors, persistent tools, remote HTTP MCP servers, OAuth sign-in flows, or custom Authorization headers, then you are MCP-capable.
If you are in ChatGPT on the web, check Settings > Security and login > Developer mode and ChatGPT Plugins before concluding that a connection is unavailable.
---
IF THIS CHAT CANNOT CONNECT TO PLUGINS OR MCP
Explain this clearly:
“Track Tools Pro uses MCP, which stands for Model Context Protocol. MCP is a secure way for an assistant to connect to trusted tools and data sources, like Track Tools Pro. Once connected, the assistant can help with real coaching work using your actual team data instead of giving generic advice.”
Then explain what Track Tools Pro MCP will eventually allow the assistant to help with:
- See who is on your roster.
- Review recent workouts and training logs.
- Analyze athlete training trends.
- Draft a week of training.
- Help manage recruits and follow-ups.
- Create or update Track Tools Pro records after you approve the action.
- Answer questions using your actual team data instead of generic examples.
Then explain:
“This chat does not currently have the Track Tools Pro connection. We can add it through ChatGPT Plugins if Developer mode is available for your account.”
Then guide the user toward an MCP-compatible app.
Say:
“To finish the setup, use ChatGPT Plugins or another app that supports remote MCP with OAuth. MCP is the bridge to your Track Tools Pro data.”
Also explain OAuth simply:
“When you connect Track Tools Pro in an MCP-capable app, it should use OAuth. That means it opens Track Tools Pro, you sign in normally, and the app gets permission without you copying a private token into chat.”
Then ask:
“Which path sounds closest to you?”
Offer these choices in simple terms:
1. “I want the easiest recommended option.”
2. “I already use ChatGPT on the web.”
3. “I already use Claude Code.”
4. “I already use OpenAI Codex.”
5. “I already use Cursor.”
6. “I already use Windsurf or Cascade.”
7. “I already use VS Code.”
8. “I have no idea. Help me pick.”
If the user has no idea what to choose, recommend ChatGPT Plugins on the web as the first path. Developer mode availability depends on account and workspace policy.
Explain ChatGPT Plugins in plain English:
“ChatGPT Plugins can connect to Track Tools Pro through MCP. Once connected, ChatGPT can use your approved team data instead of making you copy it into chat.”
Give the user the ChatGPT Plugins page:
https://chatgpt.com/plugins
Then explain Claude Code as the more technical backup path:
“Claude Code can also connect through MCP, but its setup is more developer-oriented.”
Also mention:
“Other apps may work too, including Claude Code, OpenAI Codex, Cursor, Windsurf/Cascade, and VS Code, if they support remote HTTP MCP with OAuth.”
Then help the user take the next step.
Say:
“Once you are inside one of those MCP-capable apps, paste this same Track Tools Pro setup prompt there. That app should be able to either install the connection directly or walk you through the final setup.”
Important:
Do not ask the user to paste an access token into a browser chat.
Do not ask the user to share secrets, tokens, screenshots of tokens, or private login URLs.
If this chat cannot connect through Plugins or MCP, tell the user:
“Do not paste your Track Tools Pro access token here. Use the client’s OAuth sign-in.”
If the user wants step-by-step help choosing an MCP app, provide it in beginner-friendly language.
Use one question at a time.
---
IF YOU ARE AN MCP-CAPABLE AGENT
If you are running inside an MCP-capable app, install Track Tools Pro as a persistent MCP server/connector named:
Track Tools Pro
Use this MCP endpoint:
https://api.tracktoolspro.com/mcp
Important setup rules:
- The MCP endpoint is POST-only.
- Do not use GET /mcp as a connection test.
- Do not build a local dashboard.
- Do not build a backend proxy.
- Track Tools Pro supports native OAuth discovery for MCP.
- Use the MCP client’s built-in OAuth sign-in first.
- Explain OAuth in plain English before asking the user to sign in: OAuth is the normal “Sign in with Track Tools Pro” flow that lets the MCP client connect without exposing a password or making the user paste a private token.
- OAuth discovery endpoints are available at:
- `https://api.tracktoolspro.com/.well-known/oauth-protected-resource`
- `https://api.tracktoolspro.com/.well-known/oauth-authorization-server`
- Dynamic client registration is available at:
- `POST https://api.tracktoolspro.com/oauth/register`
- Token exchange is available at:
- `POST https://api.tracktoolspro.com/oauth/token`
- If native OAuth is unavailable, use another client that supports it; do not ask the coach to copy a token.
What should happen with OAuth:
1. The MCP client adds Track Tools Pro using `https://api.tracktoolspro.com/mcp`.
2. The client discovers Track Tools Pro OAuth metadata.
3. The client opens a browser sign-in page for Track Tools Pro.
4. The user signs in normally.
5. Track Tools Pro redirects back to the MCP client.
6. The MCP client stores the access token securely.
7. The agent can then call Track Tools Pro MCP tools using the user’s normal coach permissions.
Do not ask the user to paste an access token during this normal OAuth path.
---
CHATGPT WEB PLUGINS SETUP
Open ChatGPT Settings > Security and login > Developer mode, then open https://chatgpt.com/plugins and add a connection named Track Tools Pro with URL https://api.tracktoolspro.com/mcp. ChatGPT discovers the tools and asks the coach to sign in through Track Tools Pro. If Developer mode is unavailable, explain that account or workspace policy may limit access.
When a write needs more permission, complete the requested OAuth scope upgrade. The assistant must show the exact proposed change. A write tool may return a Track Tools Pro approval link. Give that link to the coach, wait while they review and approve the action in their browser, then retry the identical tool call. Never ask for an approval token in chat.
---
CLAUDE CODE SETUP
For Claude Code, add the MCP server as a user-scoped HTTP server.
If a broken Track Tools Pro server already exists, remove it first:
claude mcp remove track-tools-pro
Then add it:
claude mcp add --scope user --transport http track-tools-pro https://api.tracktoolspro.com/mcp
If Claude Code shows “Needs authentication”, use its native OAuth sign-in. In Claude Code this may be available through `/mcp` or:
claude mcp login track-tools-pro
If native OAuth fails, diagnose the client support and use a client that supports remote HTTP MCP OAuth.
---
GENERIC MCP CLIENT SETUP
If the user is using Cursor, Windsurf/Cascade, VS Code with MCP support, OpenAI Codex, or another MCP client, first configure a persistent remote HTTP MCP server with native OAuth authentication if that client supports it.
Name:
Track Tools Pro
Transport:
HTTP
Endpoint:
https://api.tracktoolspro.com/mcp
Authentication:
OAuth / built-in sign-in / browser sign-in, if available.
The MCP client may discover OAuth through:
https://api.tracktoolspro.com/.well-known/oauth-protected-resource
and:
https://api.tracktoolspro.com/.well-known/oauth-authorization-server
Important:
The client should support remote HTTP MCP servers and OAuth. If it does not, recommend a compatible client.
If the client only supports local command-based MCP servers, explain that this setup needs a client that supports remote HTTP MCP with OAuth.
---
MANUAL MCP INITIALIZATION IF NEEDED
If you need to initialize the MCP connection manually, use JSON-RPC over HTTP POST.
Do not use GET.
POST to:
https://api.tracktoolspro.com/mcp
Headers:
Content-Type: application/json
Authorization: Bearer {TRACK_TOOLS_ACCESS_TOKEN}
The MCP client should handle the Authorization header automatically after OAuth sign-in.
Initialize body:
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": {
"name": "track-tools-pro-local-client",
"version": "1.0.0"
}
}
}
Then list tools with:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}
Then load the application model with:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "system_get_context",
"arguments": {}
}
}
Then verify authentication with:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "auth_whoami",
"arguments": {}
}
}
---
AFTER INSTALLATION: VERIFY THE CONNECTION
After Track Tools Pro is installed, verify the connection using read-only checks first.
Do not create or change any Track Tools Pro records during verification.
Perform these steps:
1. List the available Track Tools Pro tools.
2. Call `system_get_context` to load the safe application model, canonical vocabulary, operating rules, and available resources.
3. Call `auth_whoami` and tell me the team name you are connected to.
4. Call `roster_list_athletes` and tell me how many active athletes are on the roster.
5. Call `workouts_list` with:
{
"mineOnly": true
}
6. Review recent workout names and workout types.
7. Based on the workouts I have written, make a reasonable guess about what group I coach.
After verification, reply in plain English:
“Track Tools Pro is connected. I’m logged into {team name}. I can see {athlete count} active athletes. Based on your workouts and roster context, you appear to coach {group guess}.”
---
SESSION LIFECYCLE — RUN THIS AT THE START OF EVERY SESSION
Track Tools Pro sessions follow a simple loop: preflight, then act, then store. Run it every time this connection is loaded, not only the first time. On the very first session, the verification steps above are part of preflight.
1. PREFLIGHT (orient before doing anything)
Before exploring on your own, pull the canonical references so you start from solid ground instead of guessing:
- Call `system_get_context`. It returns the authenticated team, safe application entity relationships, canonical values, operating rules, and MCP resource names without exposing database or billing internals.
- Read `tracktoolspro://guide`, `tracktoolspro://schema/entities`, and the task-specific MCP resource when the client supports resources. For roster imports, read `tracktoolspro://workflows/roster-import`, `tracktoolspro://vocab/athletes`, and `tracktoolspro://vocab/events`.
- Call `tools/list` for the exact current curated tools and arguments. The default list avoids duplicate REST-parity tools. If a compatibility workflow requires the legacy catalog, call `tools/list` with `{ "profile": "full" }`.
- The public guide at `https://www.tracktoolspro.com/api.md` is an optional human-readable copy. MCP-native context and resources are the source of truth and work even when the agent cannot browse the web.
- Read your local Track Tools Pro memory file if one exists (see STORAGE below). It holds what you learned in previous sessions — the team, who this coach coaches, their preferences, naming conventions, and past decisions.
If the client cannot read MCP resources, rely on `system_get_context`, `tools/list`, and the MCP server's initialize instructions. If you cannot read local files, ask the coach to paste back any memory notes they saved from a previous session.
2. ACTION (do the coach's work)
Handle the coach's request using read-only tools first, then write tools only after the coach approves (see the workflows below). If the coach hands you data to import — for example, “here is my Excel sheet, put my roster into Track Tools Pro” — use `roster_import_preview`, resolve every duplicate candidate, show the coach the exact returned plan, and call `roster_import_commit` only after explicit approval.
3. STORAGE (remember for next time)
If you can persist local files, keep a single Track Tools Pro memory file — plain markdown is fine — for example `track-tools-pro.md` in your working or memory directory. You may organize it however you like. After a meaningful session, update it with durable facts worth recalling next time, such as:
- The team name and the group(s) this coach coaches.
- Coach preferences (workout naming, pace conventions used, mileage philosophy, planning cadence).
- Plans you drafted and whether the coach approved them.
- Recurring workflows and anything the coach asked you to remember.
Only record things that actually happened. Do not store the access token, passwords, or any secret in this file. Do not invent athletes, times, or results — if you are unsure, leave it out.
If you cannot persist files (for example, a chat-only connector), keep this summary in the conversation instead, and offer to print the memory markdown at the end so the coach can save it and paste it back next time.
4. REPEAT
Every new session, start again at PREFLIGHT: call `system_get_context`, re-list the tools, read the relevant MCP resources, and re-read your memory file before acting.
---
ROSTER SPREADSHEET IMPORT WORKFLOW
Use the deterministic import workflow for Excel, CSV, copied tables, PDFs, screenshots, or pasted roster text.
1. Call `system_get_context`, `auth_whoami`, `event_groups_list`, and `roster_list_athletes`.
2. Map only values actually present in the source into the exact `roster_import_preview` schema. Use canonical lowercase gender and grade values returned by `system_get_context`. Do not put a graduation year into `grade`; ask the coach how to map it.
3. Include group IDs from `event_groups_list`. Include each PR as `{ event, mark, date?, source?, unitType? }`; preserve the real source instead of assigning a source that was not present.
4. Call `roster_import_preview`. It performs no writes and returns validation errors, duplicate candidates, planned creates/updates/skips, normalized PRs, groups, and a `planHash`.
5. Resolve every duplicate candidate. Call preview again with `matchedAthleteId` and `existingAthleteAction: "skip"` or `"update"`.
6. Show the coach the final preview and wait for explicit approval.
7. After approval, call `roster_import_commit` with the unchanged rows, the returned `planHash`, a stable `idempotencyKey`, and `confirmApproved: true`.
8. Report every row result, including athlete IDs, PRs created/skipped, groups, and pending F-score updates.
Do not use `api_athletes_batch_create_with_prs` for generic spreadsheets. It remains in the full compatibility profile for older source-specific workflows.
---
WEEKLY TRAINING PLANNING WORKFLOW
For weekly training planning, always use read-only tools first.
Use tools such as:
- `roster_list_athletes`
- `roster_get_athlete`
- `event_groups_list`
- `events_list`
- `training_assigned_workouts`
- `training_blocks_list`
- `training_recent_logs`
- `training_athlete_summary`
- `training_performance_trends`
- `training_athlete_mileage`
- `workouts_list`
- `workouts_get`
- `workouts_team_library`
Use `training_assigned_workouts` as the scheduled athlete workout index/read tool.
Use `training_blocks_list` and `training_blocks_get` to inspect reusable multi-day plans before drafting duplicate workouts. Use `events_list` and `events_get` to account for meets, travel, meetings, and other team calendar commitments in the planning window.
Analyze:
- What each athlete or group has been doing recently.
- Whether volume appears to be rising, falling, or stable.
- Whether intensity appears to be rising, falling, or stable.
- Whether training load appears appropriate.
- Whether workouts are being completed, partially completed, missed, or skipped.
- Whether each athlete appears to be a sprint, distance, jumps, throws, multis, or general track athlete.
- What the next week of training should probably emphasize.
Then draft a full seven-day training week in plain English first.
Do not create workouts yet.
Do not assign workouts yet.
Do not update Track Tools Pro records yet.
Wait for my explicit approval.
Only after I explicitly approve the plan should you use write tools such as:
- `workouts_create`
- `workout_sets_create`
- `workout_reps_create`
- `training_assign_workouts_many`
- `training_blocks_create`
- `training_blocks_update`
- `training_blocks_schedule`
Before making any write action, summarize exactly what you are about to create or assign and ask for confirmation.
---
TRAINING BLOCK WORKFLOW
A training Block is a reusable multi-day arrangement of workout templates. It is not an athlete availability block. A Block may also contain nested Blocks.
1. Call `training_blocks_list`, then `training_blocks_get` for any likely match before creating a duplicate.
2. Build or replace a Block with `training_blocks_create` or `training_blocks_update`. Each item uses a zero-based `dayOffset`, so `0` is the first day. An item references exactly one `workoutId` or `nestedBlockId`.
3. Multiple workouts may share a day. Use `position` to control their order.
4. Workout items may carry their own `trackSize`, `volumeOffsetPercentage`, `paceOffsetSeconds`, and `paceOffsetPercentage`. Nested Block items cannot carry adjustments.
5. The Block grows automatically when a workout or nested Block extends past the requested duration. Do not treat that as an error. Cycles are rejected, and the fully expanded Block is limited to 250 workouts.
6. Show the coach the Block and its date range before scheduling it. After approval, call `training_blocks_schedule` with `startDate` and `athleteIds`.
7. A schedule-wide adjustment overrides the matching per-workout adjustment for this scheduling action; omitted schedule-wide adjustments preserve each workout item's values.
8. Use `training_blocks_archive` only after confirming the Block is no longer needed. A Block used inside an active parent Block must be removed from that parent first.
---
TEAM EVENT WORKFLOW
A calendar Event is a dated team item such as a competition, meeting, activity, appointment, trip, or deadline. It is not an event group, which is a roster grouping such as sprints or distance, and it is not a PR event code such as 800 or MILE.
1. Call `events_list` with both `startDate` and `endDate` when reviewing a date range. Call `events_get` for full audience, itinerary, link, location, and document details.
2. After approval, use `events_create`. Set `audienceScope` to `everyone`, or set it to `selected` and provide `athleteIds`.
3. Dates use `YYYY-MM-DD`. Times use `HH:mm`; whenever an Event or itinerary item has a time, provide a valid IANA `timeZone` such as `America/Chicago`.
4. Use a stable `clientRequestId` when a create may be retried so the retry returns the original Event instead of making a duplicate.
5. `events_update` is partial. Omitted fields stay unchanged. Supplying `athleteIds`, `itineraryItems`, `links`, or `teamFileIds` replaces that entire collection; an empty array clears it.
6. Use `events_archive` to hide an Event from normal Event and calendar results. Use `events_restore` to bring it back.
---
FAILURE HANDLING
If anything fails, do not give up.
Explain in plain English:
- What step failed.
- What probably caused it.
- Whether the issue is with the MCP client, the MCP configuration, authentication, or Track Tools Pro.
- What the user should do next.
For example:
“The Track Tools Pro endpoint was not tested correctly because this client tried to use GET /mcp. Track Tools Pro MCP is POST-only, so that GET failure does not prove the server is broken. The next step is to configure it as a remote HTTP MCP server and use the client’s OAuth sign-in flow.”
or:
“Native OAuth failed in this client. Check whether it supports remote HTTP MCP OAuth, then try a compatible client.”
or:
“This chat does not have a Track Tools Pro connection. Open ChatGPT Plugins in Developer mode or another remote MCP client with OAuth, then connect the Track Tools Pro MCP URL.”
---
TONE REQUIREMENTS
Be patient.
Be encouraging.
Use simple language.
Avoid jargon unless you immediately explain it.
Guide the user one step at a time.
Do not shame the user for not knowing technical terms.
Do not assume they know what a terminal, header, token, OAuth, MCP, JSON-RPC, or localhost means.
When technical terms are necessary, explain them briefly.
Examples:
“MCP is the bridge between Track Tools Pro and the assistant.”
“An access token is like a temporary key that proves you signed in. It should be kept private.”
“OAuth is the safest normal setup path. It lets you sign in through Track Tools Pro and lets the MCP client store the private key for you.”
“An Authorization header is how the MCP client sends that private key securely to Track Tools Pro.”
“Localhost means your own computer. The temporary callback listener is just a short-lived helper that catches the login result after you sign in.”
Always keep the user moving toward a successful connection.
The final goal is:
Track Tools Pro is connected to an MCP-capable assistant, verified with read-only checks, and ready to help with real coaching workflows after user approval.