Skip to main content
Glama

ZenTao MCP Server (API V1.0)

TypeScript + Node.js + @modelcontextprotocol/sdk ベースのZenTao MCPサービスで、以下をサポートしています:

  • ログイン初期化(initZentao)

  • 製品の表示(getProducts)

  • マイバグの表示(getMyBugs)

  • バグ詳細の表示(getBugDetail)

  • バグの解決(resolveBug)

  • バグの有効化(activateBug、再オープン)

1. 環境準備

npm install
cp .env.example .env

.env にZenTaoのURLと認証情報を設定してください(実行時に initZentao を通じてアカウントとパスワードを渡すことを推奨します。ファイル内に平文で保存しないでください)。

Related MCP server: ZenTao MCP Server

2. npm / npx からの実行(他のマシンで推奨)

npmパッケージ名:@wudidada/zentao-mcp-server(スコープ付きパッケージ。実行コマンドは zentao-mcp-server)。

要件:Node.js >= 20。Linux/macOSではシステムに curl をインストールすることを推奨します(デフォルトのHTTPバックエンドは curl です)。

2.1 コマンドラインでの試行

npx -y @wudidada/zentao-mcp-server

HTTPモードの例:

MCP_TRANSPORT=http npx -y @wudidada/zentao-mcp-server

2.2 Cursor mcp.json(stdio + 環境変数)

プロジェクトまたはユーザーディレクトリの .cursor/mcp.json に設定します。例:

{
  "mcpServers": {
    "zentao": {
      "command": "npx",
      "args": ["-y", "@wudidada/zentao-mcp-server"],
      "env": {
        "ZENTAO_BASE_URL": "http://your-host/zentao/api.php/v1",
        "ZENTAO_ACCOUNT": "your_account",
        "ZENTAO_PASSWORD": "your_password",
        "ZENTAO_HTTP_BACKEND": "curl",
        "LOG_LEVEL": "info"
      }
    }
  }
}

設定を変更した後は、Cursorを完全に再起動してください。args 内のパッケージ名を固定バージョン(例:@wudidada/zentao-mcp-server@1.0.1)に変更することも可能です。

2.3 メンテナー向け:npmへの公開

npm run build
npm test
npm publish --access public

初回公開前に npm login が必要です。また、package.json の version が使用されていないことを確認してください。

ソースコードリポジトリ:https://github.com/wudidada/zentao-mcp-server

3. 起動方法

stdio(ローカルIDEで推奨)

npm run start:stdio

HTTP/SSE(リモート接続)

npm run start:http

デフォルトポートは 3000 です。ヘルスチェック:

curl http://localhost:3000/healthz

4. ビルドとテスト

npm run build
npm test

5. MCPツールパラメータの説明

initZentao

  • baseUrl?: string

  • account: string

  • password?: string

  • token?: string

password と token はどちらか一方を指定してください。

getMyBugs

  • status?: "active" | "resolved" | "closed" | "all"(デフォルトは active)

  • productId?: number

getBugDetail

  • bugId: number

activateBug

  • bugId: number

  • assignedTo?: string(担当者、アカウント名)

  • openedBuild?: string | string[](影響ビルド、ドキュメント上は配列。未指定時はデフォルトで ["trunk"])

  • comment?: string

resolveBug

  • bugId: number

  • resolution.resolution: "fixed" | "notrepro" | "duplicate" | "bydesign" | "willnotfix" | "tostory" | "external"

  • resolution.resolvedBuild?: string(解決策が fixed の場合、サーバー側で固定的に trunk を送信します。一部のZenTao Web画面での表示異常を避けるため、このフィールドは無視されます)

  • resolution.duplicateBug?: number(resolution=duplicate の場合に必須)

  • resolution.comment?: string

6. セキュリティと運用基準

  • ログはデフォルトで password/token/authorization をマスク処理します

  • デフォルトのリクエストタイムアウトは 10s です

  • クエリインターフェース(GET)は指数バックオフによるリトライをサポートしています

  • HTTPモードは /healthz ヘルスチェックを提供します

  • ZENTAO_BASE_URL + ZENTAO_ACCOUNT + (ZENTAO_PASSWORD または ZENTAO_TOKEN) が設定されている場合、プロセス起動時に自動ログインするため、毎回 initZentao を呼び出す必要はありません

  • ZENTAO_HTTP_BACKEND:axios はNode内蔵HTTPを使用し、curl はシステムの curl を呼び出します。Windows以外ではデフォルトで curl を使用し、一部のZenTaoインスタンスで発生する「Nodeクライアント + Token ヘッダー + GET」の長時間応答なし問題を回避します

