Skip to main content
Glama
kuraki5336

Lalaleap MCP Server

by kuraki5336

Lalaleap MCP Server

Use MCP (Model Context Protocol) to let AI tools directly operate the Lalaleap project management system.

Once connected, you can use natural language to ask AI to create requirements, check bugs, and manage todos — no need to switch to the browser.


What is it?

你(在 Claude Code / Cursor 裡打字)
  ↓  "幫我在彰基專案建一筆需求:病歷查詢 API"
Claude / Cursor(透過 MCP Protocol 呼叫 tool)
  ↓  callTool("create_requirement", { pno, title, priority })
Lalaleap MCP Server(本專案,TypeScript + stdio)
  ↓  POST /require/add → POST /require/edit
Lalaleap 後端 API(Java)
  ↓
回傳結果 → AI 告訴你「需求已建立,編號 1000160」

In one sentence: It is a translation layer between AI and Lalaleap.


Related MCP server: litejira-mcp

Quick Start (3 minutes)

Step 1: Configure Your AI Tool

No need to manually clone; just point to the GitHub repo in the MCP configuration, and npx will automatically pull and build.

Claude Code — Edit ~/.claude/settings.json:

{
  "mcpServers": {
    "lalaleap": {
      "command": "npx",
      "args": ["-y", "github:kuraki5336/tpi_lalaleap_mcp"],
      "env": {
        "LALALEAP_API_URL": "https://your-domain.com/ap2/lalaleap",
        "LALALEAP_EMAIL": "你的email@gmail.com",
        "LALALEAP_PASSWORD": "你的密碼",
        "LALALEAP_UNSAFE_SSL": "1"
      }
    }
  }
}

Cursor — Add a server in Settings → MCP, fields as above.

Prerequisite: The user's machine needs access to the GitHub repo (private repos require SSH key or personal access token).

LALALEAP_UNSAFE_SSL=1 is because the dev environment SSL certificate has expired; not needed in production.

Alternative: Local Installation

If you don't want to pull via npx each time, you can also clone it:

git clone https://github.com/kuraki5336/tpi_lalaleap_mcp.git
cd tpi_lalaleap_mcp && npm install

Then change the MCP configuration to point to the local path:

{
  "mcpServers": {
    "lalaleap": {
      "command": "node",
      "args": ["/你的路徑/tpi_lalaleap_mcp/dist/index.js"],
      "env": { ... }
    }
  }
}

Step 2: Start Using

Restart your AI tool, and you can start using it directly by chatting.


Authentication Methods

Two methods supported, choose one:

Method

Environment Variables

Description

Password Login

LALALEAP_EMAIL + LALALEAP_PASSWORD

Password SHA256 encryption handled by the program; you provide plaintext

API Token

LALALEAP_API_TOKEN

Available when backend supports it; takes priority over password

All environment variables:

Variable

Required

Description

LALALEAP_API_URL

Yes

API base URL

LALALEAP_EMAIL

One of

Login email

LALALEAP_PASSWORD

One of

Login password

LALALEAP_API_TOKEN

One of

API Token (takes priority over password)

LALALEAP_UNSAFE_SSL

No

1 = Skip SSL verification

LALALEAP_READONLY

No

1 = Read-only mode, disables all write operations

LALALEAP_ALLOWED_PROJECTS

No

Project whitelist (comma-separated pno), only allows writes to these projects

LALALEAP_WRITE_RATE_LIMIT

No

Maximum write operations per minute (default 10)


Available Tools Overview

There are 15 tools in total; AI will automatically choose which to call based on your instructions.

Projects

Tool

What it does

Required Parameters

Optional Parameters

list_projects

List all your projects

get_project_detail

View project details

pno

create_project

Create a new project

name

type (0 public/1 private)

Requirements

Tool

What it does

Required Parameters

Optional Parameters

create_requirement

Create a requirement

pno, title

describe, priority (High/Medium/Low), start_date, end_date

list_requirements

List requirements

pno

page, limit, keyword

get_requirement_detail

View requirement details

pno, rno

update_requirement

Update a requirement

pno, rno

title, status, priority, describe, start_date, end_date

Bugs

Tool

