Skip to main content
Glama

Mantis MCP Server

Mantis MCP Server 是一個基於 Model Context Protocol (MCP) 的服務,用於與 Mantis Bug Tracker 系統進行集成。它提供了一系列工具,允許用戶通過 MCP 協議查詢和分析 Mantis 系統中的數據。

功能

  • 問題管理

    • 獲取問題列表(支持多種過濾條件)

    • 根據 ID 查詢問題詳情

  • 用戶管理

    • 根據用戶名稱查詢用戶

    • 獲取所有用戶列表

  • 專案管理

    • 獲取專案列表

  • 統計分析

    • 問題統計(支持多維度分析)

    • 分派統計(分析問題分派情況)

  • 效能優化

    • 欄位選擇(減少回傳資料量)

    • 分頁處理(控制每次返回數量)

    • 自動資料壓縮(大量資料時自動壓縮)

  • 完整的錯誤處理和日誌記錄

Related MCP server: MantisBT MCP Server

安裝

Installing via Smithery

To install Mantis Bug Tracker Integration for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @kfnzero/mantis-mcp-server --client claude

Manual Installation

npm install mantis-mcp-server

配置

  1. 在專案根目錄建立 .env 文件:

# Mantis API 配置
MANTIS_API_URL=https://your-mantis-instance.com/api/rest
MANTIS_API_KEY=your_api_key_here

# 應用配置
NODE_ENV=development  # development, production, test
LOG_LEVEL=info       # error, warn, info, debug

# 快取配置
CACHE_ENABLED=true
CACHE_TTL_SECONDS=300  # 5分鐘

# 日誌配置
LOG_DIR=logs
ENABLE_FILE_LOGGING=false

MantisBT API Key 獲取方式

  1. 登入您的 MantisBT 帳戶

  2. 點擊右上角的用戶名稱,選擇「我的帳戶」

  3. 切換到「API 令牌」標籤

  4. 點擊「創建新令牌」按鈕

  5. 輸入令牌名稱(例如:MCP Server)

  6. 複製生成的 API 令牌,並將其貼入 .env 文件的 MANTIS_API_KEY 設置中

MCP 配置

全域安裝

首先,需要全域安裝 mantis-mcp-server:

npm install -g mantis-mcp-server

Windows 配置

在 Windows 系統中,編輯 %USERPROFILE%\.cursor\mcp.json(通常在 C:\Users\你的用戶名\.cursor\mcp.json),添加以下配置:

{
  "mcpServers": {
    "mantis-mcp-server": {
      "type": "stdio",
      "command": "cmd",
      "args": [
        "/c",
        "node",
        "%APPDATA%\\npm\\node_modules\\mantis-mcp-server\\dist\\index.js"
      ],
      "env": {
        "MANTIS_API_URL": "YOUR_MANTIS_API_URL",
        "MANTIS_API_KEY": "YOUR_MANTIS_API_KEY",
        "NODE_ENV": "production",
        "LOG_LEVEL": "info"
      }
    }
  }
}

macOS/Linux 配置

在 macOS 或 Linux 系統中,編輯 ~/.cursor/mcp.json,添加以下配置:

{
  "mcpServers": {
    "mantis-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mantis-mcp-server@latest",
      ],
      "env": {
        "MANTIS_API_URL": "YOUR_MANTIS_API_URL",
        "MANTIS_API_KEY": "YOUR_MANTIS_API_KEY",
        "NODE_ENV": "production",
        "LOG_LEVEL": "info"
      }
    }
  }
}

注意:在 macOS/Linux 中,我們使用 npx 來運行最新版本的 mantis-mcp-server,這樣可以確保始終使用最新版本,不需要全域安裝。

環境變數說明

  • MANTIS_API_URL: 您的 Mantis API URL

  • MANTIS_API_KEY: 您的 Mantis API 金鑰

  • NODE_ENV: 執行環境,建議設置為 "production"

  • LOG_LEVEL: 日誌級別,可選值:error、warn、info、debug

驗證配置

配置完成後,您可以:

  1. 重新載入 Cursor MCP

  2. 開啟命令面板(Windows: Ctrl+Shift+P, Mac: Cmd+Shift+P)

在 Cursor 中設定

  1. .vscode/mcp.json 中添加以下配置:

{
  "servers": {
    "mantis-mcp-server": {
      "type": "stdio",
      "command": "node",
      "args": ["${workspaceFolder}/dist/index.js"]
    }
  }
}
  1. .vscode/launch.json 中添加以下配置用於除錯:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug MCP Server",
      "skipFiles": ["<node_internals>/**"],
      "outFiles": ["${workspaceFolder}/dist/**/*.js"],
      "runtimeExecutable": "npx",
      "runtimeArgs": [
        "-y",
        "@modelcontextprotocol/inspector",
        "node",
        "dist/index.js"
      ],
      "console": "integratedTerminal",
      "preLaunchTask": "npm: watch",
      "serverReadyAction": {
        "action": "openExternally",
        "pattern": "running at (https?://\\S+)",
        "uriFormat": "%s?timeout=60000"
      },
      "envFile": "${workspaceFolder}/.env"
    }
  ]
}

API 工具說明

1. 獲取問題列表 (get_issues)

獲取 Mantis 問題列表,可根據多個條件進行過濾。

參數:

  • projectId (可選): 專案 ID

  • statusId (可選): 狀態 ID

  • handlerId (可選): 處理人 ID

  • reporterId (可選): 報告者 ID

  • search (可選): 搜尋關鍵字

  • pageSize (可選, 默認 20): 頁數大小

  • page (可選, 默認 0): 分頁起始位置,從1開始

  • select (可選): 選擇要返回的欄位,例如:['id', 'summary', 'description']。可用於減少回傳資料量

2. 獲取問題詳情 (get_issue_by_id)

根據 ID 獲取 Mantis 問題詳情。

參數:

  • issueId: 問題 ID

3. 查詢用戶 (get_user)

根據用戶名稱查詢 Mantis 用戶。

參數:

  • username: 用戶名稱

4. 獲取專案列表 (get_projects)

獲取 Mantis 專案列表。

參數:

5. 獲取問題統計 (get_issue_statistics)

獲取 Mantis 問題統計數據,根據不同維度進行分析。

參數:

  • projectId (可選): 專案 ID

  • groupBy: 分組依據,可選值: 'status', 'priority', 'severity', 'handler', 'reporter'

  • period (默認 'all'): 時間範圍,可選值: 'all', 'today', 'week', 'month'

6. 獲取分派統計 (get_assignment_statistics)

獲取 Mantis 問題分派統計數據,分析不同用戶的問題分派情況。

參數:

  • projectId (可選): 專案 ID

  • includeUnassigned (默認 true): 是否包含未分派問題

  • statusFilter (可選): 狀態過濾器,只計算特定狀態的問題

7. 獲取所有用戶 (get_users)

用暴力法獲取所有用戶列表。

參數:

代碼結構

高階函數

服務使用 withMantisConfigured 高階函數來處理共用的檢查邏輯,確保:

  • Mantis API 配置檢查

  • 統一的錯誤處理

  • 標準化的回應格式

  • 自動的日誌記錄

錯誤處理

完整的錯誤處理機制包括:

  • Mantis API 錯誤處理(包含 HTTP 狀態碼)

  • 通用錯誤處理

  • 結構化的錯誤響應

  • 詳細的錯誤日誌

開發

# 安裝依賴
npm install

# 構建
npm run build

# 開發模式(監視變更)
npm run watch

# 運行
npm start

日誌

如果啟用了檔案日誌(ENABLE_FILE_LOGGING=true),日誌文件將保存在:

  • logs/mantis-mcp-server-combined.log: 所有級別的日誌

  • logs/mantis-mcp-server-error.log: 僅錯誤級別的日誌

日誌文件大小上限為 5MB,最多保留 5 個歷史文件。

許可證

MIT

參考

@https://documenter.getpostman.com/view/29959/7Lt6zkP#c0c24256-341e-4649-95cb-ad7bdc179399

發布

npm login --registry=https://registry.npmjs.org/ npm run build npm publish --access public --registry=https://registry.npmjs.org/

更新版本號

npm version patch # 修復版本 0.0.x npm version minor # 次要版本 0.x.0 npm version major # 主要版本 x.0.0

重新發布

npm publish

Available Tools

8 tools
get_assignment_statisticsC

獲取 Mantis 問題分派統計數據,分析不同用戶的問題分派情況

ParametersJSON Schema
NameRequiredDescriptionDefault
includeUnassignedNo是否包含未分派問題
projectIdNo專案 ID
statusFilterNo狀態過濾器,只計算特定狀態的問題

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it indicates this is a read operation ('獲取' - get), it doesn't describe what the statistics look like, whether there are rate limits, authentication requirements, or what format the analysis takes. For a statistics tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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 efficient - a single sentence that states the tool's purpose clearly. There's no wasted language or unnecessary elaboration. While it could be more comprehensive, what's present is well-structured and front-loaded with the essential information.

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 statistics tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the statistics output looks like, what metrics are included, or how the 'analysis' mentioned is presented. With three parameters and statistical output expected, more context about the return format and analysis methodology would be needed for proper tool selection and use.

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