6.1 環境変数一覧

変数

説明

ZENTAO_BASE_URL

ZenTao API V1 ルートURL(例:http://host/zentao/api.php/v1)

ZENTAO_ACCOUNT / ZENTAO_PASSWORD / ZENTAO_TOKEN

自動ログイン用(パスワードとトークンはどちらか一方)

ZENTAO_HTTP_BACKEND

axios または curl。未設定時、Linux/macOSはデフォルトで curl、Windowsは axios

7. プロジェクト構造

src/
  adapters/      # 禅道 API V1.0 适配层
  schemas/       # zod 参数校验
  server/        # stdio/http 双入口
  services/      # 领域服务
  tools/         # MCP 工具实现

8. 注意事項

  • 現在の実装は、ZenTao API V1.0 の一般的なRESTパス(/tokens、/bugs、/products)に基づいています。

  • バグの解決:公式v1インターフェースは POST /bugs/{id}/resolve です(PUTではありません)。誤ってPUTを使用した場合、HTTPステータスは成功してもZenTao側で状態が更新されない可能性があります。

  • ZenTaoインスタンスのパスや認証フィールドが異なる場合は、src/adapters/zentaoApiV1.ts で適宜調整してください。

Available Tools

7 tools
activateBugB

激活(重新打开)Bug,对应禅道 API v1:POST /bugs/{id}/active。适用于已解决/已关闭后重新激活。

ParametersJSON Schema
NameRequiredDescriptionDefault
bugIdYes
assignedToNo
openedBuildNo
commentNo

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 full burden for behavioral disclosure. While it mentions the state transition (reactivating resolved/closed bugs), it doesn't disclose permission requirements, whether this action is reversible, rate limits, or what happens to bug history. For a mutation tool with zero annotation coverage, 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.

Conciseness5/5

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

The description is extremely concise with just two sentences that directly convey the purpose and usage context. Every word earns its place, and the information is front-loaded with no wasted text.

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 mutation tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It covers the basic purpose and context but lacks crucial information about parameters, behavioral details, permissions, and expected outcomes that an agent needs to use this tool effectively.

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?

With 0% schema description coverage and 4 parameters (only 1 required), the description provides no information about any parameters. It doesn't explain what 'bugId', 'assignedTo', 'openedBuild', or 'comment' mean or how they affect the reactivation. The description fails to compensate for the complete lack of schema documentation.

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 ('activate/reopen') and resource ('Bug'), and specifies it's for bugs that are already resolved/closed. However, it doesn't explicitly differentiate from sibling tools like 'resolveBug' beyond mentioning the state transition direction.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool ('适用于已解决/已关闭后重新激活' - applicable after resolution/closure for reactivation), which implicitly distinguishes it from creation or initial resolution tools. It doesn't explicitly name alternatives or provide exclusion criteria.

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

getBugDetailB
Read-only

查看单个 bug 详情。

ParametersJSON Schema
NameRequiredDescriptionDefault
bugIdYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds minimal behavioral context beyond this, as '查看' implies reading, but it doesn't disclose additional traits like error handling, rate limits, or authentication needs. With annotations covering the safety profile, a baseline 3 is appropriate for the limited added value.

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 in Chinese that directly states the purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no output schema) and annotations covering read-only safety, the description is minimally adequate. However, it lacks details on output format, error cases, or how it differs from siblings, leaving gaps in completeness for effective agent use.

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

Parameters4/5

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

