Skip to main content
Glama

麦克普蒂克斯测试版

一个简单、强大的票务跟踪系统,集成了 AI 助手。

版本地位 npm 版本 执照 构建状态笑话

mcptix 横幅

mcptix 是什么?

mcptix 是一个工单跟踪系统,可帮助您管理项目的任务、错误和功能。它设计简单易用,并通过模型上下文协议 (MCP) 与 AI 助手集成。

  • 📋跟踪票证- 为您的项目创建、更新和管理票证

  • 🧠衡量复杂性- 使用复杂性智能引擎跟踪您的工单的复杂程度

  • 💬添加评论- 与票证评论协作

  • 🤖 AI 集成- 将您的 AI 助手连接到 mcptix,以增强规划和编码

Related MCP server: agent-todo-mcp

快速入门指南

对于那些想要快速掌握并运行基本功能的用户:

# Install mcptix
npm install @ownlytics/mcptix

# Initialize mcptix in your project
npx mcptix init

# Start mcptix
npx mcptix start

基本用法就是这样!关于AI助手集成,请参阅下方的AI集成指南。

完整安装指南

先决条件

  • Node.js 14 或更高版本

  • npm 或 yarn

  • 支持MCP(Claude Desktop、Roo等)的AI助手

步骤1:安装mcptix

npm install @ownlytics/mcptix

第 2 步:在你的项目中初始化 mcptix

npx mcptix init

这将:

  • 在你的项目中创建一个.mcptix文件夹

  • 添加配置文件

  • 设置数据库结构

步骤 3:启动 mcptix UI

npx mcptix start

这将仅启动 mcptix UI(API 服务器)。MCP 服务器将在需要时由您的 AI 助手启动。

AI集成指南

mcptix 最强大的功能之一是通过模型上下文协议 (MCP) 与 AI 助手集成。这使得 AI 助手能够帮助进行项目规划、任务分解等。

了解 mcptix AI 集成

正确配置后,mcptix 可使您的 AI 助手执行以下操作:

  1. 创建、读取、更新和删除票证

  2. 向票证添加评论

  3. 在agent_context字段中存储详细的计划信息

  4. 将复杂的任务分解为可管理的工单

  5. 跟踪复杂性指标

agent_context字段特别强大 - 它为 AI 助手提供了一个使用 Markdown 存储大量规划文档的地方,而不会使对话变得混乱。


💡⚡️ 使用 mcptix 实现经济高效的开发

让一个通过 API 连接的 LLM 代理持续规划、执行代码、处理错误和调试,很快就会变得成本高昂。当您的代理需要重复处理相同的上下文并在交互过程中维护状态时,API 成本就会累积起来。

**更经济实惠的方法:**使用运行 Claude 3.7 Sonnet 的专业版账户配置 Claude Desktop,并启用 mcptix 和文件系统访问权限。这种本地设置可以显著减少 API 的使用,同时保持强大的 AI 辅助功能。

通过将综合计划存储在agent_context字段中(包括文件名、行号、方法名称和其他参考点,并将其组织成逻辑上可行的块),您可以将 API 使用率减少多达 80%。

mcptix 充当 LLM 编码代理的下一代存储库,允许它们将详细的规划和上下文卸载到持久存储系统中,以便它们可以根据需要进行参考,而不是将所有内容都保存在有限的上下文窗口中。

该系统的强大之处在于,您的编码代理(例如 Roo/Cline)和 Claude Desktop 都访问同一个底层 mcptix 数据库。这创建了一个无缝的协作环境,Claude Desktop 可以创建全面的计划并将其存储在工单中,而您的编码代理可以检索这些工单并精确执行计划。它们通过共享工单系统进行有效沟通——Claude Desktop 将复杂的任务分解为可执行的模块,而您的编码代理则执行这些模块,而无需每次都重新生成上下文。


不同AI助手的配置

