mcpField
R
Redmine MCP Server

Redmine MCP Server

本地服务
github.com/yonaka15生产力7866 周前更新

关于 Redmine MCP Server

Redmine MCP Server 是一个 MCP 服务,通过 Redmine REST API 向 LLM 提供工单和项目信息。它面向需要在 AI 助手中查询或管理 Redmine 数据的用户,支持问题、项目、用户和时间条目四类资源。

主要功能

  1. 01问题的搜索、创建、更新与删除
  2. 02项目的查询、创建、归档与配置
  3. 03时间条目的记录与筛选
  4. 04支持自定义字段
  5. 05用户资源查询(需管理员权限)

适用场景

  1. 01在 AI 助手中按状态或负责人检索 Redmine 工单
  2. 02通过 MCP 工具为问题添加评论或更新字段
  3. 03按日期范围汇总项目的时间条目

MCP 相关

该项目是一个 MCP 服务,将 Redmine REST API 的功能以工具形式暴露给 MCP 客户端调用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": [
"-y",
"/path/to/mcp-server-redmine"
],
"env": {
"REDMINE_HOST": "<REDMINE_HOST>",
"REDMINE_API_KEY": "<REDMINE_API_KEY>"
}
}
}
}
启动命令npx -y /path/to/mcp-server-redmine
需要配置的环境变量
REDMINE_HOST
REDMINE_API_KEY密钥

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

安装包
npm/path/to/mcp-server-redmine

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Redmine MCP 服务

smithery badge

这是一个 Redmine 的模型上下文协议(MCP)服务实现。它集成 Redmine 的 REST API,为大模型提供工单和项目信息。

Redmine Server MCP server

功能

支持 Redmine REST API 中稳定的资源:

  • 工单(1.0~)
  • 项目(1.0~)
  • 用户(1.1~)
  • 时间记录(1.1~)
工具
工单
  • 搜索工单
    • 按项目、状态、负责人等筛选
    • 关键词搜索
    • 支持自定义字段
  • 创建/更新工单
    • 设置跟踪器、状态、优先级
    • 配置自定义字段
    • 添加评论
  • 删除工单
项目
  • 搜索项目
    • 按启用/已归档/已关闭状态筛选
    • 关键词搜索
  • 获取项目详情
    • 包含跟踪器和类别信息
  • 创建/更新项目
    • 配置模块和跟踪器
    • 设置成员继承
  • 归档/取消归档项目
  • 删除项目
时间记录
  • 搜索时间记录
    • 按项目、用户、日期范围筛选
  • 获取时间记录详情
  • 创建/更新时间记录
    • 记录到项目或工单
    • 指定活动
    • 支持自定义字段
  • 删除时间记录

在 Claude 中使用

要在 Claude 中使用此服务,请按如下方式配置:

{
  "mcp-server-redmine": {
    "command": "npx",
    "args": [
      "-y",
      "--prefix",
      "/path/to/mcp-server-redmine",
      "mcp-server-redmine"
    ],
    "env": {
      "REDMINE_HOST": "https://your-redmine.example.com",
      "REDMINE_API_KEY": "your-api-key-here"
    }
  }
}
配置选项
  • command:执行 npm 包的命令
  • args:
    • -y:对提示自动回复“yes”
    • --prefix:指定安装目录
    • 最后一个参数指定包名
  • env:环境变量
    • REDMINE_HOST:Redmine 服务 URL
    • REDMINE_API_KEY:你的 Redmine API 密钥

设置

获取 API 密钥
  1. 在 Redmine 管理设置中启用 REST API
  2. 在用户设置页面获取 API 密钥
环境变量

