Skip to main content
Glama

What is this?

tpm-mcp is a local MCP (Model Context Protocol) server that gives Claude the ability to track your projects, features, and tasks. Think of it as having a dedicated TPM who:

  • Remembers what you're working on across sessions

  • Breaks down complex features into manageable tasks

  • Tracks progress and blockers

  • Gives you instant status updates

All data stays local in a fast SQLite database. No cloud. No subscriptions. Just you and your AI TPM.

Related MCP server: Project Tracking MCP Server

Demo

You: :TPM: what's in progress?

Claude: Here's your current roadmap:

# Roadmap Summary
**Stats**: 3/8 tickets, 12/25 tasks (48% complete)

## ExampleOrg
### backend-api
Tickets: 3/5 done

- [~] **FEAT-003**: Payment Integration (high)
  Tasks: 2/4
    - [~] TASK-003-1: Stripe webhook handler
    - [ ] TASK-003-2: Invoice generation

- [ ] **FEAT-004**: Email Notifications
  Tasks: 0/3

Features

Fast

Sub-millisecond queries with SQLite + WAL mode

Local

All data in ~/.local/share/tpm-mcp/tpm.db

Natural

Just talk - "I finished the auth feature"

Hierarchical

Orgs → Projects → Tickets → Tasks

Rich Metadata

Priority, tags, assignees, complexity, notes

Export/Import

Full JSON export/import for backup and migration

Installation

1. Clone & Install

git clone https://github.com/yourusername/tpm-mcp.git
cd tpm-mcp
uv venv && uv pip install -e .

2. Add to Claude Code

claude mcp add tpm --scope user -- uv run --directory /path/to/tpm-mcp tpm-mcp

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "tpm": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/tpm-mcp", "tpm-mcp"]
    }
  }
}

3. (Optional) Enable TPM Agent Behavior

For the full experience, add the TPM agent instructions:

# Symlink to your project's .claude folder
mkdir -p .claude
ln -s /path/to/tpm-mcp/agents/tpm.md .claude/tpm.md

Then in your CLAUDE.md:

See .claude/tpm.md for project tracking workflow.

Usage

Quick Commands

Say this...

Claude will...

:TPM: status

Show full roadmap

:TPM: add auth feature

Create a new ticket

I finished the payment integration

Mark ticket done

Break down the API refactor

Create subtasks

What's blocking us?

Show blocked items

Workflow Example

You: :TPM: Add user authentication to the backend project

Claude: Created ticket FEAT-005: "User Authentication" in backend-api
        Status: backlog, Priority: medium

You: Make it high priority and break it down

Claude: Updated FEAT-005 to high priority. Created tasks:
        - TASK-005-1: Design auth schema
        - TASK-005-2: Implement JWT middleware
        - TASK-005-3: Add login/logout endpoints
        - TASK-005-4: Write auth tests

You: Starting on the JWT middleware

Claude: Marked TASK-005-2 as in-progress.
        FEAT-005 is now in-progress.

You: Done with middleware, tests pass

Claude: Marked TASK-005-2 as done (1/4 tasks complete)

Tools Reference

Tool

Description

roadmap_view

Full roadmap with all orgs, projects, tickets, tasks

ticket_get

Detailed view of one ticket with its tasks

info

Server stats and database info

Tool

Description

ticket_create

Create ticket with title, description, priority, tags

ticket_update

Update status, priority, assignees, etc.

ticket_list

List tickets, filter by project or status

ticket_search

Full-text search on title/description with filters

Tool

Description

task_create

Create task under a ticket

task_update

Update task status, details, complexity

task_list

List tasks, filter by ticket or status

Tool

Description

org_create

Create organization

org_list

List all organizations

project_create

Create project under org

project_list

List projects

note_add

Add note to any entity

Data Model

Organization
└── Project
    └── Ticket (feature/epic/bug)
        ├── Tasks
        └── Notes

Ticket Statuses: backlogplannedin-progressdone | blocked

Task Statuses: pendingin-progressdone | blocked

Priorities: critical > high > medium > low

Export & Import

Export and import your project data to JSON for backup, restore, or interoperability with other tools.

Export Data

Export all your project data to JSON:

# Export to stdout
uv run tpm-json-export

# Export to file
uv run tpm-json-export -o backup.json

# Export from custom database
uv run tpm-json-export --db-path /path/to/custom.db -o backup.json