What it does

Required Parameters

Optional Parameters

create_bug

Create a bug

pno, title

describe, priority (High/Medium/Low), serious

list_bugs

List bugs

pno

page, limit

update_bug

Update a bug

pno, rno

title, status, priority, serious, describe

Todos / Sprints / Others

Tool

What it does

Required Parameters

Optional Parameters

create_todo

Create a todo

pno, title

content, priority (high/medium/low), due_date, lane_no

list_todos

View todo board

pno

list_sprints

List sprints

pno

list_project_members

List project members

pno

search_tags

Search tags

pno

keyword


MCP Resources

In addition to tools (which need to be called actively), there are also resources (which AI can read as context):

URI

Content

lalaleap://projects

Project list

lalaleap://project/{pno}/requirements

Requirements of a project

lalaleap://project/{pno}/bugs

Bugs of a project

lalaleap://project/{pno}/sprints

Sprints of a project

lalaleap://project/{pno}/members

Members of a project


Example Conversations

你:幫我看一下有哪些專案
AI:→ list_projects
    你有 12 個專案:彰基_測試、ProjectC、...

你:在彰基_測試建一筆需求「病歷查詢 API」,優先度高
AI:→ list_projects(找到 pno)
    → create_requirement(pno, title="病歷查詢 API", priority="高")
    需求已建立,編號 1000160

你:列出這個專案所有需求
AI:→ list_requirements(pno)
    共 5 筆需求:
    1. 病歷查詢 API(高)- 規劃中
    2. 使用者登入(中)- 進行中
    ...

你:建一個 bug「登入頁按鈕在 Safari 沒反應」
AI:→ create_bug(pno, title="登入頁按鈕在 Safari 沒反應")
    缺陷已建立,編號 2000005

你:幫我加一個待辦「寫 API 文件」,截止下週五
AI:→ create_todo(pno, title="寫 API 文件", due_date="2026-03-28")
    待辦已建立

Architecture & Source Code Tour

tpi_tpad_mcp/
├── src/
│   ├── index.ts            # 入口:啟動 MCP Server、註冊 tools & resources
│   ├── config.ts           # 讀取環境變數
│   ├── api-client.ts       # axios HTTP client,處理登入/token/重試
│   ├── resources.ts        # 5 個 MCP Resources 定義
│   ├── test.ts             # API 整合測試(14 個端點)
│   ├── test-mcp.ts         # MCP Protocol E2E 測試(50 個案例)
│   └── tools/
│       ├── projects.ts     # list_projects, get_project_detail, create_project
│       ├── requirements.ts # create/list/get/update requirement
│       ├── bugs.ts         # create_bug, list_bugs
│       ├── todos.ts        # create_todo, list_todos
│       ├── sprints.ts      # list_sprints
│       ├── tags.ts         # search_tags
│       └── members.ts      # list_project_members
├── docs/
│   └── test-report.md      # QA 測試報告
├── package.json
└── tsconfig.json

Key Design

  • Automatic Authentication: Automatically logs in on startup, automatically refreshes token on 401, and re-logs in if refresh fails.

  • Two-step Creation: When creating requirements/bugs, first POST /add to get an ID, then POST /edit to fill in fields (consistent with frontend behavior).

  • No crashes on errors: Each tool has try-catch, returns friendly Chinese error messages.

  • Write Protection: WriteGuard mechanism protects all write operations (see below).


Security Protection (WriteGuard)

AI may misinterpret instructions and cause batch writes of garbage data. All write operations (create / update) have three lines of defense:

1. Read-only Mode

Completely disables writes; AI can only query, not create/modify anything:

{
  "env": {
    "LALALEAP_READONLY": "1"  // 所有 create/update tool 會被直接阻擋
  }
}

Use Cases: Demo, when a new team member is unsure about AI behavior, or when only queries are needed.

2. Project Whitelist

Restricts AI to write only in specific projects, preventing operations on the wrong project:

{
  "env": {
    // 只允許對這兩個專案做寫入操作,其他專案的 create/update 會被阻擋
    "LALALEAP_ALLOWED_PROJECTS": "be3fd182-3696-41a6-bce8-7f2e9d88b648,c53f210f-xxxx"
  }
}

