Skip to content

Set up with a coding agent

Instructions for an AI coding agent (Claude Code, Codex, Cursor and others) that is helping a person sign up for trackagoat and connect its MCP server.

Updated Oct 10, 2026 · 9 min read

This page is written for the AI agent. It covers sign-up, connecting the MCP server, checking the connection and a first task. The person does everything that needs a password, a browser sign-in or an API key. The agent runs commands, edits config files and explains each step.

What trackagoat does: it tracks creators' public TikTok and Instagram posts for brands and agencies that run creator programs. It calculates what each creator is owed from the program's payout rules and flags creators and posts that need attention.

1. Account and plan#

Ask whether the person already has a trackagoat account. If they do, skip to the plan check.

  1. Send them to sign-up

    Give them https://www.trackagoat.com/signup. They can sign up with Google, or with email and password. An email sign-up sends a confirmation link first.

  2. Explain the setup steps

    After sign-up, trackagoat asks for:

    • their name,
    • an organization name: the workspace, usually the brand or agency,
    • a first project: a group of creators, such as Brand ambassadors,
    • optionally, a first creator by handle or profile URL. They can skip this; you can add creators later.

    If someone invited them to an existing organization, they can accept that invitation instead of creating an organization.

  3. Wait for confirmation

    Wait until they say they're signed in and can see their project.

Plan check#

Every plan includes MCP and API access, so a new organization can connect an agent straight away. Organizations start on Free, which allows 200 requests a day and 1 API key. Each MCP tool call counts as one request, and the count resets at midnight in the organization's time zone. Starter raises the daily limit to 1,000 requests but still allows 1 API key. Ultra allows 50,000 requests a day and 5 API keys.

Upgrades are handled by hand: the person emails support@trackagoat.com with their organization name and the plan they want. See Plans and limits for the current numbers. When the daily limit is used up, tool calls fail with rate_limit_exceeded until the reset.

2. Connect the MCP server#

URLhttps://www.trackagoat.com/api/mcp
TransportStreamable HTTP
AuthSign-in (OAuth 2.1), or Authorization: Bearer tga_<key>

Use sign-in first: there is no key to create or store, and it identifies the person directly, so everyone connects their own agent without sharing a key. When the client starts sign-in, a trackagoat page opens in the browser. The person signs in, picks the organization, and chooses View data (always on) plus Make changes if you should be able to add, change or remove creators, videos, campaigns, goals, payouts and notes. Their role must allow changes. Then they click Allow access.

Follow the section for the client you're running in.

Claude Code#

bash
claude mcp add --transport http trackagoat https://www.trackagoat.com/api/mcp

Add --scope user to make it available in every project. Then ask the person to run /mcp in Claude Code, select trackagoat and sign in.

Codex CLI#

bash
codex mcp add trackagoat --url https://www.trackagoat.com/api/mcp
codex mcp login trackagoat

The first command adds [mcp_servers.trackagoat] to ~/.codex/config.toml. The second opens the browser sign-in.

Cursor#

Add this to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (this project only). Merge it into mcpServers if the file already exists:

JSON
{
  "mcpServers": {
    "trackagoat": {
      "url": "https://www.trackagoat.com/api/mcp"
    }
  }
}

Then ask the person to open Cursor's MCP settings and sign in to trackagoat from there. If Cursor doesn't offer a sign-in, use an API key.

VS Code#

Add this to .vscode/mcp.json (merge into servers if the file exists):

JSON
{
  "servers": {
    "trackagoat": {
      "type": "http",
      "url": "https://www.trackagoat.com/api/mcp"
    }
  }
}

Ask the person to start the server (the Start action above it in mcp.json) and allow the sign-in when VS Code asks.

Claude.ai and Claude Desktop#

An agent can't set this up. Tell the person to open Settings → Connectors (on claude.ai: Customize → Connectors), choose Add custom connector, name it trackagoat, enter the URL above, leave the OAuth client fields empty, and click Connect. Details: MCP server.

Other clients#

Any client that supports Streamable HTTP and OAuth needs only the URL: it finds the sign-in page from the server's 401 response. For clients that only run local (stdio) servers, see Stdio-only clients.

API key fallback#

Use an API key when the client can't sign in, for example when it has no OAuth support or sign-in fails with a redirect URI error. Only org admins can create keys. A key acts on behalf of one member and can never do more than they can in the app, so it should act as the person you're helping.

Tell the person to:

  1. Open Org settings → API keys in trackagoat and click + New API key.
  2. Name it after the client and person, for example Claude Code (Sam). Under Acts as, pick the person who will use it (the admin, by default).
  3. Choose scopes: Read is always on. Tick Write if you should add creators, videos, goals or notes. Leave Admin off.
  4. Copy the key. It's shown once.
  5. Add export TRACKAGOAT_API_KEY=<the key> to their shell profile (for example ~/.zshrc), then open a new terminal and restart the client. They should not paste the key into the chat.

Check that the variable is set without printing it:

bash
test -n "$TRACKAGOAT_API_KEY" && echo "TRACKAGOAT_API_KEY is set" || echo "TRACKAGOAT_API_KEY is not set"

