返回市场
曼提斯-MCP服务器

曼提斯-MCP服务器

作者:kfnzero5 星标更新:2025-09-02

项目介绍

Mantis MCP Server

smithery 徽章

Mantis MCP Server 基于模型上下文协议(MCP),用于与Mantis Bug Tracker集成的通信服务。它提供了一系列工具,允许用户查询和分析Mantis系统中的数据。

<a href="https://glama.ai/mcp/servers/@kfnzero/mantis-mcp-server"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=2708971767,3200307628&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Mantis Server MCP server" /> </a>

功能

  • 问题管理
    • 获取问题列表(支持多种过滤条件)
    • 根据ID查询问题详情
  • 用户管理
    • 根据用户名搜索用户
    • 获取所有用户的列表
  • 项目管理
    • 获取项目列表
  • 统计分析
    • 问题统计(支持多维分析)
    • 分派统计(分析问题分派情况)
  • 性能优化
    • 字段选择(减少返回的数据量)
    • 分页处理(控制每次返回的数量)
    • 自动数据压缩(自动压缩大量数据)
  • 完整错误处理和日志记录

安装

通过Smithery安装

要通过Smithery自动安装Mantis Bug Tracker集成到Claude Desktop:

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

手动安装

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 Token”标签
  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": "调试MCP服务器",
      "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