Use Cases: In production, only open test projects; team members only operate on projects they are responsible for.

3. Write Rate Limit

Limits the maximum number of writes per minute, preventing AI from creating a large number of items in a short time:

{
  "env": {
    "LALALEAP_WRITE_RATE_LIMIT": "5"  // 每分鐘最多 5 次寫入(預設 10)
  }
}

When the limit is triggered, AI will receive a clear error message:

[頻率限制] 過去一分鐘已執行 5 次寫入操作(上限 5 次)。請稍後再試。

Use Cases: Prevents AI from looping to create batches, or misinterpreting commands like 'create 100 requirements for me'.

Scenario

Configuration

Development/Testing

No limits, or WRITE_RATE_LIMIT=20

Daily Use

ALLOWED_PROJECTS=your_project_pno + WRITE_RATE_LIMIT=10

Demo Presentation

READONLY=1

Team Shared

ALLOWED_PROJECTS=team_projects + WRITE_RATE_LIMIT=5


Development

# 開發模式(tsx 直接跑,不需編譯)
npm run dev

# 編譯
npm run build

# API 整合測試(直接打 API,14 個端點)
npm test

# MCP Protocol E2E 測試(透過 stdio 模擬真實 MCP 連線,50 個案例)
LALALEAP_UNSAFE_SSL=1 npx tsx src/test-mcp.ts

Adding a Tool

  1. Add or modify the corresponding file in src/tools/

  2. Register using server.tool(name, description, zodSchema, handler)

  3. If it's a new file, import and call the register function in src/index.ts

  4. Run tests to confirm

// 範例:新增一個 tool
server.tool(
  'my_new_tool',
  '這個 tool 做什麼',
  {
    pno: z.string().describe('專案編號'),
    someParam: z.string().optional().describe('說明'),
  },
  async ({ pno, someParam }) => {
    try {
      const resp = await api.post('/some/endpoint', { pno, someParam });
      return {
        content: [{ type: 'text', text: JSON.stringify(resp.data, null, 2) }],
      };
    } catch (err) {
      return {
        content: [{ type: 'text', text: formatError(err) }],
        isError: true,
      };
    }
  }
);

Troubleshooting

Issue

Solution

certificate has expired

Set LALALEAP_UNSAFE_SSL=1

Need to change password (601)

Already handled automatically (server retries with keepCipher='Y')

LALALEAP_API_URL environment variable not set

Ensure the env block in the MCP client configuration is included

Cannot connect to server

Ensure npm run build has been run and dist/index.js exists

Tool not appearing

Restart the AI tool, verify settings.json format is correct


Tech Stack

Item

Version

Node.js

18+

TypeScript

5.9

MCP SDK

@modelcontextprotocol/sdk 1.27

HTTP Client

axios 1.13

Schema Validation

zod 4.3

Transport

stdio (standard input/output)


Test Coverage

Category

Count

Pass Rate

MCP Protocol E2E (including tools + resources + edge cases)

50

100%

API Integration Tests

14

100%

TypeScript Type Check

Zero errors

Full test report at docs/test-report.md.

Available Tools

15 tools
create_bugA

在指定專案中建立一筆缺陷(寫入操作,受白名單與頻率限制保護)

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
titleYes缺陷標題
seriousNo嚴重程度
describeNo缺陷描述
priorityNo優先度:高 / 中(預設)/ 低

TDQS

A3.9/5.0
Behavior4/5

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

The description explicitly notes this is a write operation protected by whitelist and frequency limits, which adds valuable behavioral context beyond what the schema provides. Since no annotations are present, the description carries the full burden and does so effectively for the key concerns.

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 sentence with a parenthetical, which is concise and front-loaded. No wasted words, but it could be structured more clearly, e.g., separating the behavioral note from the main purpose.

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 5 parameters and no output schema, the description sufficiently covers purpose and key behavioral constraints. It does not explain return values or the relationship between project and bug, but these are not critical for a create operation.

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 provides clear parameter meanings. The tool description adds no additional parameter-level details, resulting in no extra value beyond the baseline set by 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 creates a bug in a specified project, using a specific verb and resource. This distinguishes it from sibling tools like create_project, create_requirement, and create_todo, which have different resources.

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?