Import Data

Import data from a JSON export file to recreate your database or restore from backup:

# Validate JSON file without importing
uv run tpm-json-import --dry-run backup.json

# Import into default database
uv run tpm-json-import backup.json

# Import into custom database
uv run tpm-json-import --db-path /path/to/db.db backup.json

# Clear existing data and import
uv run tpm-json-import --clear backup.json

The JSON format includes all data: organizations, projects, tickets, tasks, notes, and task dependencies. Use cases:

  • Backup & Restore: Export your data regularly, restore if database gets corrupted

  • Recreate Database: Start fresh by importing from a previous export

  • Export to Other Tools: Use the JSON format to migrate to other project management tools

  • Sync Between Machines: Export on one machine, import on another

PDF Status Reports

Generate beautiful, shareable PDF reports from your project data.

Using the Report Skill

The tpm-report skill teaches Claude how to generate professional status reports. To enable it:

# Copy the skill to your project
cp -r /path/to/tpm-mcp/skills/tpm-report .claude/skills/

Then ask Claude:

You: Generate a project status report

Claude: [Fetches roadmap data, generates styled HTML, converts to PDF]
        PDF report saved to: Project-Status-2025-12-02.pdf

Prerequisites

  • tpm-mcp: This MCP server (for roadmap_view data)

  • Playwright MCP: For automatic HTML → PDF conversion

Installing Playwright MCP

# Add Playwright MCP (headless mode recommended for PDF generation)
claude mcp add playwright-headless --scope user -- npx @playwright/mcp@latest --headless

# Or with isolated mode (separate browser profile)
claude mcp add playwright-headless --scope user -- npx @playwright/mcp@latest --isolated --headless

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "playwright-headless": {
      "command": "npx",
      "args": ["@playwright/mcp@latest", "--headless"]
    }
  }
}

Without Playwright, Claude will generate an HTML file you can manually print to PDF.

What's in the Report?

Section

Contents

Progress Overview

Visual progress bars for tickets and tasks

Project Breakdown

Completed, in-progress, and backlog items per project

Key Milestones

Major achievements and current focus

Blockers & Risks

Items requiring attention

Manual Report Generation

If you prefer manual control, use roadmap_view with JSON format:

You: :TPM: show me the roadmap as JSON

Claude: [Returns structured JSON data]

Then use your preferred tool to format the output.

Migration from Legacy Trackers

Coming from a legacy JSON-based tracker with a different format?

uv run tpm-migrate /path/to/old-tracker

This tool converts from older JSON tracker formats. For standard export/import, use tpm-json-export and tpm-json-import above.

Development

# Install with dev dependencies
uv pip install -e ".[dev]"

# Run tests
uv run pytest tests/ -v

Why Local?

  • Privacy: Your project data never leaves your machine

  • Speed: SQLite is incredibly fast for this use case

  • Reliability: No API rate limits, no outages, works offline

  • Simplicity: One database file, easy to backup or sync

License

MIT - do whatever you want with it.

Citation


