The tracker your agent works, not a board you watch.
Tracker's whole surface is 17 MCP tools over one task record and one append-only event log. One call hands your coding agent the next ready task — already claimed — and the web console is just another client of the same engine.
One subscription covers every Parsons product, across unlimited projects.
assignee agent:build-1 · body returned in full
one call out, one call back — then the unblocked events fan out on their own, to every dependent whose blockers are now all terminal.
Your plan lives in a file your agent keeps rewriting.
A TODO.md has no ordering, no dependency logic, no claim and no history — and a rewrite is exactly how an agent edits one. Every new session opens with "read the plan and work out where we were." Meanwhile the same work has a second copy in your inbox, where a customer sent a bug at eleven at night.
- There is no ordering in a checklist. Which of the four open items should be done first, and which one is blocked by a thing nobody has started? A file cannot answer that; it just lists.
- There is no claim in a checklist. Two agents reading the same file both start item three, and you find out at the merge.
- And there is a third place the work lives — the report a customer sent you, in an email or a DM or a screenshot with no URL. That one has no file at all. There is a door for it →
The board was never the product. The seventeen tools were.
Every rival added the word agent to a product whose economics count humans, and the agent they mean lives inside their UI, authenticated as a member of a workspace they charge by the seat. Tracker is the other way round: the tools are the product, and the console is a client of the same engine with no privileged path.
Honest footnote, because you will notice: through the MCP hub your client mounts a single parsons_tracker tool that serves all seventeen — that is how the platform stays under the 256-tool client cap. Seventeen tools is true of the surface. Seventeen entries in your sidebar is not.
One connection, minted for you at sign-in
You do not paste an endpoint or mint a token. Sign in and your project gets its own MCP connection with the platform catalog already granted — Tracker included, alongside the rest of the Parsons products.
One call returns the next task. Already claimed.
next_work returns todo tasks whose every blocker is terminal, excludes parents that still have open children, and orders them overdue → priority → due date → age. With claim_first: true it atomically claims the top item and returns it in full — one round trip, no second fetch.
next_work walks the graph, not a label.claim_first: true sets the assignee and moves the task to in_progress atomically. The row is yours before the response leaves.It never hands your agent an empty array.
An empty board is a fine answer for a human, who looks at it and thinks. An agent that gets [] stops. So when nothing is ready, next_work returns the diagnosis instead — and a board-first product cannot, because it was designed to be looked at.
What every other queue returns when the top of the backlog is blocked. Technically correct. Operationally a dead end.
- Six blocked, and here are the two rows doing the blocking. Your agent can go unblock
SITE-3instead of idling — or tell you, in one sentence, why there is nothing to do. - Four in triage means somebody filed something and nobody has looked. That is a different problem from "no work", and it deserves a different answer.
- One stale claim means a row is held by an agent that stopped. It will be taken back automatically — but you get told now rather than discovering it in a week.
Point three agents at it. Nothing collides.
Claims are atomic. Two agents calling next_work in the same second do not fight over a row — the loser is handed the next item, not an error. And there is no seat charge for the second one, or the third, because nothing here is priced per actor.
last event 26 hours ago
→ taken over automatically
fresh claim, full body returned
stale_claim_hours is a per-project setting and the default is 24. Below the threshold, an update_task claim does not silently steal the row — it refuses, and tells you who holds it and how long they have held it.
A whole dependency-linked plan, in one call.
create_tasks takes 1–50 tasks in a single call. tmp handles let siblings reference each other through parent, blocked_by and discovered_from before any of them exist — so the graph arrives complete, not stitched together by five follow-up calls.
The graph next_work walks is correct by construction, not by convention. You cannot save a plan that cannot be executed.
- Bulk is the default, not a power feature.
create_taskstakes 50,update_tasktakes 50 refs with uniform fields,get_taskreads 20 at once. A triage queue of forty is a handful of calls, not forty. - Five kinds and five priorities —
task,bug,feature,chore,idea, priority 0–4 — and that is the whole taxonomy. No custom field editor, no workflow designer, no project template you have to pick before you can write anything down. - The project brief is the standing context. Up to 50,000 characters of plan that every agent session reads before it does anything.
brief_appendis always safe; a full replace has to send thebrief_versionit read, so two agents cannot silently overwrite each other's plan.
Closing is a fact. And nothing dead-ends.
complete_task will not accept a close without a resolution, and update_task rejects done and canceled outright — there is exactly one door out of a task. Move a task to another project and it re-keys but keeps its identity, while the old ref goes on resolving forever.
That link still resolves. It does not 404 and it does not point at somebody else's task. Reporter, votes, links and the whole timeline came across with it — and move_task never re-meters, so reorganising your projects is free.
Internal history cannot be hard-deleted. The only hard delete on the system is purge_task, and it is restricted to tasks that arrived through intake — spam hygiene, not an eraser.
Your users file straight into triage. With a key that can only write.
Mint a pik_… key, put it in your product, and your users — or their AI — file reports into that project's triage queue. It is one tool call to create and it is included in the subscription: not an add-on tier, not a widget, not a second product you buy from somebody else.
The destination is a property of the key row, not of the request. A leaked key can add noise to one queue and learn nothing — not your other projects, not your task list, not who you are.
revoke_intake_key kills it instantly — every later call gets the same uniform 401.
So your customer's own assistant can file a bug without you shipping a widget or a script tag. Nothing tenant-identifying leaks before the call, and a bad key gets a uniform 401 with no OAuth discovery hints to probe.
- Every report is deduped within its source class and secret-scrubbed before storage — a best-effort card and SSN redaction runs on the way in, so an obvious secret does not sit in your queue waiting to be read.
- The platform files its own tickets too. A scheduled job that fails opens a Tracker ticket through an internal service binding with no key stored anywhere, deduped — so a job failing hourly votes one existing ticket instead of filing twenty-four.
- You get told when something new lands in triage, by email, collapsed to at most one message an hour per tenant. Loud enough to notice; quiet enough to leave on.
A bug report is an untrusted prompt.
The moment your agent reads a report a stranger wrote, that stranger is talking to your agent. This is the year the whole category found that out. Tracker returns intake-sourced bodies fenced as untrusted external data, and the console renders them as plain text — external links are never anchors, and votes read "N reports (unverified)" rather than pretending to be a signal.
- We do not claim to prevent prompt injection, and you should distrust anyone who does. What we do is mark the boundary in words your model reads, never render the body as executable or clickable, and keep the untrusted half visibly separate from your own notes.
- Redaction is hygiene, not compliance. The card and SSN scrub is best-effort. Treat it as one less obvious secret sitting in your queue, not as a control you could put in a policy document.
- The console follows the same rule as the tools. Intake bodies render as plain text and their links are never anchors — so a report cannot phish you either, not just your agent.
The queue under pressure — and the one number we cap.
Two things happen when a real product points a key at this: repeats, and spam. Here is how each one lands, and the number you should know before you start — because a busy intake key will meet it, and finding out later is how a refund request starts.
A project out of task room stops accepting reports rather than quietly dropping them, and your customer never sees our billing. An inactive destination project returns 410 the same way.
A cap denial is spoken with the number and the remedy in it — in the console and in the tool response your agent reads. Never "contact support".
- Tasks are a free metric. There is no per-task charge and no per-report charge. The cap is a stock limit on live rows, sized from measured cost — roughly ten database rows and under five kilobytes per task.
- Every row counts — open, closed and triage alike — because a closed row still occupies the database. That is the part most people guess wrong, so it is on the page rather than in a support article.
- The console API is rate-limited to 240 requests a minute per user. Being plain about the other side: the MCP write surface has no per-project throttle today. We are not going to call that enterprise-grade rate limiting, because it isn't.
"How's it going?" — answered in one call.
get_project returns the brief and its version, dated milestone rollups, ready / blocked / triage / waiting / in-progress counts with stale claims flagged, overdue and due-soon, a 14-day completion trajectory, the live label vocabulary and the last ten events. One call, not a dashboard you assemble by eye.
One query behind every view
search_tasks is the board (group_by: "status"), the roadmap (category: "open"), the changelog (status: "done"), the triage queue, my-work, and the risk list (due_before plus blocked). group_by returns authoritative counts over the whole filtered set, not just the page you fetched — which is what makes "the board is a query" actually true rather than a slogan.
Cursor pagination, 100 per page. There is no export button and we will not pretend there is one — but every record is readable through these same tools, so walking the whole dataset is a loop, not a support ticket.
Yes, there is a UI
Dashboard, items list, board, project snapshots, brief editing, intake keys with the one-time reveal, and a project switcher. Projects group themselves into Needs attention · In motion · Quiet · Paused so the first screen is a triage, not a wall.
There is also a Chat | Tracker toggle, so you can ask the tracker things in the browser with your own model choice. It is a client, not the product — some people never open it.
Driving Tracker from your own Claude or ChatGPT adds nothing to your bill: MCP tool calls are metered, uncapped and free. The console's built-in chat draws on prepaid AI credit at provider cost + 50% — a separate, separately capped line from the $15.
Where we win, and the ten rows we lose.
A table that only flatters us reads as a lie, so both halves are here at the same weight and neither one animates. The rival columns describe the shape of their pricing; where a figure appears it comes straight from the vendor's own pricing page, checked August 2026, and every source is linked below the table. List prices move — check them yourself before you decide.
| Parsons Tracker | Linear | Jira | Canny / Userback | |
|---|---|---|---|---|
| What the price counts | the account — $15/mo, or $150 paid yearly | each user — a per-seat monthly price | each user — a per-seat monthly price | Canny counts tracked end users; Userback counts seats and projects — both flat monthly tiers |
| A second project | unlimited, no charge | teams are gated by tier — 2 on Free, 5 on Basic, unlimited on Business | projects are unlimited; the subscription is per site, per user | Userback tiers by project count — 2 / 5 / 25 / 50; Canny tiers by tracked users |
| A second agent | no charge, no seat, no metering | not a billable seat — but the agent's own provider bills you separately | not a seat — Rovo agents draw pooled AI credits granted per user | not what the product does |
| Item ceiling | 10,000 live rows — account-wide, and we print the number | 250 issues on Free; unlimited on the paid tiers, priced per seat | no published issue cap — Free caps users at 10 and storage at 2 GB instead | Canny caps tracked users; Userback caps projects, not feedback volume |
| Write-only public intake | included — over HTTPS and over MCP | customer requests, on the Business tier | built-in forms can be shared publicly; a customer portal needs Jira Service Management | this is the product |
| Untrusted bodies fenced for your AI | yes — on every read, plus a secret scrub on write | — | — | — |
| When nothing is ready | a diagnosis: blockers, triage, waiting, stale claims | an empty board | an empty board | — |
| Driving it from your own AI | 17 tools; calls metered, uncapped and free | an MCP server against your workspace, with your seat's permissions | the official Rovo MCP server, free on Cloud plans; requests draw Rovo credits | — |
The table scrolls sideways on a narrow screen.
Rival figures are published list prices, checked August 2026 — linear.app/pricing · atlassian.com/software/jira/pricing · canny.io/pricing · userback.io/pricing. We do not quote a rival's dollar figure anywhere on this page.
Where they beat us — no small print, same size type
search_tasks walks the whole set 100 at a time — but there is no one-click dump and we will not call it "export" as if there were.
No SOC 2, no HIPAA, no SSO or SAML. We do not have them and we will not imply them with a badge row.
The console is for the account owner. There are no teammate logins to the Tracker console — if what you need is several people signing in to the same board, this is not that product.
For one person on one tracker, a per-seat rival is cheaper. A single entry-tier seat at Linear costs less per month than Base. Our $15 buys the whole platform, not this app — if Tracker is the only thing here you will ever use, that arithmetic does not favour us and we would rather you ran it now.
No mobile app. The console is web, and your MCP client is already on your phone.
The MCP write surface has no per-project throttle yet. The console API is limited to 240/min per user; the tool surface is not. It is on the list, and it is not done.
Fifteen dollars a month — and it isn't just this app.
Two intervals, one price: $15 a month or $150 a year — paying yearly costs exactly two months less. No per-seat price, no enterprise tier and no free tier. Here is the price with the allowance attached, because a price without an allowance is a teaser.
purge_task frees intake rows the moment you remove them.- All 17 MCP tools — calls uncapped and never billed
- Unlimited projects and unlimited intake keys
- Intake reports and MCP tool calls: metered, uncapped, never billed
- The full console, the brief, dependency graph, move + forwarding aliases
- Every other Parsons product on the same subscription
Paid yearly instead: $150 — the same allowances every month, for exactly two months less than the monthly price ($180). Checkout carries the interval picker; the trial is the same 14 days either way. And past an included allowance on the metered products, usage simply draws from prepaid credits at roughly cost × 1.5 — building stays free inside the allowances, and the bill starts when real usage does.
- The one number is on the card. Tracker's one lever is the live-row cap: 10,000, account-wide across every project and counting every status. It is a safety stop, not an upsell — if you genuinely need more room, ask us to raise it from the billing console.
- 14-day free trial on your first subscription. It runs through Stripe Checkout, so it does take a card, and you can cancel any time before it ends. Cancel-and-resubscribe does not get a second trial.
- Reaching the cap comes with the remedy attached, not a wall. The console shows the real number and the remedy, and the tool response your agent reads says the same thing in words it can act on.
purge_taskon intake spam frees room immediately.
One subscription, every product
The same $15 that runs Tracker runs Money, CRM, Journal, Fitness, Storage, Database, Deploy, Email, Notifications, Scheduler, Phone, Domains and the MCP Hub. Not a bundle you upgrade into — the account is the subscription. Phone numbers and domain names are the things you buy on top of it, quoted in full before you confirm.
Unlimited projects, free
The product in one, the marketing site in another, the side business in a third — separate data, separate task keys, separate spend caps, $0. Where a seat- or tier-priced tracker makes the second workspace a billing decision, here a second project is a tool call.
All of it reachable by AI
Every Parsons product ships MCP tools, so your assistant drives them rather than our web UI. Tracker ships 17: next_work, create_tasks, complete_task, search_tasks and the rest — and the calls are never billed.
"Fifteen a month — is it worth it?"
The honest answer depends on how many of these you use, so here is the arithmetic rather than a reassurance. The $15 is the account, not this app. Tracker, Money, CRM, Journal, Fitness, Storage, Database, Deploy, Email, Notifications, Scheduler, Phone, Domains and the MCP Hub all run on the one subscription — and most people reading this already pay more than $15 a month for exactly one product on that list. Nothing here is priced per person or per agent. The second operator, the fourth coding agent and the four hundredth next_work call add nothing, where a seat-priced tracker charges again for each one and a workspace-tiered one charges again for the second project. Projects are unlimited and cost $0 — the product in one, the marketing site in another, the side business in a third, each with its own data, task keys and spend caps. And the $15 is access, not a loss-leader with a metered bill hiding behind it: the things that genuinely cost real money — open-ended AI conversation, voice minutes, phone numbers, domains — are prepaid or quoted up front, capped separately, and shown in a different column before you spend. Tracker itself has no consumption line at all: tasks are free, reports are free, tool calls are free. Where it is not worth it: one person, this app only, nothing else on the list — then a single seat on a specialist tracker is the cheaper purchase, and you should make it.
The ones people actually ask first.
stale_claim_hours (default 24, per project) is taken over automatically.next_work four hundred times a month costs the same as one that calls it twice.purge_task on intake spam frees room immediately, the count is live rows across every project, all statuses — and if you genuinely need more room, ask us to raise the cap from the billing console.search_tasks walks the whole set at 100 per page, get_task reads 20 refs at a time. There is no export button, and we are not going to call it export.next_work and the brief. issues.parsons.ai permanently redirects here, so old links and bookmarks still work.Nothing you write here quietly disappears.
Seventeen tools, one append-only log, and a queue that answers your agent instead of waiting to be looked at.
No endpoint to paste, no token to mint. Sign in and Tracker is already in your MCP client, alongside the rest of the Parsons products.
Get yours →