The input schema has 1 parameter with 0% description coverage, so the description carries the burden. It implies the tool retrieves details for a single bug, which adds meaning by suggesting 'bugId' identifies the bug. However, it doesn't specify format or constraints beyond what the schema provides (e.g., numeric range), so it's not a full 5.

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 ('查看' meaning 'view') and resource ('单个 bug 详情' meaning 'single bug detail'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'getMyBugs' or 'resolveBug', which might also involve bug details, so it's not 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 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 'getMyBugs' (which likely lists multiple bugs) or 'resolveBug' (which might include detail viewing). There's no mention of prerequisites, context, or exclusions, leaving usage ambiguous.

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

getMyBugsB
Read-only

按状态与产品筛选我的 bug 列表。

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoactive
productIdNo

TDQS

B3.3/5.0
Behavior3/5

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

The annotations indicate readOnlyHint=true, which the description doesn't contradict. The description adds context about filtering by status and product, which is useful beyond the annotations. However, it doesn't disclose other behavioral traits like pagination, rate limits, or authentication needs, leaving some gaps in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence in Chinese: '按状态与产品筛选我的 bug 列表.' It is front-loaded with the core purpose and contains no unnecessary words, making it highly concise and well-structured.

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 2 parameters, no output schema, and annotations only cover read-only status, the description is minimally adequate. It explains the filtering purpose but lacks details on return values, error handling, or deeper usage context. For a simple read operation, this is acceptable but leaves room for improvement in completeness.

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

Parameters3/5

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

The description mentions filtering by status and product, which aligns with the two parameters in the schema. However, schema description coverage is 0%, so the schema provides no descriptions. The description compensates by naming the parameters but doesn't add detailed semantics like format or constraints beyond what's implied. This meets the baseline for adequate but incomplete coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: '按状态与产品筛选我的 bug 列表' (Filter my bug list by status and product). It specifies the verb (filter), resource (my bug list), and filtering criteria (status and product). However, it doesn't explicitly distinguish itself from sibling tools like 'getBugDetail' or 'getProducts', which is why it doesn't achieve 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use 'getMyBugs' over 'getBugDetail' (for specific bug details) or 'getProducts' (for product listings), nor does it specify any prerequisites or exclusions. The usage context is implied but not explicitly stated.

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

getProductsB
Read-only

获取禅道产品列表。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior3/5

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

The annotations indicate readOnlyHint=true, which the description doesn't contradict (it implies a read operation). However, the description adds no behavioral context beyond this, such as pagination, rate limits, or authentication needs. With annotations covering safety, it meets the baseline but lacks extra value.

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 in Chinese that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse.

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

Completeness3/5

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

For a simple read-only tool with no parameters and annotations indicating safety, the description is minimally adequate. However, it lacks output details (no output schema) and doesn't address sibling differentiation or usage context, leaving gaps in completeness.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, but this is acceptable given the empty schema, warranting a baseline score above minimum.

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 '获取禅道产品列表' (Get ZenTao product list) clearly states the verb ('get') and resource ('product list'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'getBugDetail' or 'getMyBugs' beyond the resource type, and the title is null which slightly reduces clarity.

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 initialization via 'initZentao'), specific contexts, or exclusions, leaving the agent to infer usage from the name alone.

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

healthCheckB
Read-only

检查当前会话与服务可用性。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

The description adds minimal behavioral context beyond the readOnlyHint annotation. It implies a diagnostic operation but doesn't specify what 'availability' means, response format, or any rate limits. With annotations covering safety, this earns a baseline score for adding some purpose context without contradiction.

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 directly states the tool's purpose without any wasted words. It's appropriately sized for a simple, parameterless tool and is front-loaded with clear intent.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, read-only annotation), the description is minimally adequate but lacks output information. Without an output schema, it should ideally hint at what the health check returns, leaving some contextual gaps for the agent.

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

Parameters4/5

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

With 0 parameters and 100% schema description coverage, the baseline is 4 as the schema fully documents the empty input. The description doesn't need to compensate for any parameter gaps, and it appropriately doesn't mention 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 tool's purpose as checking session and service availability ('检查当前会话与服务可用性'), which is a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'getProducts' or 'initZentao' that might also provide system status information, 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?

The description provides no guidance on when to use this tool versus alternatives. There are no explicit instructions about when/when-not to use it, nor references to sibling tools for comparison, leaving the agent without contextual usage information.

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

initZentaoC

初始化禅道连接并登录(支持 password 或 token)。

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNo
accountNo
passwordNo
tokenNo

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. It states the tool initializes a connection and logs in, implying it's a setup/mutation operation that likely requires authentication. However, it doesn't disclose critical behaviors such as whether this creates a persistent session, what happens on failure, rate limits, or security implications. For a tool with 4 parameters and no annotation coverage, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is concise and front-loaded in a single sentence: '初始化禅道连接并登录(支持 password 或 token)。' It efficiently conveys the core purpose and authentication options without unnecessary details. However, it could be slightly more structured by explicitly mentioning parameters or usage context, but it's still highly efficient.

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 (4 parameters, no annotations, no output schema), the description is incomplete. It covers the basic purpose and authentication methods but lacks details on parameter meanings, behavioral traits, error handling, and output expectations. For a connection/login tool with multiple inputs, this leaves too many gaps for effective agent use.

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?