@software{Bhatia_TPM-MCP_A_Local_2025,
  author = {Bhatia, Urjit Singh},
  license = {MIT},
  title = {{TPM-MCP: A Local Technical Product Manager MCP Server}},
  url = {https://github.com/urjitbhatia/tpm-mcp},
  year = {2025}
}

Available Tools

18 tools
infoA

Get information about the tracker MCP server: database location, stats, and usage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves information, implying a read-only operation, but doesn't specify behavioral traits like authentication needs, rate limits, or potential side effects (e.g., if it logs usage). It adds value by detailing the types of information returned, but lacks depth on operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('Get information') and specifies the resource and details without waste. Every word earns its place by clarifying scope and content, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is reasonably complete for a simple info-fetching tool. It specifies what information is retrieved, but lacks details on output format, error handling, or server-specific nuances. Without annotations or output schema, more context on return values would be beneficial for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% description coverage, so the schema fully documents the lack of inputs. The description adds no parameter-specific information, which is appropriate here. Baseline is 4 for zero parameters, as no compensation is needed for schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('information about the tracker MCP server'), including what information is retrieved (database location, stats, and usage). It distinguishes itself from sibling tools that focus on notes, orgs, projects, tasks, and tickets rather than server metadata. However, it doesn't explicitly differentiate from potential similar tools like 'status' or 'health' that might exist elsewhere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying what information is retrieved, suggesting it's for server diagnostics or monitoring. However, it provides no explicit guidance on when to use this tool versus alternatives (e.g., for checking server status vs. querying data), nor does it mention prerequisites or exclusions. The context is clear but lacks detailed when/when-not instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

note_addB

PROJECT MANAGEMENT (TPM): Add a note/comment to a ticket or task for context or decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_typeYesType of entity
entity_idYesID of the entity
contentYesNote content

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a safe operation, if it requires specific permissions, how notes are stored, or if there are rate limits. The description adds minimal context beyond the basic action, leaving gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core action, using a single sentence. However, the parenthetical 'PROJECT MANAGEMENT (TPM)' adds minor noise without clear value, slightly reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, this is a mutation tool with incomplete context. The description lacks details on behavioral traits, error handling, or return values, making it inadequate for safe and effective use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents parameters. The description doesn't add any parameter-specific information beyond what's in the schema, such as examples or constraints. Baseline 3 is appropriate as the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add a note/comment') and target ('to a ticket or task'), with the purpose ('for context or decisions'). It distinguishes from siblings like note_get or note_list by specifying creation rather than retrieval. However, it doesn't explicitly mention all entity types from the schema (org, project).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the phrase 'for context or decisions' and the TPM context, suggesting when to add notes. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like updating tasks/tickets directly, or when not to use it (e.g., for major changes). No sibling tool comparisons are made.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

note_getB

PROJECT MANAGEMENT (TPM): Get full content of a specific note by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYesNote ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a 'Get' operation, implying read-only behavior, but doesn't specify permissions required, error handling, rate limits, or what 'full content' includes (e.g., text, metadata). This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and concise, using only one sentence with no wasted words. It efficiently conveys the tool's purpose and context without unnecessary details, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose but lacks behavioral details (e.g., permissions, error cases) and doesn't explain return values, which is a gap since there's no output schema. This makes it minimally viable but with clear room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal value beyond the input schema, which has 100% coverage and clearly documents the 'note_id' parameter. The description mentions 'by ID', reinforcing the schema, but doesn't provide additional context like ID format or examples. With high schema coverage, the baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('full content of a specific note'), and it includes the domain context ('PROJECT MANAGEMENT (TPM)'). However, it doesn't explicitly differentiate from sibling tools like 'note_list' or 'task_get', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying 'by ID' and the domain context, suggesting it's for retrieving individual notes in project management. However, it lacks explicit guidance on when to use this tool versus alternatives like 'note_list' or 'task_get', and doesn't mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

note_listA

PROJECT MANAGEMENT (TPM): List notes for an entity. Returns id, created_at, preview (first 100 chars). Use note_get for full content.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_typeYesType of entity
entity_idYesID of the entity
limitNoMax notes to return (default: 20, max: 50)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the return format (id, created_at, preview with character limit) and implies read-only behavior through 'List', but doesn't mention pagination, error conditions, permissions needed, or rate limits. It provides basic behavioral context but lacks comprehensive disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (two sentences) with zero wasted words. It's front-loaded with the core purpose, followed by specific usage guidance. Every sentence earns its place by providing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list operation with no annotations and no output schema, the description provides good context: it explains what the tool does, what it returns, and when to use alternatives. However, it doesn't mention pagination behavior (though limit parameter is documented in schema) or potential error scenarios, leaving some gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all 3 parameters. The description doesn't add any parameter-specific information beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List'), resource ('notes for an entity'), and scope ('Returns id, created_at, preview (first 100 chars)'). It explicitly distinguishes from sibling 'note_get' by specifying this returns previews only, not full content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool vs alternatives: 'Use note_get for full content.' This clearly indicates this tool is for listing note previews while note_get is for retrieving complete note details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

org_createA

PROJECT MANAGEMENT: Create a new organization (rarely needed).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesOrganization name

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions 'rarely needed', which adds some behavioral context about frequency, but does not disclose critical traits like permissions required, whether it's a mutation (implied by 'Create'), side effects, or error handling. This leaves significant gaps for a tool that likely modifies system state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two parts: the action ('Create a new organization') and usage note ('rarely needed'). Every word earns its place, and it is front-loaded with the core purpose. There is no wasted text or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a mutation with no annotations and no output schema), the description is minimally adequate. It states the purpose and usage frequency but lacks details on behavioral traits, return values, or error cases. For a creation tool, more context would be helpful, but it meets the basic threshold.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the parameter 'name' fully documented in the schema. The description does not add any parameter-specific details beyond what the schema provides, such as format constraints or examples. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Create') and resource ('a new organization'), making the purpose specific and understandable. It distinguishes from siblings like 'org_list' by indicating creation rather than listing. However, it doesn't fully differentiate from other creation tools like 'project_create' or 'ticket_create' beyond the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance with 'rarely needed', which helps the agent understand this is for infrequent use cases. It implies context for when to use it (e.g., initial setup), but does not specify alternatives or exclusions, such as when to use 'org_list' instead or prerequisites for creation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

