mcpField
R
redmine-mcp-connector

redmine-mcp-connector

本地服务
github.com/Nikhilprasad-r生产力15 周前更新

关于 redmine-mcp-connector

redmine-mcp-connector 是通过 REST API 连接 Redmine 实例的 stdio MCP 服务,面向使用编码 Agent 的团队。它提供常用数据管理工具和只读资源,并支持只读模式及需确认的破坏性操作。

主要功能

  1. 01管理问题、项目、用户和成员关系
  2. 02处理工时、新闻、Wiki 和版本
  3. 03搜索和管理附件
  4. 04提供项目与用户只读资源
  5. 05支持只读模式和操作确认

适用场景

  1. 01通过编码 Agent 创建或更新 Redmine 问题
  2. 02查看项目、用户和分配的问题
  3. 03管理 Wiki 页面、工时和附件
  4. 04将集成限制为只读访问

MCP 相关

它以 stdio MCP 服务运行,将 Redmine REST API 操作提供为工具,并提供只读 MCP 资源。编码 Agent 和其他 MCP 客户端可按需启动它。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nikhilprasad-r-redmine-mcp-connector": {
"command": "npx",
"args": [
"-y",
"redmine-mcp-connector"
],
"env": {
"REDMINE_BASE_URL": "<REDMINE_BASE_URL>",
"REDMINE_API_KEY": "<REDMINE_API_KEY>",
"REDMINE_IMPERSONATE_USER": "<REDMINE_IMPERSONATE_USER>",
"REDMINE_READONLY": "<REDMINE_READONLY>",
"REDMINE_ALLOW_RAW_REQUEST": "<REDMINE_ALLOW_RAW_REQUEST>",
"REDMINE_HTTP_TIMEOUT_MS": "<REDMINE_HTTP_TIMEOUT_MS>",
"REDMINE_MAX_PAGES": "<REDMINE_MAX_PAGES>",
"REDMINE_MAX_DOWNLOAD_BYTES": "<REDMINE_MAX_DOWNLOAD_BYTES>"
}
}
}
}
启动命令npx -y redmine-mcp-connector
需要配置的环境变量
REDMINE_BASE_URLBase URL of your Redmine instance, no trailing slash (e.g. https://redmine.example.com)
REDMINE_API_KEY密钥Redmine API access key (My account -> Show API access key)
REDMINE_IMPERSONATE_USERAdmin-only impersonation login, sets X-Redmine-Switch-User
REDMINE_READONLYIf true, blocks all mutating HTTP methods (POST, PUT, PATCH, DELETE)
REDMINE_ALLOW_RAW_REQUESTIf true, registers the redmine_request escape-hatch tool for arbitrary REST paths
REDMINE_HTTP_TIMEOUT_MSHTTP timeout in milliseconds
REDMINE_MAX_PAGESMax pages when using fetch_all on list tools
REDMINE_MAX_DOWNLOAD_BYTESCap for redmine_attachment_download, in bytes (default 5 MiB)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmredmine-mcp-connector1.0.1

工具

69

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sortstring否
limitnumber否
offsetnumber否
includearray否
subjectstring否
query_idnumber否
author_idnumber否
fetch_allboolean否
status_idstring否
project_idany否project ID 或标识符
tracker_idnumber否
category_idnumber否
subproject_idstring否
assigned_to_idany否
fixed_version_idnumber否

详细介绍

Redmine MCP 服务

基于 stdio 的 Model Context Protocol 服务,通过 REST API(*.json 端点)封装 Redmine 实例。它作为独立的 Node.js 进程运行;无需修改 Redmine Rails 应用。

要求

  • Node.js 20+
  • 拥有API 访问密钥的 Redmine 用户(我的账号 → 显示 API 访问密钥)
  • 此进程能够通过网络访问 Redmine 的 REDMINE_BASE_URL

安装

正常使用无需安装——编码 Agent 会按需通过 npx 启动它:

npx -y redmine-mcp-connector

有关 Claude Desktop、Claude Code、Cursor、Windsurf、Cline、VS Code、Zed 及其他任何 MCP 客户端的详细设置说明,以及本地构建和 Docker 替代方案,请参阅 CONNECTING.md。

若要开发此服务,请改为克隆此仓库:

npm install
npm run build

配置

环境变量(参见 .env.example):

变量必需描述
REDMINE_BASE_URL是基础 URL,例如 https://redmine.example.com(末尾不带斜杠)
REDMINE_API_KEY是X-Redmine-API-Key 的值
REDMINE_IMPERSONATE_USER否设置 X-Redmine-Switch-User(在 Redmine 中仅管理员可用)
REDMINE_READONLY否若为 true / 1,则阻止所有会修改数据的 HTTP 方法
REDMINE_ALLOW_RAW_REQUEST否若为 true / 1,则注册 redmine_request 备用工具
REDMINE_HTTP_TIMEOUT_MS否默认值为 15000
REDMINE_MAX_PAGES否列表工具使用 fetch_all 时的最大页数(默认值为 20)
REDMINE_MAX_DOWNLOAD_BYTES否redmine_attachment_download 的大小上限(默认值为 5 MiB)

运行

REDMINE_BASE_URL=https://your-redmine.example.com REDMINE_API_KEY=secret npm start
# or during development:
REDMINE_BASE_URL=... REDMINE_API_KEY=... npm run dev

连接到编码 Agent

各客户端的完整说明(Claude Desktop、Claude Code、Cursor、Windsurf、Cline、VS Code、Zed 及通用 MCP 客户端)见 CONNECTING.md。快速示例(Claude Desktop / Cursor / Windsurf 使用相同格式):

{
  "mcpServers": {
    "redmine": {
      "command": "npx",
      "args": ["-y", "redmine-mcp-connector"],
      "env": {
        "REDMINE_BASE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}

MCP 资源(只读)

URI描述
redmine://projectsGET /projects.json(前 100 个)
redmine://meGET /users/current.json
redmine://me/issuesGET /issues.json?assigned_to_id=me(上限 100)
redmine://projects/{id}GET /projects/:id.json

工具概览

命名格式:redmine_<resource>_<action>。

问题: redmine_issues_list、redmine_issue_get、redmine_issue_create、redmine_issue_update、redmine_issue_add_comment、redmine_issue_delete(需要 confirm: true)、添加/移除关注者、列出/添加/移除关联。

项目: redmine_projects_list、redmine_project_get、创建/更新/归档/取消归档/删除(删除需要 confirm)。

用户: redmine_current_user、redmine_users_list、redmine_user_get、创建/更新/删除(删除需要 confirm)。

工时记录: 列出/获取/创建/更新/删除(删除需要 confirm)。

新闻: 列出/获取/创建/更新/删除(删除需要 confirm)。

Wiki: 列出页面、获取页面、创建/更新(PUT)、删除(需要 confirm)。

版本和类别: 版本 CRUD(删除需要 confirm)、问题类别 CRUD(删除需要 confirm)。

查询和元数据: redmine_queries_list、redmine_enumerations_list、redmine_trackers_list、redmine_issue_statuses_list、redmine_roles_list、redmine_role_get、redmine_custom_fields_list。

用户组(只读): redmine_groups_list、redmine_group_get。

成员关系: 列出/创建/更新/删除(删除需要 confirm)。

附件和搜索: redmine_search、获取/更新/删除/上传/下载附件(下载以 base64 返回,并受大小限制)。

代码仓库(标准 Redmine 中 REST 支持有限): redmine_repository_revision_link_issue、redmine_repository_revision_unlink_issue(需要 confirm)。核心 Redmine 不支持通过 JSON 列出代码仓库/修订版本;若启用 redmine_request,请使用该工具或安装插件。

备用入口: redmine_request——仅在 REDMINE_ALLOW_RAW_REQUEST=true 时可用;DELETE 需要 confirm: true。

安全

  • 如有说明,破坏性工具需要明确设置 confirm: true。
  • 在只读部署中设置 REDMINE_READONLY=true。
  • 此服务不会记录 API 密钥。

Docker

构建本地映像:

docker build -t redmine-mcp-server:local .

运行(stdio MCP 服务):

docker run --rm -i   -e REDMINE_BASE_URL="https://redmine.example.com"   -e REDMINE_API_KEY="your_api_key_here"   redmine-mcp-server:local

在 MCP 配置中使用此映像:

{
  "mcpServers": {
    "redmine": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "REDMINE_BASE_URL",
        "-e", "REDMINE_API_KEY",
        "docker.io/<docker-user>/redmine-mcp-server:latest"
      ],
      "env": {
        "REDMINE_BASE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}
发布到 Docker Hub Catalog
  1. 登录:
docker login
  1. 创建并使用 buildx 构建器(仅需执行一次):
docker buildx create --name redmine-mcp-builder --use --bootstrap
  1. 构建并推送多架构映像:
export IMAGE=docker.io/<docker-user>/redmine-mcp-server
export TAG=1.0.0

docker buildx build   --platform linux/amd64,linux/arm64   -t $IMAGE:$TAG   -t $IMAGE:latest   --push .
  1. 在 Docker Hub 中,将仓库描述设置为此 README 的内容,并将其设为公开,以便在 Catalog 中发现。

开发

npm run lint
npm test

贡献

欢迎贡献。

许可证

GPL-2.0-or-later(与 Redmine 属于同一系列)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。