
kfnzero_mantis-mcp-server
Mirror ofhttps://github.com/kfnzero/mantis-mcp-server
3 years
Works with Finder
0
Github Watches
0
Github Forks
0
Github Stars
Mantis MCP Server
Mantis MCP Server 是一個基於 Model Context Protocol (MCP) 的服務,用於與 Mantis Bug Tracker 系統進行集成。它提供了一系列工具,允許用戶通過 MCP 協議查詢和分析 Mantis 系統中的數據。
功能
- 問題管理
- 獲取問題列表(支持多種過濾條件)
- 根據 ID 查詢問題詳情
- 用戶管理
- 根據用戶名稱查詢用戶
- 獲取所有用戶列表
- 專案管理
- 獲取專案列表
- 統計分析
- 問題統計(支持多維度分析)
- 分派統計(分析問題分派情況)
- 效能優化
- 欄位選擇(減少回傳資料量)
- 分頁處理(控制每次返回數量)
- 自動資料壓縮(大量資料時自動壓縮)
- 完整的錯誤處理和日誌記錄
安裝
npm install mantis-mcp-server
配置
- 在專案根目錄建立
.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 獲取方式
- 登入您的 MantisBT 帳戶
- 點擊右上角的用戶名稱,選擇「我的帳戶」
- 切換到「API 令牌」標籤
- 點擊「創建新令牌」按鈕
- 輸入令牌名稱(例如:MCP Server)
- 複製生成的 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
驗證配置
配置完成後,您可以:
- 重新載入 Cursor MCP
- 開啟命令面板(Windows: Ctrl+Shift+P, Mac: Cmd+Shift+P)
在 Cursor 中設定
- 在
.vscode/mcp.json
中添加以下配置:
{
"servers": {
"mantis-mcp-server": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
- 在
.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 npm run build npm publish --access public
更新版本號
npm version patch # 修復版本 0.0.x npm version minor # 次要版本 0.x.0 npm version major # 主要版本 x.0.0
重新發布
npm publish
相关推荐
I find academic articles and books for research and literature reviews.
Converts Figma frames into front-end code for various mobile frameworks.
Confidential guide on numerology and astrology, based of GG33 Public information
Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.
Advanced software engineer GPT that excels through nailing the basics.
Delivers concise Python code and interprets non-English comments
💬 MaxKB is a ready-to-use AI chatbot that integrates Retrieval-Augmented Generation (RAG) pipelines, supports robust workflows, and provides advanced MCP tool-use capabilities.
Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx
MCP server to provide Figma layout information to AI coding agents like Cursor
Reviews

user_SQ1yhcfx
I've been using the kfnzero_mantis-mcp-server for a while now, and it has exceeded my expectations. The performance and reliability are unmatched, and it's clear that MCP-Mirror has put considerable effort into the development. The server setup was straightforward, and the comprehensive documentation on the GitHub page made the process even easier. Highly recommend for anyone in need of a robust MCP server solution!