org_listB

PROJECT MANAGEMENT: List all organizations. Usually only one org exists.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a list operation, implying read-only behavior, but doesn't mention permissions, rate limits, pagination, or what happens if no organizations exist. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with zero waste: it states the purpose and adds a useful contextual note. It's appropriately sized and front-loaded, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what the tool does but lacks details on behavioral aspects like response format or error handling. For a basic list tool, this is minimally viable but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds no parameter information, which is acceptable here. A baseline of 4 is appropriate since the schema fully handles the parameter semantics, and the description doesn't need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('organizations'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'project_list' or 'ticket_list' beyond the resource type, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes implied usage context with 'Usually only one org exists,' suggesting this tool is for basic listing when multiple organizations are unlikely. However, it lacks explicit guidance on when to use this versus alternatives like 'org_create' or other list tools, and no exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_createC

PROJECT MANAGEMENT: Create a new project under an organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization ID (case-insensitive)
nameYesProject name
repo_pathNoPath to git repo
descriptionNoProject description

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool creates a project, implying a write/mutation operation, but fails to describe permissions needed, whether creation is idempotent, error handling, or what the response includes (e.g., project ID). This is a significant gap for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It is front-loaded with the key action and context, making it easy to parse quickly without unnecessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a creation tool with no annotations and no output schema, the description is incomplete. It lacks behavioral details (e.g., permissions, response format) and usage guidelines, which are critical for an AI agent to invoke this tool correctly in a real-world context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters (org_id, name, repo_path, description) and their required status. The description adds no additional meaning beyond implying 'org_id' is needed for context, which is redundant with the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a new project') and the resource ('under an organization'), which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'project_list' or 'org_create', which would require mentioning what makes this tool unique for project creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing an existing organization), exclusions, or comparisons to siblings like 'org_create' or 'project_list', leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_listC

PROJECT MANAGEMENT: List projects in an organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idNoFilter by organization ID (case-insensitive)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the basic action ('List projects'). It doesn't disclose behavioral traits such as pagination, sorting, default limits, authentication requirements, rate limits, or what happens if org_id is omitted. This leaves significant gaps for a tool that likely returns multiple items.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just one sentence, front-loaded with the domain context and core action. There is zero wasted verbiage, making it efficient for an AI agent to parse, though this conciseness comes at the cost of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a simple input schema, the description is incomplete. It lacks details on return format (e.g., list structure, fields), error conditions, or behavioral expectations like pagination. For a list tool with potential complexity in output, this is inadequate despite the simple parameter set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the schema fully documenting the org_id parameter. The description adds minimal value beyond the schema by implying the org_id context ('in an organization'), but doesn't provide additional syntax, format details, or usage examples. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('projects'), with the context 'PROJECT MANAGEMENT' providing domain specificity. It distinguishes from siblings like project_create (creation) and org_list (different resource), though it doesn't explicitly differentiate from other list tools like note_list or task_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like org_list (for organizations) or other list tools. It mentions 'in an organization' which hints at the org_id parameter context, but offers no explicit when/when-not instructions or named alternatives for similar operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roadmap_viewA

PROJECT MANAGEMENT (TPM): Get project roadmap showing work status.

USE THIS TOOL WHEN:

  • User asks "what's in progress?" or "what are we working on?"

  • User asks "TPM status", ":TPM:" prefix, or "show me the roadmap"

  • User asks about pending/blocked/completed work

  • Starting a work session to see current state

  • User completes work and you need to find related tasks to mark done