对于Roo

  1. 复制 MCP 配置:

    运行npx mcptix init时,会在.mcptix/mcp-server-config.json处创建一个 MCP 服务器配置文件。将其复制到 Roo 的配置目录:

    mkdir -p .roo
    cp .mcptix/mcp-server-config.json .roo/mcp.json
  2. 检查配置文件以确保路径是绝对的:

    {
      "mcpServers": {
        "mcptix": {
          "command": "/absolute/path/to/node",
          "args": ["/absolute/path/to/node_modules/@ownlytics/mcptix/dist/mcp/index.js"],
          "env": {
            "MCPTIX_HOME_DIR": "/absolute/path/to/your/project/.mcptix",
            "HOME": "/home/your-username"
          },
          "disabled": false,
          "alwaysAllow": []
        }
      }
    }

    确保/absolute/path/to/node是终端中运行which node的结果。

    确保/absolute/path/to/node_modules/@ownlytics/mcptix/dist/mcp/index.js是 node_modules 中 mcptix MCP 服务器的绝对路径。

    确保/absolute/path/to/your/project/.mcptix是项目的.mcptix目录的绝对路径。

    确保/home/your-username是您的主目录( echo $HOME的结果)。

对于克劳德桌面

  1. 如果尚未安装,请安装桌面指挥官:

    npm install -g @wonderwhy-er/desktop-commander
  2. 将 Claude Desktop 连接到您的文件系统:

    desktop-commander connect
  3. 配置Claude桌面:

    在 Claude Desktop 中:

    • 前往“设置”>“开发者”

    • 在“MCP 服务器配置”部分添加 MCP 配置:

    {
      "mcpServers": {
        "mcptix": {
          "command": "/absolute/path/to/node",
          "args": ["/absolute/path/to/node_modules/@ownlytics/mcptix/dist/mcp/index.js"],
          "env": {
            "MCPTIX_HOME_DIR": "/absolute/path/to/your/project/.mcptix",
            "HOME": "/home/your-username"
          },
          "disabled": false,
          "alwaysAllow": []
        },
        "desktop-commander": {
          "command": "npx",
          "args": ["-y", "@smithery/cli@latest", "run", "@wonderwhy-er/desktop-commander", "--config", "{}"]
        }
      }
    }

    按照编码代理配置中描述的方式使用json。

  4. 在 Claude Desktop 中创建一个项目:

    • 在 Claude Desktop 中点击“新建项目”

    • 为您的项目命名

    • 将您的项目目录设置为开发项目的根目录

  5. 编辑项目系统说明:

    为 Claude 添加有关使用 mcptix 的说明:

    This project uses mcptix for ticket tracking. When planning work:
    
    1. Use the mcptix MCP server to create and manage tickets
    2. Break down complex tasks into smaller tickets
    3. Use the agent_context field in tickets to store comprehensive planning in Markdown format
    4. Project files are located in: /path/to/your/project

使用 mcptix 与 AI 助手

配置完成后,您就可以开始与 AI 助手讨论您的项目了。工作流程如下:

  1. 启动 mcptix UI :

    npx mcptix start
  2. 与 Claude Desktop 或您的 AI 助手展开对话,规划您的项目

  3. 寻求帮助分解复杂任务:例如:“我需要实施用户身份验证系统。您能帮我将其分解为可管理的票证吗?”

  4. AI 将在agent_context字段中创建包含详细计划的工单

  5. 在 mcptix UI 中**查看票证,**网址为http://localhost:3000 (或您配置的端口)

  6. 按照agent_context字段中的计划执行工单

  7. 与您的 AI 助手一起审查进度并根据需要完善计划

与 Cline/Roo 合作

与 Cline 或 Roo 合作时:

  1. 告诉助理找票:

    Find tickets in the 'in-progress' status.
  2. 要求助理处理特定工单:

    Work on ticket id `ticket-1234567890` following the plan in the agent_context.
  3. 助手将执行 agent_context 字段中的计划

看板使用

看板

当你打开 mcptix 时,你会看到一个看板,其中有不同票证状态的列:

  • 待办事项- 需要处理的工单

  • 接下来- 准备处理的工单

  • 进行中- 当前正在处理的工单

  • 审核中- 正在审核的工单

  • 已完成- 已完成的票

手动创建工单

  1. 点击右上角的“新票”按钮

  2. 填写票证详细信息:

    • 标题

    • 描述

    • 地位

    • 优先事项

  3. 点击“保存”

更新工单

  1. 单击票证即可打开它

  2. 编辑票证详细信息

  3. 更改会自动保存