The schema description coverage is 0%, meaning none of the 4 parameters have descriptions in the schema. The description only adds that the tool supports 'password or token' authentication, which partially explains the 'password' and 'token' parameters but doesn't cover 'baseUrl' or 'account'. It fails to compensate for the low coverage, leaving most parameters undocumented in both schema and description.

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

Purpose4/5

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

The description clearly states the tool's purpose: '初始化禅道连接并登录' (initialize ZenTao connection and login). It specifies the verb (initialize/connect and login) and resource (ZenTao), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'healthCheck' which might also involve connection establishment, so it doesn't reach the highest 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?

The description provides minimal usage guidance: it mentions that the tool supports password or token authentication, which hints at when to use it (for initial connection setup). However, it doesn't specify when to use this tool versus alternatives (e.g., if other tools implicitly handle connection), nor does it outline prerequisites or exclusions. This lack of explicit context keeps the score low.

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

resolveBugC

提交 Bug 解决动作(fixed/notrepro/duplicate/...)。

ParametersJSON Schema
NameRequiredDescriptionDefault
bugIdYes
resolutionYes

TDQS

C2.7/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 implies a write operation ('提交' meaning submit/resolve), suggesting mutation, but doesn't state whether this requires specific permissions, if changes are reversible, what happens on success/failure, or any rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is a single, efficient sentence in Chinese that conveys the core purpose with examples. It's front-loaded and wastes no words, though it could be slightly more structured (e.g., by explicitly stating it's for updating bug status).

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 (mutation tool with nested parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral traits, full parameter meanings, and usage context. For a tool that modifies bug states, this leaves critical gaps for an AI agent to operate effectively.

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 0%, so the description must compensate for undocumented parameters. It mentions resolution types like 'fixed/notrepro/duplicate/...', which partially explains the 'resolution' parameter's enum values, but doesn't cover 'bugId', 'resolvedBuild', 'duplicateBug', or 'comment'. With 2 parameters (including a nested object) and low coverage, the description adds minimal value beyond the schema.

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 ('提交 Bug 解决动作') and specifies the resource (Bug resolution), with examples of resolution types like 'fixed/notrepro/duplicate/...' that help clarify what the tool does. However, it doesn't explicitly distinguish this from sibling tools like 'activateBug' or 'getBugDetail', which would require mentioning it's for finalizing bug status rather than viewing or activating bugs.

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 bug ID), exclusions, or comparisons to siblings like 'activateBug' (which might change bug state differently) or 'getBugDetail' (which is read-only). This leaves the agent without context for tool selection.

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

Tool Schema Changelog

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

  1. 7 tool updatesv1.0.0
    • First observedactivateBug
    • First observedgetBugDetail
    • First observedgetMyBugs
    • First observedgetProducts
    • First observedhealthCheck
    • First observedinitZentao
    • First observedresolveBug

TDQS

B3.4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. activateBug, resolveBug, getBugDetail, and getMyBugs handle different bug lifecycle stages and views, while getProducts, healthCheck, and initZentao cover separate administrative and setup functions. The descriptions make it easy to distinguish between tools like activateBug (reopen) and resolveBug (close with resolution).

Naming Consistency4/5

The naming follows a mostly consistent verb_noun pattern with minor deviations. Tools like activateBug, getBugDetail, getMyBugs, getProducts, and resolveBug use clear action-object naming. However, healthCheck and initZentao deviate slightly by using compound nouns without verbs, though they remain readable and intuitive.

Tool Count5/5

With 7 tools, this server is well-scoped for bug tracking and system management in ZenTao. Each tool earns its place by covering essential operations: bug lifecycle (activate, resolve, view), product listing, and system setup/health. The count is neither too sparse nor bloated, fitting the domain appropriately.

Completeness4/5

The tool set provides strong coverage for bug management with create, read, update (activate/resolve), and delete implied through resolution. Minor gaps exist, such as no explicit tool for creating bugs or managing other entities like tasks or users, but agents can work around this with the available tools for core workflows.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Enables direct integration with Zentao bug tracking systems through Cursor. Supports authentication, bug retrieval, searching, and listing operations for comprehensive bug management through natural language.
    5
    7 npm
    -
  • F
    license
    A
    quality
    B
    maintenance
    Enables interaction with ZenTao project management system through RESTful APIs. Supports listing products, managing bugs, viewing statistics, and filtering personal bug assignments through natural language.
    4
    7 npm
    15
    -