Returns summary of organizations, projects, and tickets. Use project_id filter to reduce output.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idNoFilter by organization ID (optional) case-insensitive
project_idNoFilter by project ID (optional) - recommended to reduce output size
active_onlyNoOnly show non-done tickets (default: true)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool returns ('summary of organizations, projects, and tickets'), output characteristics ('reduce output size' warning), and filtering behavior. However, it doesn't mention potential rate limits, authentication needs, or error conditions, leaving some behavioral aspects uncovered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose statement, usage guidelines, return information, parameter advice). Every sentence earns its place by providing specific guidance without redundancy. The information is front-loaded with the core purpose stated first, followed by practical usage scenarios.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description provides good contextual coverage. It explains the tool's purpose, when to use it, what it returns, and includes a practical tip about output size. The main gap is the lack of output format details, but this is partially compensated by the clear behavioral description of what the summary contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, providing clear documentation for all 3 parameters. The description adds minimal parameter semantics beyond the schema, only mentioning 'Use project_id filter to reduce output' which slightly reinforces the schema's 'recommended to reduce output size' note. This meets the baseline expectation when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get project roadmap showing work status' with specific verbs ('get', 'showing') and resources ('project roadmap', 'work status'). It distinguishes itself from sibling tools like task_list, ticket_list, or project_list by focusing on a comprehensive status overview rather than simple listings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidelines with a dedicated 'USE THIS TOOL WHEN:' section listing 5 specific scenarios (e.g., user asks about progress, TPM status, pending work, starting sessions, completing work). It clearly differentiates when to use this tool versus alternatives by emphasizing its role for status overviews rather than individual task/ticket operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_createA

PROJECT MANAGEMENT (TPM): Create a task (sub-item) under a ticket.

USE THIS TOOL WHEN:

  • Breaking down a ticket into smaller tasks

  • User asks to add implementation steps

  • Creating a work breakdown structure

ParametersJSON Schema
NameRequiredDescriptionDefault
ticket_idYesParent ticket ID
titleYesTask title
detailsNoTask details/implementation notes
statusNoTask status (default: pending)
priorityNoPriority (default: medium)
complexityNoComplexity estimate (default: medium)

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions this is a creation tool, it doesn't describe what happens upon creation (e.g., whether a task ID is returned, if there are permission requirements, rate limits, or how it interacts with the parent ticket). For a mutation tool with zero annotation coverage, this is a significant gap in behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement followed by bullet-point usage guidelines. Every sentence earns its place by providing specific guidance without unnecessary elaboration. It's appropriately sized and front-loaded with the most important information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with no annotations and no output schema, the description provides good purpose and usage guidance but lacks behavioral details about what happens after creation. The schema covers parameters well, but the description doesn't compensate for the missing output information or permission/rate limit context that would be helpful for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly with descriptions and enum values. The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a task'), the resource ('sub-item under a ticket'), and the domain context ('PROJECT MANAGEMENT (TPM)'). It distinguishes this tool from sibling tools like 'ticket_create' or 'project_create' by specifying it creates tasks under tickets rather than standalone items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an explicit 'USE THIS TOOL WHEN' section with three specific scenarios: breaking down tickets into smaller tasks, adding implementation steps, and creating work breakdown structures. This provides clear guidance on when to use this tool versus alternatives like 'ticket_update' or 'note_add'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_getA

PROJECT MANAGEMENT: Get full details of ONE specific task.

Use this to drill into a single task's implementation details (metadata, files_to_modify, technical_notes). Prefer ticket_get for overview, use this only when you need deep task details.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID (e.g., SUBTASK-007-1 or TASK-abc123-1)

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It implies a read-only operation ('Get full details'), but doesn't explicitly state behavioral traits like permissions required, error handling, or response format. It adds some context about the type of details returned, but lacks comprehensive behavioral disclosure for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, and subsequent sentences provide essential usage guidelines without redundancy. Every sentence earns its place by adding distinct value (purpose, details, when to use, alternatives).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is mostly complete: it covers purpose, usage, and distinguishes from siblings. However, it lacks details on behavioral aspects (e.g., error cases, response structure) that would be helpful since no annotations or output schema exist, leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter (task_id), so the baseline is 3. The description adds value by clarifying the tool's scope ('ONE specific task'), which reinforces the parameter's purpose, but doesn't provide additional semantic details beyond what the schema already documents (e.g., format examples are in the schema).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Get full details') and resource ('ONE specific task'), distinguishing it from siblings like task_list (multiple tasks) and ticket_get (overview). It explicitly mentions what details are retrieved: metadata, files_to_modify, technical_notes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('only when you need deep task details') and when to use alternatives ('Prefer ticket_get for overview'). It also clarifies the context: 'drill into a single task's implementation details' versus other tools for different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_listA

