Skip to content

MCP tools

The tracker exposes a two-tier MCP surface: a small set of essential tools always loaded plus a larger catalog of extended tools discoverable via getTools and executable via runTool. This page covers the shape of each tier so you know what the agent sees.

These are in the agent’s context on every session. They cover the hot path: start, work, end.

ToolWhat it does
briefMeOne-shot session primer — handoff, diff, top work, blockers, recent decisions, pulse.
saveHandoffSession wrap-up — saves handoff, links commits, reports touched cards, returns resume prompt.
createCardCreate a card in a column (by name).
updateCardUpdate card fields; optional intent.
moveCardMove a card to a column. Requires intent.
addCommentAdd a markdown comment to a card. Surfaces in getCardContext for future agents.
registerRepoBind a git repo path to a project (call after briefMe returns needsRegistration).
checkOnboardingDetect DB state, list projects/boards, session-start discovery.
getToolsBrowse extended tools by category.
runToolExecute any extended tool by name.

That’s the entire baseline agent context. Everything else is one runTool call away.

Browsed via getTools({ category }) and executed via runTool({ tool, params }).

CategoryCountTools
activity1listActivity
cards5bulkCreateCards, bulkMoveCards, bulkUpdateCards, createCardFromTemplate, deleteCard
checklist3addChecklistItem, bulkAddChecklistItems, toggleChecklistItem
comments1listComments
context13getActivityWindow, getCardContext, getMilestoneContext, getTagContext, listClaims, listFacts, planCard, publishEdition, queryKnowledge, rebuildKnowledgeIndex, saveClaim, saveFact, squawk
decisions3getDecisions, recordDecision, updateDecision
diagnostics1doctor
discovery13auditBoard, getBoard, getCard, getRoadmap, getStats, getToolUsageStats, getWorkNextSuggestion, listBoards, listProjects, listWorkflows, queryCards, renderStatus, searchCards
git3getCommitSummary, getGitLog, syncGitActivity
milestones4createMilestone, listMilestones, mergeMilestones, updateMilestone
notes3createNote, listNotes, updateNote
relations3getBlockers, linkCards, unlinkCards
session6attributeSession, listHandoffs, loadHandoff, recalibrateBaseline, recordTokenUsage, recordTokenUsageFromTranscript
setup4createColumn, createProject, seedTutorial, setRepoPath
tags5createTag, deleteTag, listTags, mergeTags, renameTag
flowchart LR
	A[Session start] --> B[briefMe]
	B --> C{Need more?}
	C -->|drill into card| D[runTool getCardContext]
	C -->|plan a sprint| E[runTool getRoadmap]
	C -->|search| F[runTool searchCards]
	C -->|work| G[moveCard / updateCard / addComment]
	G --> H[saveHandoff]

Most sessions never reach past briefMe + the essentials + one or two runTool calls.

MCP prompts are reusable session openers. Useful when you want to trigger a specific workflow.

PromptPurpose
resume-boardLoads board state + last handoff + diff. Alternative to briefMe. (Renamed from resume-session in #169 to avoid collision with Claude Code’s built-in /resume.)
onboardingGuided setup — tutorial seeds a sample project, quickstart creates a real one.
deep-diveLoads focused context for deep work on a specific card.
sprint-reviewVelocity, milestone progress, stale cards, blockers.
plan-workTemplate for breaking work into cards + checklists.
setup-projectStep-by-step guide for setting up a new project on the tracker.
holistic-reviewReviews the board against the actual codebase — syncs state with reality.

MCP resources are read-only URIs the agent can reference without a tool call.

Resource URIProvides
tracker://board/{boardId}Full board state
tracker://board/{boardId}/card/{number}Single card with all details
tracker://board/{boardId}/handoffLatest session handoff
tracker://project/{projectId}/decisionsAll project decisions
status://project/{slug}Board-derived project status (replaces STATUS.md)

Cards get sequential numbers per project (#1, #2, #3). Reference them naturally — “working on #7”, “move #12 to Done” — and the agent resolves them automatically against the board scope.

flowchart LR
	P[Project] --> B[Board]
	B --> C[Card]
	C --> CM[Comment]
	C --> CK[ChecklistItem]
	C --> CR[CardRelation]
	C --> CN[Note]
	B --> H[Handoff]
	P --> M[Milestone]
	M --> C
	P --> CL[Claim]
	B --> G[GitLink]
  • Cards are the primary unit of work.
  • Notes + Claims are the two knowledge primitives — see docs/archive/RFC-NOTE-CLAIM-PRIMITIVES.md for the shape.
  • Session handoffs live in their own Handoff table (Project + Board scoped, append-only, indexed by createdAt); saveHandoff writes them and briefMe reads the latest. (Pre-v6.0.0 they rode on Note(kind="handoff"); the rows were migrated and the kind retired in #179 Phase 2.)
  • Architectural decisions are stored as Claim rows with kind=decision.
  • GitLink connects commits to cards via #N references.

If you want to add a tool, the pattern is:

  1. Add the handler in src/mcp/tools/<domain>.ts following ToolHandler<ParamsSchema>.
  2. Register it in src/mcp/tool-registry.ts with a category, description, and schema.
  3. Bump SCHEMA_VERSION in src/mcp/utils.ts if you changed the data model.
  4. Run npm run docs:check to keep the README tables honest (they’re auto-generated from the registry).

The repo’s AGENTS.md has the longer contributor guide.