No explicit guidance on when to use this tool versus alternatives. The description only states what it does, leaving the agent to infer usage context from the tool name and siblings. No when-not scenarios or alternative tool references are provided.

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

create_projectA

建立新專案(寫入操作,受頻率限制保護)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes專案名稱(最多 20 字)
typeNo0 公開(預設)/ 1 私人

TDQS

A3.6/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. The description mentions it is a write operation ('寫入操作') and is protected by rate limits ('受頻率限制保護'), which adds transparency beyond what the schema provides. However, it does not disclose other behavioral traits such as overlapping project names, ownership, or response details.

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 extremely concise at one line, with no wasted words. It front-loades the core purpose and includes key behavioral notes. It could be considered slightly under-specified for a creation tool, but it earns a 4 for being efficient and to the point.

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 that there are only 2 parameters, no output schema, and no annotations, the description covers the basic fact that this is a write operation with rate limits. However, it lacks information about what happens after creation, whether duplicate names are allowed, and how the response looks. It is adequate for a simple project creation tool but could provide more 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 baseline is 3. The description itself does not list or explain any parameters; it relies entirely on the schema. The description adds no additional meaning beyond what the input schema already provides for the 'name' and 'type' fields.

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 '建立新專案' (create new project), which is a specific verb+resource combination. It distinguishes itself from sibling tools like 'list_projects' and 'get_project_detail' that are read-only, and from other creation tools like 'create_requirement', 'create_bug', and 'create_todo' that create different resource types.

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 does not explicitly state when to use this tool versus alternatives. While it is clear from the name and description that one should use this to create a project, there are no usage guidelines for scenarios like when to use 'create_project' vs 'create_requirement' or what prerequisites exist. The description provides no exclusions or alternative suggestions.

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

create_requirementA

在指定專案中建立一筆需求(寫入操作,受白名單與頻率限制保護)

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
titleYes需求標題
describeNo需求描述(支援純文字)
end_dateNo結束日期 YYYY-MM-DD
priorityNo優先度:高 / 中(預設)/ 低
start_dateNo起始日期 YYYY-MM-DD

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 full burden. It discloses it's a write operation with whitelist and rate-limit protection, but lacks details on return behavior, error states, or idempotency.

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, front-loaded sentence that conveys the core action and key constraints without wasted words.

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 6 parameters, no output schema, and no annotations, the description is too brief. It omits return format, error handling, and guidance on required parameters like pno.

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 baseline is 3. The description adds no additional meaning beyond the schema; no parameter guidance or clarifications are provided.

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 creates a requirement in a specified project, using a specific verb and resource. It distinguishes from sibling tools like update_requirement, get_requirement_detail, and create_bug.

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 when to use (creating a new requirement in a project) but does not explicitly contrast with alternatives like update_requirement or include exclusions or prerequisites.

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

create_todoB

在指定專案中建立待辦項目(寫入操作,受白名單與頻率限制保護)

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
titleYes待辦標題
contentNo待辦內容
lane_noNo看板欄位編號(預設第一欄)
due_dateNo截止日期 YYYY-MM-DD
priorityNo優先度:high / medium(預設)/ low

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 the full burden. It discloses that it is a 'write operation' and 'protected by whitelist and frequency limit', but does not explain what happens on success or failure, whether it is idempotent, what the response looks like, or any side effects. For a mutation tool this is insufficient.

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 sentence with a parenthetical note, which is concise and front-loaded. It wastes no words, though it could be slightly more structured (e.g., separate usage from behavior).

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 6 parameters (2 required), no output schema, and no annotations, the description is too brief. It does not explain return values, error handling, or any constraints beyond the protection note. For a tool with multiple parameters, this is incomplete.

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 coverage is 100%, so the baseline is 3. The description does not add any parameter-level meaning beyond the schema's own property descriptions. It mentions the project scope but does not elaborate on parameters like pno, title, or optional fields.

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), the resource ('待辦項目' = to-do item), and the scope ('在指定專案中' = in a specified project). It also mentions it's a write operation with protections, which helps distinguish it from sibling tools like list_todos (read-only) or create_bug (different resource).

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 create_requirement or create_bug. There is no explicit mention of context, prerequisites, or when not to use it. The description only states what it does, not when to invoke it.

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