Then configure the client to read the variable:

bash
claude mcp add --transport http trackagoat https://www.trackagoat.com/api/mcp \
  --header "Authorization: Bearer $TRACKAGOAT_API_KEY"

The shell fills in the key, so it never appears in the conversation. Claude Code saves it in its local config. To share the setup through a repo instead, use the .mcp.json from the MCP server page, which reads ${TRACKAGOAT_API_KEY} at startup.

3. Check the connection#

Call list_projects. It returns the organization's projects with their id, name and readme. Show the person the project names. Then call get_my_profile: it shows who you're connected as and their personalization document. If they have one, follow it.

If the trackagoat tools don't appear, the client loaded its config before you added the server. Ask the person to restart the session or reload the client. In Claude Code, /mcp shows each server's status; in Codex, codex mcp list.

4. Personalization document#

Right after setup, offer to write the person's personalization document together, so every future session starts knowing them. It's their My README in trackagoat (Settings → My README), and the MCP server sends it to their agent at the start of every session. Ask a few short questions, one or two at a time:

  1. Who they are and their role.
  2. What their job is in running the creator program.
  3. The program, creators and goals they care about most.
  4. How they most want you to help.
  5. Preferences: tone, how often to check in, what to look at first, and what you should never do without asking.

Draft it in Markdown with these headings, show the draft, and save it with update_my_readme only after they approve. Pass the readme_version from get_my_profile as expected_readme_version.

markdown
## About me
## My job in the program
## What I care about
## How to help me
## Preferences
## Never without asking

Tell them everyone in their organization, and their agents, can read it, so it shouldn't hold anything private. If they'd rather not, skip it. When their role or preferences change later, offer to update it. A filled-in example is on Notes and documents.

5. First tasks#

Ask what the person wants to do first. Most tools take a project_id from list_projects.

TaskToolNotes
Add creatorsadd_creatorPass project_id and accounts, e.g. [{ "platform": "tiktok", "handle": "name" }]. One creator can have a TikTok and an Instagram account. This starts a profile and post-discovery update; stats appear once the account's last_scraped_at is set. Counts toward the plan's account limit.
Track one postadd_video_by_urlPass the post URLs. Counts toward the plan's video limit.
See how the program is doingget_program_healthReturns a verdict, KPIs, alerts and creators who stopped posting. A new project has little data until the first updates finish.
Give a creator a goalcreate_goalFor example metric: "posts", period: "weekly", target_value: 3. Check progress with get_goal_compliance.
Write findings downupdate_notesUse the default mode: "append" so people's notes are kept. Works for every document: creators, videos, campaigns, projects, the organization and payout records. Organization, project and payout documents need an org admin.
Read the program's documentslist_notes, then get_notesThe organization and project documents often hold rules and goals for agents.
Group creators into a campaigncreate_campaign, then add_to_campaignAdd creators, videos or other campaigns. Set a view target with update_campaign and follow it with get_campaign_progress.
Set up payoutscreate_payout_structure, then assign_payout_structureThe structure holds the pay rule (flat, goals, CPM, view bonus or per conversion); assigning creators starts their earning. Confirm amounts with the person first.
Record a paymentrecord_payout_paymentRecords a payment made outside trackagoat and marks the accruals it covers as paid. It doesn't send money. Needs an idempotency_key.

The MCP server covers the whole REST API except organization administration: it can't create or rename projects, invite or remove teammates, manage API keys, or permanently delete conversions and conversion events (it can void and deactivate them). Send the person to the app for those. The full tool list is on the MCP server page.

Troubleshooting#

What you seeCauseFix
The server fails to connect, or HTTP 401Not signed in yet, the sign-in expired, or the API key is wrong, expired or revokedSign in again: /mcp in Claude Code, codex mcp login trackagoat, or reconnect in Cursor, VS Code or Claude. With a key, check the variable is set (without printing it) and that the key is still listed under Org settings → API keys.
insufficient_scope (403)A write tool was called without Make changes, or with a key that lacks WriteReconnect and approve Make changes, or have an org admin create a key with Write.
insufficient_role (403)The tool needs an org admin (its description says so), and the person isn't oneAsk an org admin to do it, or to change the person's role.
key_member_removed or key_creator_… (401)The key's member left the org, or the admin who made the key for them left, was changed to member or was suspendedSign in instead, or have an org admin create a new key. Org settings → API keys shows why the old one stopped.
The consent page says the plan doesn't include API accessAn admin set this organization's API limit to 0Pick another organization, or email support@trackagoat.com. See the plan check.
Sign-in shows a redirect URI errorThe client uses a custom URL scheme for sign-in, which trackagoat doesn't acceptUse an API key.
limit_reached (402)A plan limit, such as the number of tracked accounts or videosRemove items or upgrade. See Plans and limits.
rate_limit_exceeded (429)The organization's daily API request limit (it resets at midnight in the org's time zone) or 60 requests per minute per key or connectionWait retry_after_seconds, then retry. Each tool call counts as one request.
retention_exceeded (402)An analytics range starts before the plan's data-retention windowUse a later start date.

More detail: MCP server, Errors and limits.