← Docs

Connect an AI agent

TrackLin.es has a built-in MCP server at https://api.tracklin.es/mcp, so agents such as Claude Code, Codex and Cursor can read your boards, pick up tickets, move them and comment, like another member of the team. It uses the same API and permissions as the app.

1. Get a key

Sign in, then open Your settings (your account menu) → API keys, and on the AI agents tab create a key for the agent you’re connecting. Each agent gets its own key, named after it, so its work shows as that agent’s. The key is shown once: copy it into the setup below.

KeyWhat it’s for
AI key (tl_ai_…)For an AI agent working alongside you. It can be assigned tickets, claims and moves them, and on boards with agent review its finished work waits for a person to approve it.
Service key (tl_s_…)For scripts and integrations such as Bugfixes, made by organization admins in Settings → API keys. Everyone sees its name, the start of the key and when it expires, never the whole key. It can create and update tickets, but can’t be assigned work, so nobody can pass an agent’s work off as their own.
Personal key (tl_p_…)For your own scripts and displays (such as TRMNL), made in Your settings. It acts as you: your tickets are its tickets, and what it changes is recorded as you. A read-only key can only read, so it can’t be used over MCP.

2. Connect your agent

Pick your client and replace tl_ai_your_key with your key.

Run this once in a terminal. -s user makes it available in every project.

claude mcp add -s user --transport http tracklines https://api.tracklin.es/mcp \
  --header "Authorization: Bearer tl_ai_your_key"

Start a new session and check it with /mcp.

3. What agents can do

Every action in the app has a tool, with the same permissions. The ones agents use most:

ToolsFor
list_open_ticketsWhat to work on next, already in pick order: the open sprint first, bugs before features, then priority.
get_ticket, list_comments, list_attachmentsRead a ticket in full before starting: its description, comments and any designs, screenshots or logs.
claim_ticketAssign it to the agent (fails if someone has it or it’s blocked).
move_ticketMove it between columns: to In progress when starting, to the last column when finished.
add_commentSay what changed, where, and the test results.
create_ticket, create_backlog_ticketFile new work it finds.
search_tickets, list_backlog, get_boardFind tickets, read the backlog, and see a board’s columns and sprint.
get_ticket_history, get_ticket_prs, get_ticket_bugfixesA ticket’s lifecycle, the pull requests that mention it, and its Bugfixes crash report.
list_epics, set_roadmap_item_ticketsEpics with their progress, and linking work to roadmap milestones.

Any tool that takes a ticket accepts its key (TL-123) or its id.

How agents work a ticket

The server tells connected agents to treat every ticket the same way, start to finish:

  1. Read all of it: the ticket, its comments, and its attachments when it has some.
  2. Claim it, so nobody else picks it up.
  3. Move it to the board’s in-progress column.
  4. Do the work, with tests.
  5. Run the tests, all of them, and make sure they pass.
  6. Comment with what changed and the results.
  7. Move it to the last column. On a board with agent review it waits there for a person to approve it; otherwise it’s done.

While a sprint is open they pick from it first, bugs before other work, like a team member would. To have a person check an agent’s work before it counts as done, turn on agent review for the board.