Every engineering team needs an issue tracker. We tried the usual suspects: Jira, Linear, GitHub Issues. None of them could do the one thing we needed most: let our AI coding agent read, triage, and update issues without a human copying and pasting context between windows. So we built Docket, a Trello-style Kanban tracker with first-class support for AI tool integration through the Model Context Protocol (MCP).
Why Build an Issue Tracker?
The problem was not tracking issues. The problem was closing them. When Claude Code is fixing a bug, it needs the full picture: what product the bug affects, what priority it carries, what comments other engineers left, what labels classify it. Copying that context from a SaaS tool into a prompt is tedious and lossy. We wanted the AI agent to pull the issue directly, read all its context, fix the code, post an investigation note, and move the card to Done. Docket makes that a single MCP tool call.
The second problem was bug intake. AccelaStudy(R) ships on web, iOS, and desktop. When a user hits a bug, the app captures session metadata (active mode, study phase, device info) and posts it to Docket's public bug submission API. The report lands on a Triage board with full context attached. No form to fill out, no account to create.
The Kanban Board
The core of Docket is a drag-and-drop Kanban board with customizable columns. Cards move between columns to track status. Every card carries a type badge (bug, enhancement, feedback), a priority level, board-scoped color-coded labels, an activity audit trail, threaded comments, and file attachments. The entire board updates in real time over WebSocket. When one engineer moves a card, every other connected client sees the change instantly.
Hierarchical Projects
Boards are organized inside a self-referential project tree. A top-level workspace (say, "Renkara") contains product-level projects ("AccelaStudy", "Docket", "Fulcrum"), and each of those can contain boards or further sub-projects. The sidebar shows a collapsible tree. Every board page displays breadcrumbs tracing back to the root. This hierarchy lets us organize hundreds of boards across a dozen products without losing track of where anything lives.
Real-Time Updates
Docket runs WebSocket channels at both the project and board level. Every mutation across all 29 API endpoints broadcasts to connected clients immediately. No polling, no manual refresh. This matters most during triage sessions where multiple people are reviewing and categorizing incoming bug reports simultaneously.
29 MCP Tools
The MCP server is the feature that separates Docket from every other issue tracker we evaluated. It exposes 29 tools covering complete CRUD on projects, boards, cards, and comments, plus legacy defect aliases for backward compatibility. The MCP server communicates via stdio, so Claude Code can call it directly from a coding session.
A typical AI-assisted bug fix workflow looks like this: the agent calls list_defects to find open bugs, calls get_defect to read the full card with metadata and comments, fixes the code, calls add_comment to post investigation notes, and calls update_defect_status to move the card to Done. The entire loop happens without the human ever opening the Docket UI.
Every card also has a "Copy Claude Prompt" button that generates a structured prompt you can paste into Claude. The prompt includes the card ID, title, description, labels, and metadata, formatted so the agent can immediately fetch the full card via MCP and start working.
Public Bug Submission API
The POST /api/bugs endpoint accepts unauthenticated submissions from any AVIAN product. The payload includes a title, description, bug type (defect, enhancement, or feedback), the originating app name, optional reporter info, and a metadata object. Docket auto-creates a "Bug Reports" board and "Triage" column on first submission, applies a colored label based on bug type (red for defects, blue for enhancements, purple for feedback), and sets priority automatically. The endpoint is rate-limited at 10 requests per minute per IP.
This means our web and mobile apps can submit bug reports with full session context without requiring the user to have a Docket account or even know that Docket exists. The metadata object captures whatever the app wants to send: study phase, active mode, question ID, device info. It all lands in the card's JSONB metadata field for engineers to review.
Trello Migration
Before Docket, we tracked issues across 13 Trello boards. The Trello import endpoint accepts a board export JSON and maps lists to columns, cards to cards (with descriptions, due dates, and archived status), labels to color-coded labels, comment actions to threaded comments, and checklists to Markdown checkboxes appended to card descriptions. A batch endpoint imports multiple boards at once. We migrated all 13 boards in a single API call.
What Makes It Better Than Off-the-Shelf
The short answer: MCP integration. No commercial issue tracker exposes a stdio-based tool interface that an AI agent can call natively. Jira has a REST API, but calling it from Claude requires writing custom glue code, handling OAuth, and parsing deeply nested JSON. Docket's MCP server gives the agent typed, purpose-built tools that return exactly the context it needs.
The longer answer: we control the data model. When we needed to add a JSONB metadata field for bug reports, we added it. When we needed board-level label scoping instead of workspace-level, we built it. When we needed WebSocket channels scoped to individual boards, we wired it up. Every feature in Docket exists because we needed it for our workflow, not because a product manager at a SaaS company decided it would look good in a demo.
Key Specs
| Spec | Detail |
|---|---|
| Frontend | React 18, TypeScript, Vite, CSS Modules |
| Backend | FastAPI, SQLAlchemy 2.0 async, PostgreSQL |
| Auth | RS256 JWT + API key + SHA-256 service tokens |
| Real-time | WebSocket (project + board channels) |
| MCP tools | 29 (projects, boards, cards, comments, legacy aliases) |
| Tests | 251 backend tests, 86% coverage |
| Ports | 3400 (frontend), 3410 (backend) |
| Theme | Light and dark mode |
Integration Points
Docket connects to the rest of the Renkara tools fleet in several ways. Auth flows through the shared auth-service via RS256 JWT verification. Service tokens allow server-to-server communication with other tools. The public bug API accepts reports from AccelaStudy(R) web and mobile clients. And the MCP server plugs directly into Claude Code sessions, making Docket the default issue tracker for every AI-assisted development task across all AVIAN repositories.