设置以下环境变量:

  • REDMINE_API_KEY:从 Redmine 用户设置中获取的 API 密钥
  • REDMINE_HOST:Redmine 服务 URL(例如,https://redmine.example.com)

测试

单元测试
# Run tests
npm test

为确保数据安全,测试中仅包含 GET 操作。

Inspector 测试

使用 MCP Inspector 验证功能。

使用 MCP Inspector 验证功能。

GUI 模式
# Build
npm run build

# Set execute permission (important)
chmod +x dist/index.js

# Launch inspector
npx @modelcontextprotocol/inspector dist/index.js
CLI 模式
CLI 测试命令

以下是使用 CLI 模式测试 Redmine MCP 服务的实用示例。

前提条件:

# Build the project
npm run build

# Set execute permission
chmod +x dist/index.js

# Set environment variables
export REDMINE_API_KEY=your-api-key-here
export REDMINE_HOST=http://localhost:3000  # or your Redmine server URL

基本测试命令:

  1. 列出可用工具:

    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/list
    
  2. 测试工单功能:

    # List issues (with limit)
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_issues \
      --tool-arg limit=5
    
    # Get specific issue details
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name get_issue \
      --tool-arg id=1
    
    # Filter issues by project
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_issues \
      --tool-arg project_id=1 \
      --tool-arg limit=3
    
  3. 测试项目功能:

    # List all projects
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_projects
    
    # Get specific project details
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name show_project \
      --tool-arg id=1
    
  4. 测试用户功能(需要管理员权限):

    # List users
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_users
    
    # Get specific user details
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name show_user \
      --tool-arg id=1
    
  5. 测试时间记录功能:

    # List time entries
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_time_entries \
      --tool-arg limit=5
    
    # Get specific time entry details
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name show_time_entry \
      --tool-arg id=1
    

高级测试:

# Filter issues by status
npx @modelcontextprotocol/inspector --cli \
  -e REDMINE_API_KEY=$REDMINE_API_KEY \
  -e REDMINE_HOST=$REDMINE_HOST \
  node dist/index.js \
  --method tools/call \
  --tool-name list_issues \
  --tool-arg status_id=1 \
  --tool-arg limit=5

# Search issues by keyword
npx @modelcontextprotocol/inspector --cli \
  -e REDMINE_API_KEY=$REDMINE_API_KEY \
  -e REDMINE_HOST=$REDMINE_HOST \
  node dist/index.js \
  --method tools/call \
  --tool-name list_issues \
  --tool-arg subject="bug" \
  --tool-arg limit=3

# Get time entries for specific project
npx @modelcontextprotocol/inspector --cli \
  -e REDMINE_API_KEY=$REDMINE_API_KEY \
  -e REDMINE_HOST=$REDMINE_HOST \
  node dist/index.js \
  --method tools/call \
  --tool-name list_time_entries \
  --tool-arg project_id=1 \
  --tool-arg limit=10

故障排除:

  • 连接问题:确认 Redmine 服务正在运行且可以访问:

    curl -H "X-Redmine-API-Key: $REDMINE_API_KEY" \
         "$REDMINE_HOST/projects.json"
    
  • 权限错误:部分操作需要管理员权限。请检查你在 Redmine 中的 API 密钥权限。

  • 环境变量:确保环境变量已正确设置:

    echo $REDMINE_API_KEY
    echo $REDMINE_HOST
    
  • 构建问题:确保项目已构建且已设置权限:

    npm run build
    chmod +x dist/index.js
    ls -la dist/index.js
    

权限

部分功能需要管理员权限:

用户相关操作
  • list_users:需要管理员权限
  • create_user:需要管理员权限
  • update_user:需要管理员权限
  • delete_user:需要管理员权限

可用信息因用户权限级别而异。详情请参阅 Redmine API 文档。

开发

要求
  • Node.js 18 或更高版本
  • npm 9 或更高版本
库
  • @modelcontextprotocol/sdk:MCP SDK
  • zod:模式验证
  • typescript:类型系统
目录结构
.
├── src/
│   ├── tools/            # Tool definitions
│   │   ├── issues.ts
│   │   ├── projects.ts
│   │   ├── time_entries.ts
│   │   └── index.ts
│   ├── formatters/       # Formatters
│   │   ├── issues.ts
│   │   ├── projects.ts
│   │   ├── time_entries.ts
│   │   └── index.ts
│   ├── lib/              # Common libraries
│   │   ├── client.ts     # Redmine API client
│   │   ├── config.ts     # Configuration management
│   │   └── types.ts      # Type definitions
│   ├── handlers.ts       # Request handlers
│   └── index.ts          # Entry point
├── docs/
│   └── adr/              # Architecture Decision Records
├── package.json          # Project configuration
├── tsconfig.json         # TypeScript configuration
└── README.md             # Documentation
构建
# Install dependencies
npm install

# Build
npm run build

# Start development server
npm run dev
架构决策记录

主要设计决策记录在 docs/adr 中。添加或修改功能时,请参考这些文档。

许可证

MIT

相关项目

评论

支持 Markdown

第一次接触 MCP?

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

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