Skip to main content
Glama

맥픽틱스 베타

AI 어시스턴트 통합을 통한 간단하면서도 강력한 티켓 추적 시스템입니다.

버전상태 npm 버전 특허 빌드 상태농담

mcptix 배너

mcptix란 무엇인가요?

mcptix는 프로젝트의 작업, 버그, 기능을 관리하는 데 도움이 되는 티켓 추적 시스템입니다. 사용하기 쉽게 설계되었으며, 모델 컨텍스트 프로토콜(MCP)을 통해 AI 어시스턴트와 통합됩니다.

  • 📋 티켓 추적 - 프로젝트에 대한 티켓을 생성, 업데이트 및 관리하세요

  • 🧠 복잡성 측정 - 복잡성 인텔리전스 엔진을 사용하여 티켓의 복잡성을 추적하세요

  • 💬 댓글 추가 - 티켓에 대한 댓글을 사용하여 협업하세요

  • 🤖 AI 통합 - 향상된 계획 및 코딩을 위해 AI 어시스턴트를 mcptix에 연결하세요

Related MCP server: agent-todo-mcp

빠른 시작 가이드

기본 기능을 빠르게 익히고 싶은 분들을 위해:

지엑스피1

기본 사용법은 여기까지입니다! AI 어시스턴트 통합에 대한 자세한 내용은 아래 AI 통합 가이드를 참조하세요.

전체 설치 가이드

필수 조건

  • Node.js 14 이상

  • npm 또는 yarn

  • MCP를 지원하는 AI 어시스턴트(Claude Desktop, Roo 등)

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 비서가 마크다운을 사용하여 광범위한 계획 문서를 저장할 수 있는 공간을 제공하면서도 대화를 복잡하게 만들지 않습니다.


💡⚡️ mcptix를 활용한 비용 효율적인 개발

API로 연결된 LLM 에이전트가 지속적으로 계획, 코드 실행, 오류 처리 및 디버깅을 수행하게 되면 비용이 빠르게 증가할 수 있습니다. 에이전트가 동일한 컨텍스트를 반복적으로 처리하고 여러 상호작용에서 상태를 유지해야 하는 경우 API 비용이 누적됩니다.

더욱 비용 효율적인 방법: Claude Desktop(Claude 3.7 Sonnet을 실행하는 Pro 계정)을 mcptix 및 파일 시스템 액세스 권한으로 구성합니다. 이 로컬 설정은 강력한 AI 지원을 유지하면서 API 사용량을 크게 줄입니다.

파일 이름, 줄 번호, 메서드 이름 및 기타 참조 지점을 논리적이고 실행 가능한 청크로 구성하여 agent_context 필드에 포괄적인 계획을 저장하면 API 사용량을 최대 80%까지 줄일 수 있습니다.

mcptix는 LLM 코딩 에이전트를 위한 차세대 메모리 뱅크 역할을 하며, 에이전트가 필요한 경우 참조할 수 있는 영구 저장 시스템에 자세한 계획과 컨텍스트를 오프로드할 수 있게 해주며, 모든 것을 제한된 컨텍스트 창에 보관하지 않아도 됩니다.

이 시스템을 특히 강력하게 만드는 것은 코딩 에이전트(예: Roo/Cline)와 Claude Desktop 모두 동일한 기본 mcptix 데이터베이스에 접근한다는 것입니다. 이를 통해 Claude Desktop은 포괄적인 계획을 생성하고 티켓에 저장할 수 있으며, 코딩 에이전트는 이러한 티켓을 검색하여 정확하게 실행할 수 있는 원활한 협업 환경이 조성됩니다. 이들은 공유 티켓 시스템을 통해 효과적으로 소통합니다. Claude Desktop은 복잡한 작업을 실행 가능한 단위로 분할하고, 코딩 에이전트는 매번 컨텍스트를 다시 생성할 필요 없이 이를 구현합니다.


다양한 AI 어시스턴트에 대한 구성

루를 위해

  1. MCP 구성을 복사합니다 .

    npx mcptix init 실행하면 MCP 서버 구성 파일이 .mcptix/mcp-server-config.json 에 생성됩니다. 이 파일을 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": []
        }
      }
    }

    터미널에서 which node 실행한 결과 /absolute/path/to/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. 아직 desktop-commander를 설치하지 않았다면 설치하세요 .

    npm install -g @wonderwhy-er/desktop-commander
  2. Claude Desktop을 파일 시스템에 연결합니다 .

    desktop-commander connect
  3. Claude Desktop 구성 :

    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

AI 어시스턴트와 함께 mcptix 사용

설정이 완료되면 AI 비서와 프로젝트에 대해 소통할 수 있습니다. 워크플로는 다음과 같습니다.

  1. mcptix UI를 시작합니다 .

    npx mcptix start
  2. Claude Desktop 또는 AI 비서와 프로젝트 계획에 대한 대화를 시작하세요 .

  3. 복잡한 작업을 분해하는 데 도움을 요청하세요 . 예: "사용자 인증 시스템을 구현해야 합니다. 이를 관리 가능한 티켓으로 분해하는 데 도움을 주실 수 있나요?"

  4. AI는 agent_context 필드에 자세한 계획을 포함하여 티켓을 생성합니다.

  5. http://localhost:3000 (또는 구성된 포트)에서 mcptix UI에서 티켓을 확인하세요.

  6. agent_context 필드의 계획에 따라 티켓을 실행합니다 .

  7. AI 비서와 함께 진행 상황을 검토 하고 필요에 따라 계획을 수정하세요.

클라인/루와 함께 일하다

클라인이나 루와 함께 작업할 때:

  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.js가 설치되어 있고 최신 상태인지 확인하세요.

mcptix UI가 시작되지 않습니다

  • 포트가 이미 사용 중입니다

    • .mcptix/mcptix.config.js 에서 포트를 변경하세요.

    • 다른 인스턴스가 이미 실행 중인지 확인하세요

  • 데이터베이스 오류

    • 데이터베이스 경로에 액세스할 수 있는지 확인하세요.

    • .mcptix 디렉토리의 파일 권한을 확인하세요

AI 통합 문제

  • 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(Model Context Protocol) 서버는 mcptix 자체가 아닌 AI 어시스턴트에 의해 시작되도록 설계되었습니다. 이 아키텍처는 다음을 보장합니다.

  1. MCP 서버는 필요할 때만 실행됩니다.

  2. MCP 서버는 올바른 데이터베이스에 액세스할 수 있습니다.

  3. MCP 서버는 AI 어시스턴트에 맞게 올바르게 구성되었습니다.

AI 어시스턴트가 mcptix와 상호 작용해야 하는 경우 다음을 수행합니다.

  1. 구성 디렉토리에서 MCP 구성 파일을 읽습니다.

  2. 구성에 지정된 대로 MCP 서버를 시작합니다.

  3. MCP 서버에 연결

  4. MCP 서버에서 제공하는 도구와 리소스를 사용하여 mcptix와 상호 작용합니다.

🛡️ 라이센스 및 사용

이 프로젝트는 Business Source License 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