PROJECT MANAGEMENT (TPM): List task IDs with status. Returns id, ticket_id, status only - use task_get for details.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticket_idNoFilter by ticket ID
statusNoFilter by status
limitNoMax tasks to return (default: 50, max: 200)
offsetNoSkip first N tasks for pagination (default: 0)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the return fields (id, ticket_id, status) and hints at pagination through the schema, but lacks details on permissions, rate limits, error handling, or whether it's read-only. The description adds some context but is incomplete for behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste: the first states the purpose and return fields, the second provides usage guidance. It is front-loaded and appropriately sized, with every sentence adding value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (list operation with filtering/pagination), no annotations, and no output schema, the description is fairly complete: it covers purpose, return fields, and sibling differentiation. However, it lacks details on behavioral aspects like permissions or error handling, which would be beneficial for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description does not add any parameter-specific information beyond what the schema provides, such as syntax or format details, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('task IDs with status'), specifying it returns only id, ticket_id, and status. It distinguishes from sibling 'task_get' by noting that tool provides details, making the purpose specific and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('List task IDs with status') and when to use an alternative ('use task_get for details'), providing clear guidance on tool selection relative to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_updateA

PROJECT MANAGEMENT (TPM): Update a task's status or details. Use when completing or updating task progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID (e.g., TASK-001-1)
titleNoNew title
detailsNoNew details
statusNoNew status
priorityNoNew priority
complexityNoNew complexity

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. While 'Update' implies mutation, the description lacks critical behavioral details: it doesn't specify what permissions are required, whether updates are reversible, if partial updates are allowed, what happens to unspecified fields, or what the response contains. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two clear sentences that each earn their place. The first states the purpose, the second provides usage guidance. No wasted words, well-structured, and front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with 6 parameters, no annotations, and no output schema, the description is minimally adequate. It covers purpose and basic usage but lacks important context about behavioral implications, error conditions, and response format. The high schema coverage helps, but for a write operation, more behavioral disclosure would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly with descriptions and enums. The description adds minimal value beyond the schema - it mentions 'status or details' which aligns with parameters but doesn't provide additional context about parameter interactions, dependencies, or usage patterns. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with 'Update a task's status or details' - a specific verb (update) and resource (task). It distinguishes from siblings like task_create (create) and task_get (retrieve), though it doesn't explicitly mention all sibling differences. The PROJECT MANAGEMENT (TPM) context helps but isn't essential to the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context with 'Use when completing or updating task progress.' This gives practical guidance on when to invoke the tool. However, it doesn't explicitly mention when NOT to use it (e.g., vs task_create for new tasks) or name specific alternatives, though the context implies distinction from other task_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ticket_createA

PROJECT MANAGEMENT (TPM): Create a new ticket, epic, or issue to track.

USE THIS TOOL WHEN:

  • User says ":TPM: Add X feature to the roadmap"

  • User wants to add a new feature/ticket/issue

  • User says "add ticket for X" or "create feature for Y"

  • Breaking down work into trackable items

  • User asks to scope out or define new work

  • User discusses new work that should be tracked

Use roadmap_view first to get the project_id. Tickets are high-level work items (like Jira epics/stories).

ID AUTO-GENERATION: IDs are always auto-generated as {PREFIX}-{NNN} (e.g., FEAT-001, ISSUE-042). The number is automatically incremented based on existing tickets with that prefix.

OPTIONAL PREFIX PARAMETER: Provide a prefix to categorize the ticket type:

  • FEAT: New features or capabilities

  • ISSUE: Bugs, problems, or issues to fix

  • TASK: General tasks or chores

  • INFRA: Infrastructure or DevOps work

  • DOC: Documentation tasks