添加评论

  1. 开立票据

  2. 向下滚动到评论部分

  3. 输入您的评论

  4. 点击“添加评论”

高级配置

您可以通过编辑.mcptix/mcptix.config.js文件来自定义 mcptix:

module.exports = {
  // Database configuration
  dbPath: './.mcptix/data/mcptix.db',

  // API server configuration
  apiPort: 3000,
  apiHost: 'localhost',

  // Server options
  mcpEnabled: false, // Disabled by default - MCP server should be started by the LLM agent
  apiEnabled: true,

  // Logging configuration
  logLevel: 'info',

  // Data management
  clearDataOnInit: false,
};

常见自定义

  • 更改端口:如果端口 3000 已被使用,请将apiPort更改为其他数字

  • 更改数据位置:如果要将数据存储在其他地方,请更改dbPath

故障排除

安装问题

  • 运行 mcptix 时出现“未找到命令”

    • 确保你已经安装了 mcptix ( npm install @ownlytics/mcptix )

    • 尝试使用完整路径: ./node_modules/.bin/mcptix node_modules/.bin/mcptix

  • 初始化失败

    • 检查您是否有权限写入当前目录

    • 确保 Node.js 已安装且为最新版本

mcptix UI 无法启动

  • 端口已被使用

    • 在.mcptix/mcptix.config.js中更改端口

    • 检查另一个实例是否已在运行

  • 数据库错误

    • 确保数据库路径可访问

    • 检查.mcptix目录的文件权限

人工智能集成问题

  • AI助手无法连接到mcptix

    • 验证 MCP 配置路径是否绝对且正确

    • 检查你的AI助手是否支持MCP

    • 确保配置中的数据库路径可供 MCP 服务器访问

  • MCP 服务器无法启动

    • 检查 MCP 配置中的环境变量

    • 验证 Node.js 和 mcptix MCP 服务器的路径

    • 查找 AI 助手日志中的错误消息

  • “未找到模块”错误

    • 确保 mcptix 正确安装

    • 检查 MCP 配置中的路径是否正确

命令行参考

mcptix 提供了几个命令行选项:

# Initialize mcptix in your project
npx mcptix init

# Start mcptix
npx mcptix start

# Start with custom port and host
npx mcptix start --port 3001 --host 0.0.0.0

# Start without opening the browser
npx mcptix start --no-open

# Start only the MCP server (for development/testing purposes)
npx mcptix mcp

了解 MCP 架构

MCP(模型上下文协议)服务器旨在由您的AI助手启动,而不是由mcptix本身启动。此架构可确保:

  1. MCP 服务器仅在需要时运行

  2. MCP 服务器可以访问正确的数据库

  3. MCP 服务器已为您的 AI 助手正确配置

当你的AI助手需要与mcptix交互时,它将:

  1. 从其配置目录中读取 MCP 配置文件

  2. 按照配置启动 MCP 服务器

  3. 连接到 MCP 服务器

  4. 使用 MCP 服务器提供的工具和资源与 mcptix 进行交互

🛡️ 许可与使用

该项目根据**商业源许可证 1.1(BSL 1.1)**获得许可。

欢迎您出于非商业目的使用、修改和探索本软件,包括内部评估、实验或研究。

商业用途(包括在生产、付费服务或企业环境中)需要获得 Tesseract Labs, LLC 的商业许可。

我们很乐意为希望集成或扩展此工具的团队提供支持。请联系我们获取许可或咨询:

📧 hello@ownlytics.io
📄查看完整许可条款

尊重此许可有助于支持持续发展和创新。

Available Tools

8 tools
add_commentC

Add a comment to a ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
authorNoComment authoragent
contentYesComment content
statusNoComment statusopen
ticket_idYesTicket ID
typeNoComment typecomment

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. 'Add a comment' implies a write/mutation operation, but the description doesn't specify permissions required, whether comments are editable or deletable, rate limits, or what happens on success/failure. This leaves critical behavioral traits unaddressed 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.

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and efficiently communicates the essential action without unnecessary elaboration, making it easy to parse quickly.

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 that this is a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns, error conditions, or side effects. For a tool that modifies data, more context about behavioral expectations is needed to guide safe and effective use.

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 no parameter semantics beyond what the input schema provides. With 100% schema description coverage, all parameters (ticket_id, content, author, status, type) are documented in the schema with descriptions, defaults, and enums. The baseline score of 3 is appropriate as the schema does the heavy lifting, but the description doesn't enhance understanding of parameter usage or relationships.

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 comment') and the target resource ('to a ticket'), which is specific and unambiguous. However, it doesn't differentiate this tool from potential sibling tools like 'update_ticket' that might also handle comments, so it doesn't fully distinguish itself from alternatives.

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. With siblings like 'update_ticket' that might modify tickets, there's no indication of whether this is the primary method for adding comments or if other tools should be preferred in certain contexts. No exclusions or prerequisites are mentioned.

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