get_project_detailC

取得專案詳細資訊

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號

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 must fully disclose behavior. It only states 'get project detail', implying a read operation but does not explicitly confirm it is read-only, nor does it mention any required permissions, side effects, or edge cases. This is insufficient given the lack of annotations.

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 sentence with no wasted words. However, it is underspecified; conciseness is good but the content could be expanded slightly to improve clarity without becoming verbose.

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 absence of an output schema, the description should at least hint at what 'detailed information' includes (e.g., project fields, members, etc.). It does not, leaving the agent uncertain about the return value. With sibling tools providing similar patterns, the description is incomplete for the agent to fully understand the tool's scope.

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 covers 100% of the single parameter 'pno', and the description adds no additional meaning beyond the schema's own description '專案編號'. Since schema coverage is high, the baseline score of 3 is appropriate; the description does not enhance parameter understanding.

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 conveys that the tool retrieves detailed information for a specific project, matching the tool name 'get_project_detail'. However, it does not differentiate from sibling tools like 'list_projects' which may return summary data. The purpose is clear but lacks explicit 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 such as 'list_projects' or 'get_requirement_detail'. There is no mention of prerequisites or context, leaving the agent without decision support.

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

get_requirement_detailB

取得單筆需求的完整資訊

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
rnoYes需求編號

TDQS

B3.2/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. It only states it retrieves information without mentioning side effects, authentication needs, rate limits, or idempotency. The agent cannot infer whether this is a safe read operation or whether it has any constraints.

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, concise sentence with no wasted words. It is front-loaded with the core action, though it could be slightly expanded without becoming verbose.

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 (two parameters, no nested objects, no output schema), the description is minimally adequate. It states the purpose but does not describe the return format or provide examples, which would be helpful for complete agent understanding.

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% (both parameters have Chinese descriptions). The tool description adds no additional meaning beyond the schema, so the baseline score of 3 applies. The description does not explain parameter relationships or usage nuances.

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 '取得單筆需求的完整資訊' (get complete information of a single requirement) clearly states the verb (get) and resource (requirement detail). The word '單筆' (single) distinguishes it from sibling tools like list_requirements, which retrieve multiple items.

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 such as list_requirements or get_project_detail. It does not mention prerequisites, exclusions, or contextual triggers for selection.

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

list_bugsC

查詢指定專案的缺陷清單

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
pageNo頁碼(預設 1)
limitNo每頁筆數(預設 20)

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 the full burden of behavioral disclosure. It only states that the tool queries a bug list. It does not disclose pagination behavior, default sorting, error handling, or whether results are limited or ordered. For a read operation, this is insufficient to set agent expectations.

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 concise sentence that immediately conveys the core action and resource. It is front-loaded with the verb and object. While it could include more information without becoming verbose, it avoids any unnecessary words or repetition.

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 there is no output schema, the description should clarify what the tool returns (e.g., a list of bug objects, paginated results, empty array). It does not. The description also lacks contextual details like sorting order or default pagination values. For a simple list tool with three parameters, the description is incomplete.

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 for all three parameters (pno, page, limit), each with a clear label in Chinese. The tool description does not add any additional semantic value beyond what the schema already provides. Baseline score of 3 is appropriate when schema fully documents parameters.

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 '查詢' (query) and the resource '缺陷清單' (defect list) scoped to a specific project. It distinguishes the tool from sibling tools like create_bug or update_bug by focusing on listing, but does not explicitly differentiate from other list tools like list_requirements or list_todos. The purpose is clear and specific.

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 (e.g., create_bug for new bugs or search tools). There is no indication of prerequisites, limitations, or contextual usage advice. An agent would need to infer usage from the tool name alone.

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

list_project_membersB