Parameters3/5

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

The description provides no parameter information beyond what's already in the schema. However, with 100% schema description coverage and clear parameter descriptions in Chinese, the schema already documents all three parameters adequately. The baseline score of 3 is appropriate when the schema does the heavy lifting, even though the description adds no additional parameter context.

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

Purpose4/5

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

The description clearly states the tool's purpose: '獲取 Mantis 問題分派統計數據,分析不同用戶的問題分派情況' (Get Mantis issue assignment statistics, analyze issue assignment situations for different users). It specifies the verb ('獲取' - get), resource ('Mantis 問題分派統計數據' - Mantis issue assignment statistics), and analysis focus. However, it doesn't explicitly distinguish this tool from sibling tools like 'get_issue_statistics' or 'get_issues', which reduces clarity about when to use this specific 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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_issue_statistics' and 'get_issues' available, there's no indication of what makes this tool distinct or when it should be preferred over those alternatives. The description mentions analyzing assignment situations, but doesn't specify use cases or exclusions.

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

get_issue_by_idC

根據 ID 獲取 Mantis 問題詳情

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYes問題 ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a read operation ('獲取'), but doesn't mention authentication requirements, rate limits, error handling (e.g., for invalid IDs), or what happens if the issue doesn't exist. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence in Chinese that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence contributes to understanding the purpose.

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 (a read operation with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what '詳情' includes in the response, potential errors, or dependencies. For a tool that retrieves data, more context on output and behavior is needed to be fully helpful.

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

Parameters3/5

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

The description adds minimal meaning beyond the input schema, which has 100% coverage and documents the single parameter 'issueId' as a number for the issue ID. The description implies the parameter is used to fetch details, but doesn't provide additional context like format examples or constraints. With high schema coverage, the baseline is 3, and the description doesn't significantly 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 states the verb ('獲取' meaning 'get') and resource ('Mantis 問題詳情' meaning 'Mantis issue details'), making the purpose understandable. It distinguishes from siblings like 'get_issues' (which likely lists multiple issues) by specifying retrieval of a single issue by ID. However, it doesn't explicitly mention what '詳情' (details) includes, which could be more 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'get_issues' for listing issues or 'get_issue_statistics' for aggregated data, nor does it specify prerequisites such as needing a valid issue ID. Usage is implied by the name 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.

get_issuesB

獲取 Mantis 問題列表,可根據多個條件進行過濾,建議查詢時select選擇id,summary,description就好,資訊過多可能導致程式異常

ParametersJSON Schema
NameRequiredDescriptionDefault
handlerIdNo處理人 ID
pageNo分頁起始位置,從1開始
pageSizeNo頁數大小
projectIdNo專案 ID
reporterIdNo報告者 ID
searchNo搜尋關鍵字
selectNo選擇要返回的欄位,例如:['id', 'summary', 'description']
statusIdNo狀態 ID

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 mentions that '資訊過多可能導致程式異常' (too much information may cause program exceptions), which hints at a performance or stability limitation. However, it lacks details on pagination behavior (implied by page/pageSize parameters but not explained), rate limits, authentication needs, or what happens with invalid inputs. For a tool with 8 parameters and no 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.

Conciseness4/5

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

The description is concise and front-loaded, stating the core purpose first ('獲取 Mantis 問題列表') followed by additional context. It consists of two sentences that each serve a purpose: defining the tool and providing a usage tip. There's no wasted text, though it could be slightly more structured for clarity.

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

Completeness2/5

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

Given the tool's complexity (8 parameters, no output schema, no annotations), the description is incomplete. It lacks information on return values, error handling, pagination behavior, and how filtering conditions interact. The warning about too much information causing exceptions is helpful but doesn't compensate for the broader gaps. For a list-retrieval tool with multiple filters, more context is needed.

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

Parameters3/5

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

The schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal value beyond the schema: it suggests limiting the 'select' field to id, summary, and description to avoid issues. This provides some practical advice but doesn't significantly enhance understanding of parameter meanings or interactions. The baseline score of 3 is appropriate given the high schema 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: '獲取 Mantis 問題列表' (get Mantis issue list). It specifies the verb ('獲取' - get) and resource ('Mantis 問題列表' - Mantis issue list), making the basic function unambiguous. However, it doesn't explicitly differentiate from sibling tools like get_issue_by_id or get_issue_statistics, which prevents a perfect score.

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

Usage Guidelines3/5

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

The description provides some usage guidance: '建議查詢時select選擇id,summary,description就好,資訊過多可能導致程式異常' (suggests selecting only id, summary, description during queries, as too much information may cause program exceptions). This implies a constraint on usage but doesn't explicitly state when to use this tool versus alternatives like get_issue_by_id or get_issue_statistics, nor does it provide broader context or exclusions.

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

get_issue_statisticsC

獲取 Mantis 問題統計數據,根據不同維度進行分析

ParametersJSON Schema
NameRequiredDescriptionDefault
groupByYes分組依據
periodNo時間範圍<all-全部, today-今天, week-本週, month-本月>all
projectIdNo專案 ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves and analyzes statistics, implying a read-only operation, but doesn't clarify critical aspects like whether it requires authentication, handles pagination, returns aggregated data formats, or has rate limits. For a statistical tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence: '獲取 Mantis 問題統計數據,根據不同維度進行分析'. It is front-loaded with the core purpose and avoids redundancy. Every word contributes to understanding the tool's function, making it appropriately sized with zero waste.

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

Completeness2/5

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

Given the tool's complexity (statistical analysis with 3 parameters) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., aggregated counts, charts), behavioral traits like error handling, or integration with sibling tools. For a tool that performs analysis, more context is needed to use it effectively.

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

Parameters3/5

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

The schema description coverage is 100%, with all parameters well-documented in the input schema (e.g., 'groupBy' with enum values, 'period' with time ranges, 'projectId' as numeric). The description adds minimal value beyond the schema by mentioning '不同維度' (different dimensions), which loosely relates to 'groupBy', but doesn't provide additional syntax or format details. This meets the baseline for high schema coverage.

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

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: '獲取 Mantis 問題統計數據,根據不同維度進行分析' (Get Mantis issue statistics, analyze according to different dimensions). It specifies the verb ('獲取' - get) and resource ('Mantis 問題統計數據' - Mantis issue statistics), and mentions analysis by dimensions. However, it doesn't explicitly differentiate from sibling tools like 'get_assignment_statistics' or 'get_issues', which prevents a perfect score.

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

Usage 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 sibling tools like 'get_assignment_statistics' for assignment-related stats or 'get_issues' for raw issue lists, nor does it specify prerequisites such as needing a project context. Usage is implied by the mention of '不同維度' (different dimensions), but this is too vague for effective tool selection.

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

get_projectsC

獲取 Mantis 專案列表

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the action ('獲取' - get) without detailing traits such as whether it's read-only, if it requires authentication, rate limits, pagination, or error handling. This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.

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 unnecessary words. It is front-loaded and appropriately sized for a simple list operation, making it easy to parse and understand quickly.

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

Completeness2/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimal but lacks completeness. It doesn't address behavioral aspects like read-only nature, potential authentication needs, or output format, which are important even for basic tools. Without annotations or output schema, more context in the description would be beneficial.

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 parameter details, which is appropriate here, and it correctly implies no inputs are required for listing projects, aligning with the schema. This meets the baseline for tools with no parameters.

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 '獲取 Mantis 專案列表' (Get Mantis project list) clearly states the verb ('獲取' - get) and resource ('Mantis 專案列表' - Mantis project list), making the purpose understandable. However, it doesn't differentiate from sibling tools like get_issues or get_users, which also retrieve lists of different resources, leaving room for ambiguity about when to use this specific 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?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention context, prerequisites, or exclusions, and it fails to distinguish it from sibling tools like get_issues or get_users, which could lead to confusion about selecting the right tool for listing projects versus other entities.

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

get_userB

根據用戶名稱查詢 Mantis 用戶

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes用戶名稱

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 of behavioral disclosure. While '查詢' (query) implies a read-only operation, the description doesn't specify whether this requires authentication, what happens if the username doesn't exist (e.g., returns null vs. error), or any rate limits. For a lookup tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple lookup tool and front-loaded with the core functionality. Every part of the sentence earns its place.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on usage context, behavioral traits, or output format. For a simple query tool, this might suffice, but it doesn't provide complete guidance for an AI agent to use it effectively in all scenarios.

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, with the single parameter 'username' documented as '用戶名稱' (username). The description adds no additional parameter semantics beyond what the schema provides, such as format constraints or examples. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't 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 states the tool's purpose as '根據用戶名稱查詢 Mantis 用戶' (query Mantis users by username), which specifies both the verb (query) and resource (Mantis users). It distinguishes this from sibling tools like 'get_users' (which likely retrieves all users) by focusing on username-based lookup. However, it doesn't explicitly mention how it differs from 'get_users_by_project_id'.

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 this tool is appropriate compared to 'get_users' (for listing all users) or 'get_users_by_project_id' (for filtering by project). There are no prerequisites, exclusions, or explicit alternatives stated.

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

get_usersC

用暴力法強制取得所有用戶

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions '暴力法強制' (brute force forcibly), suggesting potentially aggressive or unrestricted retrieval, but doesn't clarify permissions needed, rate limits, side effects, or what 'all users' entails (e.g., pagination, format). This leaves significant gaps for agent decision-making.

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

Conciseness3/5

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

The description is a single sentence '用暴力法強制取得所有用戶', which is concise but under-specified. It front-loads the action but wastes words on ambiguous terms like '暴力法' (brute force) without adding clear value, making it inefficient rather than optimally structured.

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

Completeness2/5

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

Given no annotations, no output schema, and a vague description, this is incomplete for a tool that retrieves 'all users'. It lacks details on return format, error handling, or behavioral constraints, which are critical for an agent to use it correctly despite the simple parameter schema.

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 parameter details, which is appropriate here. A baseline of 4 is given as it avoids redundancy while matching the schema's simplicity.

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 '用暴力法強制取得所有用戶' (Use brute force to forcibly obtain all users) states a verb ('取得' - obtain) and resource ('所有用戶' - all users), but is vague about the specific mechanism and purpose. It doesn't clearly distinguish from sibling tools like 'get_user' (singular) or 'get_users_by_project_id' (filtered). The term '暴力法' (brute force) adds ambiguity rather than 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?

No guidance is provided on when to use this tool versus alternatives like 'get_user' (for single user) or 'get_users_by_project_id' (for filtered users). The description implies a forceful approach but doesn't specify appropriate contexts or prerequisites for its use.

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

get_users_by_project_idC

獲取指定專案的所有用戶

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes專案 ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states what the tool does ('獲取/get'), implying a read operation, but doesn't disclose any behavioral traits like whether it requires authentication, has rate limits, returns paginated results, or what happens with invalid project IDs. This leaves significant gaps for a tool that presumably queries a database.

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 with zero 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.

Completeness2/5

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

Given the tool has no annotations and no output schema, the description is incomplete. It doesn't explain what '獲取' entails (e.g., returns a list, includes user details), behavioral aspects like error handling, or how it differs from sibling tools. For a retrieval tool with one parameter, this minimal description leaves too many operational questions unanswered.

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 implies the 'projectId' parameter is required to specify which project's users to retrieve, which aligns with the schema's 100% coverage. However, it adds no additional semantic context beyond what the schema already provides (e.g., format expectations, valid ranges, or how the ID correlates to projects).

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

Purpose4/5

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

The description '獲取指定專案的所有用戶' clearly states the action (獲取/get) and resource (專案的所有用戶/all users of a project), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_user' or 'get_users', which likely retrieve individual users or all users without project filtering.

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 sibling tools like 'get_user' (likely for single user) or 'get_users' (likely for all users), nor does it specify prerequisites or exclusions for using this project-filtered retrieval method.

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

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between get_user, get_users, and get_users_by_project_id that could cause confusion. The descriptions help differentiate them, but an agent might struggle to choose between get_users and get_users_by_project_id when querying all users.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'get_' prefix, using snake_case throughout. This predictability makes it easy for agents to understand and navigate the tool set without naming conflicts.

Tool Count5/5

With 8 tools, the server is well-scoped for interacting with Mantis issue tracking systems. Each tool serves a clear purpose in querying issues, projects, users, and statistics, avoiding bloat while covering essential operations.

Completeness3/5

The tool set focuses heavily on read operations (get_*), with no tools for creating, updating, or deleting issues, projects, or users. This limits agents to querying data only, which is a notable gap for full lifecycle management in an issue tracking domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that enables Language Learning Models to interact with FogBugz, allowing operations like creating and updating issues, assigning cases, listing open cases, and searching through natural language.
    15
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Integrates MantisBT bug tracker into Claude and other MCP clients via the REST API. Read and manage issues, notes, file attachments, tags, relationships, and monitors — with optional offline semantic search across all issues.
    34
    279
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol (MCP) server that integrates with Atlassian Jira to search issues, retrieve details, access comments, create new issues, and update issues.
    640
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides AI assistants with direct access to MantisBT issue trackers via the REST API, enabling reading, updating, resolving, and semantically searching issues.
    20
    16
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kfnzero/mantis-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server