If no prefix is provided, uses the project ID as the prefix (e.g., FRONTEND-001, BACKEND-042).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID (use project_list to find) case-insensitive
prefixNoOptional prefix for ticket ID (e.g., FEAT, ISSUE, INFRA). Number is auto-generated. If omitted, uses project ID as prefix.
titleYesTicket title
descriptionNoDetailed description of the ticket
statusNoTicket status (default: backlog)
priorityNoPriority level (default: medium)
tagsNoTags for categorization
assigneesNoWho is working on this

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by explaining ID auto-generation behavior ({PREFIX}-{NNN} format, auto-incrementing), optional prefix parameter behavior, and default behavior when prefix is omitted. It doesn't mention permissions, rate limits, or error conditions, but provides substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (PROJECT MANAGEMENT, USE THIS TOOL WHEN, ID AUTO-GENERATION, OPTIONAL PREFIX PARAMETER) and uses bullet points effectively. While somewhat lengthy, every section adds value and the information is front-loaded with the core purpose and usage guidelines.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with 8 parameters, 100% schema coverage, but no annotations or output schema, the description provides excellent context about when to use it, behavioral details (ID generation, prefix logic), and parameter semantics. It could benefit from mentioning what happens on success/failure or return values, but covers most essential aspects well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds significant value by explaining the prefix parameter's purpose and providing specific examples (FEAT, ISSUE, TASK, INFRA, DOC) that clarify categorization intent beyond the schema's technical description. It also explains the relationship between prefix and project_id when prefix is omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool creates new tickets, epics, or issues to track work, specifying the verb (create) and resource (ticket/epic/issue). It distinguishes from siblings like ticket_update, ticket_get, and task_create by focusing on creation of high-level work items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool with multiple concrete examples (e.g., 'User says :TPM: Add X feature to the roadmap', 'Breaking down work into trackable items'). It also specifies a prerequisite to 'Use roadmap_view first to get the project_id' and distinguishes tickets as high-level work items compared to other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ticket_getA

PROJECT MANAGEMENT: Get info about a ticket and its tasks.

IMPORTANT: Do NOT pass detail='full' unless explicitly asked for full/all details. The default 'summary' is sufficient for most queries. Only use 'full' when user specifically asks for implementation details, metadata, or complete task information.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticket_idYesTicket ID (e.g., FEAT-001)
detailNoOMIT this param for most requests (defaults to 'summary'). Only use 'full' if user explicitly asks for all details/metadata.summary

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses behavioral traits such as the default behavior for the 'detail' parameter and warnings about using 'full' detail. However, it lacks information on permissions, rate limits, or error handling, which are important for a read operation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the purpose, followed by important usage guidelines. Every sentence earns its place by providing critical information without redundancy, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple read operation with 2 parameters), 100% schema coverage, and no output schema, the description is mostly complete. It covers purpose, key parameter semantics, and usage guidelines. However, it could benefit from mentioning the return format or any limitations, slightly reducing completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by emphasizing the importance of the 'detail' parameter, explaining when to use 'full' vs. default 'summary', and reinforcing the schema's guidance. This goes beyond the schema's enum and default values, providing practical usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get info about a ticket and its tasks.' It specifies the verb ('Get') and resource ('ticket and its tasks'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'ticket_list' or 'ticket_search', which is why it doesn't reach a score of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool vs. alternatives: it advises to use the default 'summary' detail for most queries and only use 'full' when explicitly asked for all details. This directly addresses usage scenarios and parameter selection, offering clear when-to-use and when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ticket_listA

PROJECT MANAGEMENT: List ticket IDs with status/priority. Returns id, status, priority only - use ticket_get for details.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoFilter by project ID (case-insensitive)
statusNoFilter by status
limitNoMax tickets to return (default: 50, max: 200)
offsetNoSkip first N tickets for pagination (default: 0)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('Returns id, status, priority only') which is valuable, but doesn't address important behavioral aspects like pagination behavior (implied by offset parameter), rate limits, authentication requirements, or error conditions. The description adds some context but leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (two sentences) with zero wasted words. The first sentence establishes purpose and scope, the second provides crucial usage guidance. Every element earns its place and the information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with 4 parameters, 100% schema coverage, but no annotations and no output schema, the description provides adequate but incomplete context. It covers purpose and sibling differentiation well, but lacks behavioral details about pagination, rate limits, or error handling that would be helpful given the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all 4 parameters. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions filtering by 'status/priority' but priority isn't actually a parameter in the schema. Baseline 3 is appropriate when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('List') and resource ('ticket IDs'), and distinguishes it from sibling tools by mentioning 'use ticket_get for details'. It explicitly lists what fields are returned (id, status, priority only), making the scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: 'use ticket_get for details' indicates this is for summary-level information, while ticket_get is for detailed views. This directly addresses sibling tool differentiation without needing to mention all alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ticket_updateA

