Redmine MCP服务器
](https://smithery.ai/server/@yonaka15/mcp-server-redmine)
这是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密钥
- 在Redmine管理设置中启用REST API
- 从用户设置页面获取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基本测试命令:
- 列出可用工具:
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/list- 测试问题功能:
# 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- 测试项目功能:
# 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- 测试用户功能(需要管理员权限):
# 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- 测试时间条目功能:
# 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 SDKzod:架构验证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。添加或修改功能时,请参阅这些文档。
许可证
麻省理工学院
