Issue tracker with time tracking and MCP server capabilities
YAITracker demonstrates solid tool design with 24 well-named, action-verb-prefixed tools (list_, create_, delete_, get_, update_, move_, add_, search_, start_, stop_). All tools have descriptions (avg ~120 chars, within 10-1024 baseline). Input schemas are present with typed parameters and descriptions. However, output schemas are not documented in the source code, critical for LLM planning. Error handling lacks recovery guidance (no 'try X instead' patterns). Some parameter descriptions are terse (e.g., 'Filter by tag' for list_projects). Destructive operations (delete_project, delete_issue) require confirmation, which is good. Tool composition is clean: each tool has one responsibility. Missing: pagination guidance for list_issues, output field documentation, and error classification (retryable vs fatal).
Add a comment to an issue
Attach a label to an issue; creates the label in the project if it does not exist
Start working on an issue. Ensures a work session exists, moves the issue to in_progress, and starts an agent timer. Returns issue details and timer_id.
Compare project metrics grouped by tag (e.g. compare Go vs PHP)
Create a new issue
Create a new project
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what fields does get_issue return? Does list_issues return pagination cursors?). This forces agents to guess at response structure.
Error handling lacks recovery guidance. No indication of what to do on failure (e.g., 'User not found. Try search_users() first.'). Errors are not classified as retryable, user-fixable, or fatal.
Pagination not documented for list_* tools. list_issues, list_projects, list_tags lack page/offset/limit parameters and total count guidance. Large result sets could exhaust context windows.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | A | 82 | 2026-07-28+ | v2 |
Permanently delete an issue and all its comments and time entries. Cannot be undone.
Permanently delete a project and all its issues, comments, time entries, labels, and tags. This cannot be undone.
Get estimation accuracy report for a project
Get full issue detail including comments, time entries, and labels
Get project health summary
Get current work session, all active timers, and utilization metrics.
Get time entries for an issue
Get velocity data for a project
List issues for a project. Returns concise one-line-per-issue format by default; set format=json for full detail (adds parent_number and child_numbers for hierarchy).
List all projects with summary stats. Optionally filter by tags.
List all tags with usage counts and groups
Change issue status (move on the board)
Predict timeline and bug rate for a new project based on historical data
Search issues across all projects
Start an agent timer on an issue. Returns timer_id for later stop_timer call. Prefer begin_work for typical workflows.
Stop an active timer. Provide timer_id (returned by start_timer) OR project_key+number to identify which timer to stop.
Add or remove a tag on a project
Update an issue's fields
Parameter descriptions are terse. Examples: 'Filter by tag' (list_projects), 'What will be worked on' (start_timer). Should include format hints, constraints, and examples of valid values.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) not present in schema. Destructive tools (delete_project, delete_issue) are marked with Risk: DESTRUCTIVE in metadata but not in the MCP tool definition itself.