create_ticketD

Create a new ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
complexity_metadataNoComplexity metrics
descriptionNoTicket description
priorityNoTicket prioritymedium
statusNoTicket statusbacklog
titleYesTicket title

TDQS

D1.7/5.0
Behavior1/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 but provides none. 'Create a new ticket' doesn't indicate whether this is a mutating operation (it clearly is), what permissions might be required, whether there are rate limits, what happens on success/failure, or what the response contains. For a creation tool with complex nested parameters, this lack of behavioral context is a significant gap.

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

Conciseness2/5

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

While technically concise with just three words, this is a case of under-specification rather than effective brevity. The description is too minimal for a tool with 5 parameters including a complex nested object with 16 sub-properties. Every sentence should earn its place, but here the single 'sentence' fails to provide necessary context for proper tool selection and use.

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

Completeness1/5

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

Given the complexity (5 parameters with nested objects), absence of annotations, and lack of output schema, the description is completely inadequate. A creation tool with sophisticated complexity metrics and status tracking needs far more context about system behavior, success conditions, error handling, and relationships to other tools. The current description provides none of this necessary 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?

The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds zero additional parameter information beyond what's already in the structured schema. However, since the schema does the heavy lifting with detailed descriptions for each property, the baseline score of 3 is appropriate - the description doesn't help but doesn't need to given the comprehensive schema documentation.

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

Purpose2/5

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

The description 'Create a new ticket' is a tautology that essentially restates the tool name. While it does specify the verb 'create' and resource 'ticket', it provides no differentiation from sibling tools like 'update_ticket' or context about what constitutes a ticket in this system. It's minimally informative but doesn't go beyond restating the obvious.

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

Usage Guidelines1/5

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

The description provides absolutely no guidance about when to use this tool versus alternatives. There are multiple sibling tools (add_comment, delete_ticket, update_ticket, get_ticket, list_tickets, search_tickets) but no indication of when this creation tool is appropriate versus updating existing tickets or other operations. No context about prerequisites, timing, or relationships to other tools is provided.

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

delete_ticketC

Delete a ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTicket ID

TDQS

C2.7/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 for behavioral disclosure. 'Delete' implies a destructive mutation, but the description doesn't specify whether this is permanent, requires special permissions, triggers notifications, or returns confirmation. For a destructive operation with zero annotation coverage, this is a significant gap.

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 at three words with zero wasted language. It's front-loaded with the core action and resource. While it's under-specified, this dimension scores conciseness, not 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?

For a destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't address critical context like irreversible consequences, permission requirements, error conditions, or what happens upon success. The agent lacks sufficient information to use this tool safely and effectively.

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% (the 'id' parameter is documented as 'Ticket ID'), so the schema already provides parameter meaning. The description adds no additional context about parameter format, validation, or where to obtain the ID. 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.

Purpose3/5

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

The description states the action ('Delete') and target resource ('a ticket'), which provides a basic understanding of purpose. However, it lacks specificity about what constitutes a ticket in this system and doesn't differentiate from sibling tools like 'update_ticket' or 'create_ticket' beyond the obvious verb difference.

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?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing ticket ID from get_ticket/list_tickets), irreversible consequences, or when deletion might be inappropriate versus updating or archiving.

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

get_statsC

Get statistics about tickets in the system

ParametersJSON Schema
NameRequiredDescriptionDefault
group_byNoField to group bystatus

TDQS

C2.6/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 'Get statistics', which implies a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns aggregated data, or details about output format. For a tool with no annotations, 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.

Conciseness4/5

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

