Redmine MCP服务器

一个为Redmine设计的模型上下文协议(MCP)服务器,通过REST API为LLMs提供工单和项目信息管理功能。

  • by yonaka15
  • TypeScript
  • 本地部署
  • 78 星标
  • 更新于
在 GitHub 查看 yonaka15/mcp-server-redmine

使用说明

Redmine MCP服务器

这是Redmine的模型上下文协议(MCP)服务器实现。它与Redmine的REST API集成,为LLM提供票据和项目信息。

特性

支持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:对提示自动响应“是”
    • --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操作。

检验员测试

使用 MCP检查员 以验证功能。

使用 MCP检查员 以验证功能。

GUI模式

# Build
npm run build

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

# Launch inspector
npx @modelcontextprotocol/inspector dist/index.js

命令行接口命令模式

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。添加或修改功能时,请参阅这些文档。

许可证

麻省理工学院

相关项目