PROJECT MANAGEMENT (TPM): Update a ticket's status, priority, or details.

USE THIS TOOL WHEN:

  • User says "I just finished implementing X" - mark related ticket as done

  • User says "I've pushed commits for X" - update status based on progress

  • Marking work as in-progress, done, or blocked

  • Changing priority of a ticket

  • User completes a ticket and needs to update status

  • Adding/updating tags or assignees

Use roadmap_view first to find the ticket_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticket_idYesTicket ID (e.g., FEAT-001)
titleNoNew title
descriptionNoNew description
statusNoNew status
priorityNoNew priority
tagsNoUpdated tags
assigneesNoUpdated assignees

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It clearly indicates this is a mutation tool ('Update'), specifies what fields can be modified (status, priority, details), and mentions the prerequisite of finding ticket_id via roadmap_view. However, it doesn't disclose potential side effects, permission requirements, or rate limits that would be helpful for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose statement, usage guidelines, prerequisite). Most sentences earn their place by providing concrete value, though the usage examples could be slightly more concise. The information is front-loaded with the core purpose stated first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 7 parameters, 100% schema coverage, and no output schema, the description provides strong usage context and distinguishes from siblings. It covers when to use the tool and references the prerequisite tool. The main gap is lack of information about what the tool returns or confirmation of successful updates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing complete parameter documentation. The description adds minimal value beyond the schema by mentioning 'status, priority, or details' and referencing 'tags or assignees' in usage examples, but doesn't provide additional semantic context about parameter interactions or constraints. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Update a ticket's status, priority, or details') and identifies the resource ('ticket'). It distinguishes from siblings like ticket_create (create vs update), ticket_get (retrieve vs modify), and roadmap_view (view vs update).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidelines with concrete examples ('User says "I just finished implementing X" - mark related ticket as done'), clear when-to-use scenarios ('Marking work as in-progress, done, or blocked'), and a specific alternative directive ('Use roadmap_view first to find the ticket_id'). This gives comprehensive guidance on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 18 tool updates
    • First observedinfo
    • First observednote_add
    • First observednote_get
    • First observednote_list
    • First observedorg_create
    • First observedorg_list
    • First observedproject_create
    • First observedproject_list
    • First observedroadmap_view
    • First observedtask_create
    • First observedtask_get
    • First observedtask_list
    • First observedtask_update
    • First observedticket_create
    • First observedticket_get
    • First observedticket_list
    • First observedticket_search
    • First observedticket_update

TDQS

A3.7/5.0

Scored across 18 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific entities (notes, orgs, projects, tasks, tickets), but some overlap exists between note_get/note_list and ticket_get/ticket_list where the 'get' vs 'list' distinction is clear but could still cause minor confusion. The roadmap_view tool is well-scoped for status overviews, and search functions are appropriately separated.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., note_add, org_list, project_create, ticket_search). The pattern is maintained across all 18 tools, making them predictable and easy to understand at a glance.

Tool Count4/5

With 18 tools, the count is slightly high but reasonable for a project management domain that covers multiple entities (notes, orgs, projects, tasks, tickets). Each tool appears to serve a specific function, though some could potentially be consolidated (e.g., note_get and note_list).

Completeness5/5

The toolset provides comprehensive CRUD/lifecycle coverage for the project management domain, including create, get, list, update, and search operations for notes, organizations, projects, tasks, and tickets. There are no obvious gaps, and tools like roadmap_view and ticket_search enhance workflow completeness.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A local Model Context Protocol server providing backend tools for AI agents to manage projects and tasks with persistent storage in SQLite, enabling structured tracking of project tasks with dependencies, priorities, and statuses.
    12
    5 npm
    25
    GPL 3.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables project and task management through a lightweight SQLite database, allowing users to create projects, add categorized tasks, track status changes, and get project statistics through natural language commands.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language task management including logging, updating, and summarizing productivity activities across multiple categories using a local SQLite database. It allows users to manage workflows and generate time-based summaries through standardized Model Context Protocol tools.
    1
    -