The description is a single, clear sentence that efficiently states the tool's purpose without unnecessary words. However, it could be more front-loaded with key details like the aggregation aspect, but it's appropriately sized for its limited content.

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 tool's purpose (statistics retrieval) and lack of annotations and output schema, the description is incomplete. It doesn't explain what statistics are returned, in what format, or any behavioral traits like data freshness or access requirements. For a tool with no structured support, more descriptive context is needed.

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, clearly documenting the 'group_by' parameter with enum values. The description doesn't add any meaning beyond the schema, as it doesn't mention parameters at all. With high schema coverage, the baseline score of 3 is appropriate since the schema handles parameter documentation adequately.

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

Purpose3/5

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

The description states the tool 'Get statistics about tickets in the system', which provides a basic purpose (verb+resource) but lacks specificity about what kind of statistics or scope. It doesn't distinguish from sibling tools like 'list_tickets' or 'search_tickets' that also retrieve ticket information, making it somewhat vague.

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?

No guidance is provided on when to use this tool versus alternatives like 'list_tickets' or 'search_tickets'. The description implies it's for aggregated statistics, but it doesn't explicitly state this or mention prerequisites, leaving the agent to infer usage from context alone.

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

get_ticketC

Get a ticket by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTicket ID

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 full burden but adds minimal behavioral context. It states 'Get' which implies a read operation, but doesn't disclose traits like whether it requires authentication, returns full or partial data, handles errors, or has rate limits. This is inadequate for a 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 extremely concise ('Get a ticket by ID'), front-loaded with the core action, and wastes no words. Every part of the sentence is essential, making it efficient and easy to parse, though it may be overly brief for 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 parameter, the description is incomplete. It doesn't explain what the tool returns (e.g., ticket details, status), error conditions, or behavioral aspects. For a basic read tool, this leaves significant gaps in understanding its full context and usage.

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 parameter 'id' documented as 'Ticket ID' in the schema. The description adds no additional meaning beyond this, such as format examples (e.g., numeric vs. string) or constraints. Baseline 3 is appropriate since the schema does the heavy lifting, but no extra value is provided.

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 ('Get') and resource ('a ticket by ID'), making the purpose understandable. It distinguishes from siblings like list_tickets (multiple tickets) and search_tickets (filtered search), though not explicitly. However, it lacks specificity about what 'get' entails (e.g., retrieve details vs. status), preventing 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify that this is for retrieving a single known ticket ID, whereas list_tickets returns multiple tickets or search_tickets filters by criteria. The description implies usage by mentioning 'by ID' but offers no explicit context or exclusions.

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

list_ticketsB

List tickets with optional filtering, sorting, and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tickets to return
offsetNoNumber of tickets to skip
orderNoSort orderdesc
priorityNoFilter by priority
searchNoSearch term for title and description
sortNoSort fieldupdated
statusNoFilter by status

TDQS