查詢專案成員

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits such as required permissions, rate limits, or side effects. The text only states the tool's function, leaving the agent uninformed about authentication, data scope, or potential limitations.

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, efficient sentence that conveys the core purpose. It is front-loaded and concise, but could include more useful information without becoming verbose.

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 low complexity (1 param, no output schema), the description minimally covers the tool's purpose. However, it lacks details about what the output contains (e.g., member names, roles) and any implicit constraints, making it adequate but not complete.

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 coverage is 100% (single parameter 'pno' with description). The description adds no extra meaning beyond the schema, so it meets the baseline of 3 for high coverage without adding value.

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 means 'list project members', conveying a specific verb and resource. It distinguishes from sibling tools like list_projects and get_project_detail by indicating it returns members of a project, not the project itself.

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 (e.g., get_project_detail might also include members). There are no prerequisites, exclusions, or contextual hints about when listing members is appropriate.

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

list_projectsB

列出使用者可存取的專案清單

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden of behavioral disclosure. It only states that the tool lists projects, but does not specify whether results are paginated, sorted, filtered, or what permissions are required. Critical behavioral traits about return format or data limits are absent.

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 concise sentence with no wasted words. However, it omits useful details that could be added without sacrificing conciseness, such as noting that it returns project names or IDs.

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 zero parameters, no output schema, and no annotations, the description is the sole source of context. It adequately states the core functionality but lacks detail on return format, error behavior, or how the list is ordered or filtered. For a simple list tool, this is minimally adequate but leaves 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?

There are zero parameters and 100% schema coverage, so the description does not need to clarify them. The description adds value by specifying that the list includes only 'accessible to the user,' which is meaningful context beyond the empty schema. Baseline 4 for zero-parameter tools is appropriate here.

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 it lists projects accessible to the user, providing a specific verb and resource. It distinguishes from sibling tools like get_project_detail and list_sprints by resource, but does not explicitly differentiate from other list tools (e.g., list_requirements) beyond 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 Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as get_project_detail or list_requirements. There is no mention of prerequisites, exclusions, or context-dependent usage, leaving the agent to infer appropriateness.

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

list_requirementsB

查詢指定專案的需求清單

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
pageNo頁碼(預設 1)
limitNo每頁筆數(預設 20)
keywordNo搜尋關鍵字(標題模糊搜尋)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must convey behavioral traits. It does not state that the operation is read-only, whether it supports fuzzy search (the keyword description hints at title fuzzy search but is not in the description), or what happens when no results are found. The parameter 'keyword' mention in schema is not echoed in the description, missing an opportunity to disclose search 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 a single, concise sentence in Chinese that communicates the tool's purpose without extraneous text. It is front-loaded with the action and object, and every character earns its place. No fluff 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 has 4 parameters, 100% schema coverage, no output schema, and no annotations, the description is minimally adequate. It does not explain return format (e.g., list of requirement objects, count) or edge cases (e.g., invalid project number). A moderately complete description would still need to mention search behavior and pagination effects, which are absent.

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 baseline is 3. The description adds no information beyond the schema—it does not explain how parameters interact (e.g., keyword applies to title only, pagination with page/limit). However, since the schema already fully documents each parameter, the description does not detract but adds no extra semantic value.

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 '查詢' (query) and the resource '需求清單' (requirements list), and distinguishes it from siblings like 'create_requirement' and 'get_requirement_detail' by framing it as a list operation. However, it does not explicitly mention that it lists requirements for a given project, though the parameter 'pno' implies this. The purpose is clear but could be more explicit about the resource being 'requirements of a project.'

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, the difference from 'get_requirement_detail' (which likely returns a single requirement) or 'list_projects' (which lists projects) is not clarified. There is no mention of prerequisites or context such as needing a valid project number first.

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

list_sprintsC

