Mantis缺陷跟踪系统
STDIO用于Mantis缺陷追踪的MCP服务
用于Mantis缺陷追踪的MCP服务
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