Mantis Bug Tracker
STDIOMCP server that integrates with Mantis Bug Tracker for data querying and analysis.
MCP server that integrates with Mantis Bug Tracker for data querying and analysis.
Mantis MCP Server 是一個基於 Model Context Protocol (MCP) 的服務,用於與 Mantis Bug Tracker 系統進行集成。它提供了一系列工具,允許用戶通過 MCP 協議查詢和分析 Mantis 系統中的數據。
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
.env
文件的 MANTIS_API_KEY
設置中首先,需要全域安裝 mantis-mcp-server:
npm install -g mantis-mcp-server
在 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 系統中,編輯 ~/.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 URLMANTIS_API_KEY
: 您的 Mantis API 金鑰NODE_ENV
: 執行環境,建議設置為 "production"LOG_LEVEL
: 日誌級別,可選值:error、warn、info、debug配置完成後,您可以:
.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" } ] }
獲取 Mantis 問題列表,可根據多個條件進行過濾。
參數:
projectId
(可選): 專案 IDstatusId
(可選): 狀態 IDhandlerId
(可選): 處理人 IDreporterId
(可選): 報告者 IDsearch
(可選): 搜尋關鍵字pageSize
(可選, 默認 20): 頁數大小page
(可選, 默認 0): 分頁起始位置,從1開始select
(可選): 選擇要返回的欄位,例如:['id', 'summary', 'description']。可用於減少回傳資料量根據 ID 獲取 Mantis 問題詳情。
參數:
issueId
: 問題 ID根據用戶名稱查詢 Mantis 用戶。
參數:
username
: 用戶名稱獲取 Mantis 專案列表。
參數: 無
獲取 Mantis 問題統計數據,根據不同維度進行分析。
參數:
projectId
(可選): 專案 IDgroupBy
: 分組依據,可選值: 'status', 'priority', 'severity', 'handler', 'reporter'period
(默認 'all'): 時間範圍,可選值: 'all', 'today', 'week', 'month'獲取 Mantis 問題分派統計數據,分析不同用戶的問題分派情況。
參數:
projectId
(可選): 專案 IDincludeUnassigned
(默認 true): 是否包含未分派問題statusFilter
(可選): 狀態過濾器,只計算特定狀態的問題用暴力法獲取所有用戶列表。
參數: 無
服務使用 withMantisConfigured
高階函數來處理共用的檢查邏輯,確保:
完整的錯誤處理機制包括:
# 安裝依賴 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