查詢專案的迭代清單

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號

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 for behavioral disclosure. It does not state read-only nature, performance characteristics, or any edge-case behaviors (e.g., empty sprint list, error on invalid pno). The agent must infer safety from the verb '查詢' (query), which is implicit.

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, direct sentence that conveys the tool's purpose without unnecessary words. It could be slightly longer to add usage guidelines or transparency details, but it is concise and front-loaded.

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 has one required parameter and no output schema, the description is too minimal. It lacks context about the return format (e.g., sprint IDs, dates) and does not compensate for the absent output schema. The agent is left to guess what fields are in the sprint list, which is insufficient for complex tool selection.

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 a single parameter (pno) labeled '專案編號' (project number). The description does not add new meaning beyond the schema, but since coverage is high and the parameter is straightforward, a baseline of 3 is appropriate.

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 retrieves a project's sprint list ('查詢專案的迭代清單'), using a specific verb+resource combination. It distinguishes from siblings like list_projects and list_requirements by specifying the entity ('sprints'), but could be more explicit about the resource type to improve 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. Given siblings like create_project and list_todos, the agent needs context on the tool's role in project management workflows, but none is provided beyond the basic purpose.

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

list_todosC

查詢專案的待辦看板(含欄位與項目)

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號

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 must fully disclose behavior. It only implies a read operation via '查詢' but does not explicitly state it is read-only, what happens on invalid project numbers, whether pagination exists, or any side effects. The mention of '包含欄位與項目' hints at output structure but lacks clarity.

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?

Single sentence containing essential purpose and scope. No redundancy. However, it could be expanded slightly to include usage context without losing conciseness.

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 simple listing tool without output schema or annotations, the description lacks crucial context: return value structure, read-only nature, error behavior, and relationship to other todo tools. The hint about 'fields and items' is insufficient to fully understand what the agent will receive.

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% (pno described as '專案編號'), so baseline is 3. The tool description adds no extra meaning beyond the schema—does not explain format, length, or examples. This is adequate but not additive.

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 queries a project's to-do board including fields and items (查詢專案的待辦看板(含欄位與項目)). This distinguishes it from sibling list tools (e.g., list_projects, list_bugs) by specifying the resource type and inclusion of board structure.

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 on when to use this tool versus alternatives (e.g., create_todo, search_tags). No prerequisites mentioned (e.g., project must exist) and no scenarios where it should not be used.

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

search_tagsC

搜尋專案標籤

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
keywordNo搜尋關鍵字

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 the full burden for behavioral disclosure. It only states the action ('search') without disclosing whether the operation is read-only, what the response looks like, or any side effects or permissions. This is a minimal, non-informative disclosure beyond the tool's name.

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, compact sentence with no filler or redundant information. Every word contributes to stating the purpose, making it appropriately concise and front-loaded.

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?

Despite the tool's simplicity, the description is incomplete for an AI agent. It lacks information about the return format (e.g., list of tag names, exact matches vs. partial), any filtering behavior, or how the keyword interacts with the project. With no output schema and no annotations, the description should provide this 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 provides descriptions for both parameters ('pno' as project number, 'keyword' as search keyword), giving 100% coverage. The description adds no additional parameter meaning or context beyond this, so the baseline score of 3 is appropriate.

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 states a clear verb ('搜尋' / search) and resource ('專案標籤' / project tags), making the primary action understandable. However, it does not explicitly mention the project scope (e.g., 'search tags within a project'), which is implied by the required 'pno' parameter, so it falls short of fully distinguishing usage from other list/create tools.

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?

There is no guidance on when to use this tool versus alternatives. The description is a simple statement without any 'use this when...' or 'instead of...' context, leaving the agent to infer suitability from the schema and sibling tool names.

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

update_bugB

更新缺陷欄位(寫入操作,受白名單與頻率限制保護)

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
rnoYes缺陷編號
titleNo新標題
statusNo新狀態
seriousNo新嚴重程度
describeNo缺陷描述
priorityNo新優先度:高 / 中 / 低

TDQS

B3.1/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden. It correctly identifies the operation as a write (update) and mentions protection mechanisms (whitelist, rate limiting). However, it does not disclose what happens if the bug does not exist, whether partial updates are allowed, what the response contains, or any side effects like notifications. The behavioral disclosure is incomplete 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 very concise (one sentence) and front-loads essential information: the action, the object, and security constraints. It earns its place. However, it could be slightly improved by adding a brief note about parameter usage or prerequisites without becoming verbose.

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 has 7 parameters, no output schema, and no annotations, the description is insufficient. It doesn't explain the return value (e.g., what happens on success), how to handle errors, or whether all fields are updated simultaneously. The description covers only the high-level purpose and protection, leaving the agent without guidance on parameter constraints or expected behavior after invocation.

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