B3.1/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 'optional filtering, sorting, and pagination' but lacks critical behavioral details: it doesn't specify default behavior beyond what's in the schema (e.g., default sort order), doesn't mention rate limits, authentication needs, or what happens with invalid parameters. For a list operation with 7 parameters, this leaves significant gaps in understanding how the tool behaves in practice.

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 purpose ('List tickets') and succinctly lists key features. Every word earns its place with no redundancy or fluff, making it easy for an agent to parse quickly while covering essential aspects.

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 moderate complexity (7 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic action and features but lacks details on behavioral traits, output format, or error handling. Without annotations or output schema, the agent is left with incomplete context for reliable invocation, though the schema provides solid parameter documentation.

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 7 parameters. The description adds minimal value beyond the schema by summarizing the optional features (filtering, sorting, pagination), but doesn't provide additional context like parameter interactions or usage examples. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract either.

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 'tickets', making the purpose unambiguous. It distinguishes from siblings like 'get_ticket' (singular) and 'search_tickets' (implied broader search), though it doesn't explicitly differentiate from 'search_tickets' which might have overlapping functionality. The description is specific about the action but could be more precise about scope.

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?

No guidance is provided on when to use this tool versus alternatives like 'search_tickets' or 'get_ticket'. The description mentions optional filtering, sorting, and pagination, but doesn't specify contexts or exclusions. Without explicit usage rules, the agent must infer based on tool names alone, which is insufficient for reliable selection.

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

search_ticketsC

Search for tickets based on various criteria

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tickets to return
offsetNoNumber of tickets to skip
orderNoSort orderdesc
priorityNoFilter by priority
queryYesSearch query
sortNoSort fieldrelevance
statusNoFilter by status

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 mentions 'based on various criteria', which hints at filtering, but fails to detail key behaviors such as pagination handling (implied by limit/offset), authentication needs, rate limits, or what the search returns. This leaves significant gaps for a tool with 7 parameters.

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 no wasted words. It's appropriately sized and front-loaded, directly stating the tool's action without unnecessary elaboration.

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?

For a search tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, error handling, or how search criteria combine, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.

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 meaning beyond the input schema, which has 100% coverage with detailed parameter descriptions. It implies filtering via 'various criteria', but doesn't elaborate on syntax or interactions between parameters. Given the high schema coverage, a baseline score of 3 is appropriate as the schema does most of the work.

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 ('search') and resource ('tickets'), making the purpose evident. However, it doesn't distinguish this tool from its sibling 'list_tickets', which might also retrieve tickets, leaving room for ambiguity in sibling differentiation.

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 'list_tickets' or 'get_ticket'. It lacks explicit context, exclusions, or prerequisites, offering minimal usage direction beyond the basic action.

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

update_ticketC

Update an existing ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
complexity_metadataNoComplexity metrics
descriptionNoTicket description
idYesTicket ID
priorityNoTicket priority
statusNoTicket status
titleNoTicket title

TDQS

C2.7/5.0
Behavior2/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. 'Update' implies a mutation, but it doesn't disclose any behavioral traits such as required permissions, whether updates are partial or full, error handling, or side effects. 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's appropriately sized and front-loaded, making it easy to parse quickly. Every word earns its place without redundancy or unnecessary elaboration.

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 (6 parameters including nested objects, no output schema, and no annotations), the description is incomplete. It doesn't address key aspects like what fields are updatable, how partial updates work, or what the tool returns. For a mutation tool with rich input schema but no annotations or output schema, this leaves significant gaps.

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%, so the schema already documents all 6 parameters thoroughly, including nested objects and enums. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain parameter interactions or constraints). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Update an existing ticket' clearly states the action (update) and resource (ticket), which is better than a tautology. However, it doesn't specify what aspects can be updated or differentiate this from sibling tools like 'add_comment' or 'create_ticket' beyond the basic verb. It's vague about scope and distinction.

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 doesn't mention prerequisites (e.g., needing an existing ticket ID), when not to use it (e.g., for creating new tickets), or refer to sibling tools like 'create_ticket' or 'delete_ticket' for different operations. Usage is implied but not explicit.

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. 8 tool updatesv1.0.0
    • First observedadd_comment
    • First observedcreate_ticket
    • First observeddelete_ticket
    • First observedget_stats
    • First observedget_ticket
    • First observedlist_tickets
    • First observedsearch_tickets
    • First observedupdate_ticket

TDQS

B3.1/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity: add_comment, create_ticket, delete_ticket, get_stats, get_ticket, list_tickets, search_tickets, and update_ticket all target specific actions on tickets or related data. The descriptions reinforce distinct roles, such as list_tickets for listing with filters versus search_tickets for searching based on criteria.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as create_ticket, get_ticket, and update_ticket. This uniformity makes the tool set predictable and easy to understand, with no deviations in naming conventions across the eight tools.

Tool Count5/5

With 8 tools, the count is well-scoped for a ticket management system, covering essential operations without bloat. Each tool earns its place, providing a balanced set for CRUD operations, commenting, statistics, listing, and searching, which aligns perfectly with the server's purpose.

Completeness5/5

The tool set offers complete CRUD/lifecycle coverage for ticket management: create_ticket, get_ticket, update_ticket, and delete_ticket handle the core lifecycle, while add_comment supports interaction, and list_tickets, search_tickets, and get_stats provide comprehensive querying and analytics. No obvious gaps exist for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that provides issue tracking tools for Jira, Redmine, GitHub, and GitLab via the Model Context Protocol, enabling agents to search, fetch, sync, and manage issues through natural language.
    MIT