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.
| Key | What 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:
| Tools | For |
|---|---|
| list_open_tickets | What to work on next, already in pick order: the open sprint first, bugs before features, then priority. |
| get_ticket, list_comments, list_attachments | Read a ticket in full before starting: its description, comments and any designs, screenshots or logs. |
| claim_ticket | Assign it to the agent (fails if someone has it or it’s blocked). |
| move_ticket | Move it between columns: to In progress when starting, to the last column when finished. |
| add_comment | Say what changed, where, and the test results. |
| create_ticket, create_backlog_ticket | File new work it finds. |
| search_tickets, list_backlog, get_board | Find tickets, read the backlog, and see a board’s columns and sprint. |
| get_ticket_history, get_ticket_prs, get_ticket_bugfixes | A ticket’s lifecycle, the pull requests that mention it, and its Bugfixes crash report. |
| list_epics, set_roadmap_item_tickets | Epics 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:
- Read all of it: the ticket, its comments, and its attachments when it has some.
- Claim it, so nobody else picks it up.
- Move it to the board’s in-progress column.
- Do the work, with tests.
- Run the tests, all of them, and make sure they pass.
- Comment with what changed and the results.
- 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.