Parameters2/5

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

Schema description coverage is 100%, so all 7 parameters have descriptions in the schema. However, the tool description itself does not add any meaning beyond what the schema already provides—it simply repeats '更新缺陷欄位' (update bug fields). It does not explain relationships between parameters (e.g., whether fields are optional or applied atomically) or provide usage context like formatting expectations for 'priority' beyond what's in the schema. With high schema coverage, a baseline of 3 is appropriate, but the lack of added value and the omission of any help for the 5 optional parameters that might be confusing (e.g., 'describe' is ambiguous between description and a verb) justifies a lower score.

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 (update bug fields), the object (bug), and classifies it as a write operation. However, it lacks explicit differentiation from sibling tools like 'update_requirement' or 'create_bug', which is why it doesn't reach a perfect 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 mentions it is protected by a whitelist and frequency limit, implying constraints on when it can be used, but it does not specify when to use this tool vs. alternatives (e.g., create_bug for new bugs, or list_bugs to find the bug first). No guidance on prerequisites or exclusion criteria is given.

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

update_requirementB

更新需求欄位(寫入操作,受白名單與頻率限制保護)

ParametersJSON Schema
NameRequiredDescriptionDefault
pnoYes專案編號
rnoYes需求編號
titleNo新標題
statusNo新狀態
describeNo需求描述
end_dateNo結束日期 YYYY-MM-DD
priorityNo新優先度
start_dateNo起始日期 YYYY-MM-DD

TDQS

B3.2/5.0
Behavior3/5

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

The description discloses that this is a write operation (寫入操作) and warns about whitelist and frequency restrictions, which are helpful behavioral traits. Since annotations are absent, the description carries the full burden, and it provides adequate but not rich details—e.g., no mention of side effects, error conditions, or whether updates are atomic.

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, concise sentence that conveys the essential information without waste. It could be slightly more structured by front-loading the key verb, but it is efficient and to the point.

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 complexity of 8 parameters and no output schema, the description provides basic context (write operation with restrictions) but lacks critical details such as return behavior, what happens on partial updates, or error handling. It is minimally adequate for an agent but leaves gaps in understanding the tool's full behavior.

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 8 parameters. The description adds no additional meaning beyond what the parameter descriptions provide (e.g., it doesn't explain how fields interact or which are required for an update). Baseline 3 is appropriate since 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 is to update requirement fields, which is a specific verb+resource combination. It distinguishes itself from siblings like create_requirement (creation) and get_requirement_detail (read-only). However, it doesn't explicitly differentiate from update_bug, which is a similar mutation tool.

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 includes a vague note about protection (whitelist and frequency limits) but provides no guidance on when to use this tool versus alternatives like create_requirement for creating records or get_requirement_detail for reading. There is no explicit statement of prerequisites or conditions for calling this tool.

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. 15 tool updatesv1.1.0
    • First observedcreate_bug
    • First observedcreate_project
    • First observedcreate_requirement
    • First observedcreate_todo
    • First observedget_project_detail
    • First observedget_requirement_detail
    • First observedlist_bugs
    • First observedlist_project_members
    • First observedlist_projects
    • First observedlist_requirements
    • First observedlist_sprints
    • First observedlist_todos
    • First observedsearch_tags
    • First observedupdate_bug
    • First observedupdate_requirement

TDQS

A3.5/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a distinct resource (project, requirement, bug, todo, sprint, member, tag) with specific actions (create, get, list, update). No overlap in responsibilities.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., create_project, list_requirements, update_bug). No mixed conventions.

Tool Count5/5

15 tools is well-scoped for a project management server. It covers core entities and common operations without being excessive or too sparse.

Completeness3/5

Covers create, list, get, and update for requirements, bugs, and todos, but lacks delete operations entirely. Also missing sprint creation/update and member management (only list). These are notable gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A client-side MCP server that enables AI assistants to interact with the LiteJira issue tracking system for creating, searching, and managing issues via natural language.
    15 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that connects AI assistants to TickTick, enabling project and task management through natural language, including reading projects, finding tasks, creating tasks, and completing work.
    2
    MIT