使用说明
Redmine MCP服务器
模型上下文协议(MCP)服务器,提供与Redmine的全面集成,使人工智能助手能够通过干净、经过验证的API与您的Redmine实例进行交互。
特性
- 完整的问题生命周期:创建、阅读、更新、转换问题
- 元数据:访问项目、跟踪器、状态、用户和优先级
- 搜索和筛选:使用灵活的搜索参数查找问题
- 附件:上传文件并将其附加到问题中
- 注释和评论:为问题添加注释和评论
- 状态转换:使用可选注释更改问题状态
- 强验证:Zod模式确保数据完整性
- 错误处理:清晰、结构化的错误消息
- NPX就绪:安装并通过运行
npx @icoach/redmine-mcp-server
快速开始
NPX安装(推荐)
npx @icoach/redmine-mcp-server
MCP配置
将此添加到MCP配置中:
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["@icoach/redmine-mcp-server@latest"],
"env": {
"REDMINE_URL": "https://your-redmine-instance.com",
"REDMINE_API_KEY": "YOUR_REDMINE_API_KEY",
"REDMINE_DEFAULT_PROJECT_ID": "123"
},
"autoApprove": ["read_issue", "list_projects", "list_trackers_statuses", "get_metadata"]
}
}
}
环境变量
配置优先
服务器支持两种配置环境变量的方式:
- 本地
.env文件 (最高优先级)-放置a.env项目根目录中的文件 - MCP配置
env章节 (回退)-在MCP配置中定义
如果一个本地 .env 文件存在于您的项目目录中,其值将覆盖MCP配置变量。
必需变量
REDMINE_URL:您的Redmine实例URLREDMINE_API_KEY:您的Redmine API密钥
可选变量
REDMINE_DEFAULT_PROJECT_ID:创建问题的默认项目REDMINE_TIMEOUT_MS:请求超时(毫秒)(默认值:30000)REDMINE_INSECURE_TLS:允许不安全的TLS连接(默认值:false)LOG_LEVEL:日志级别(供将来使用)
使用本地 .env 文件
创建一个 .env 项目根目录中的文件:
REDMINE_URL=https://your-redmine-instance.com
REDMINE_API_KEY=your_api_key_here
REDMINE_DEFAULT_PROJECT_ID=123
这种方法在以下情况下很有用:
- 您需要特定于项目的Redmine配置
- 您不想修改全局MCP设置
- 您正在处理多个具有不同Redmine实例的项目
可用工具
问题操作
read_issue
获取有关特定问题的详细信息。
{
"issue_id": 123
}
create_issue
在Redmine中创建新问题。
{
"project_id": 1,
"subject": "Issue title",
"description": "Issue description",
"tracker_id": 1,
"status_id": 1,
"priority_id": 2,
"assigned_to_id": 5,
"start_date": "2024-01-01",
"due_date": "2024-01-31"
}
注:如果 project_id 省略, REDMINE_DEFAULT_PROJECT_ID 必须设置。
update_issue
更新现有问题的属性。
{
"issue_id": 123,
"subject": "Updated title",
"description": "Updated description",
"tracker_id": 2,
"status_id": 2,
"priority_id": 3,
"assigned_to_id": 6,
"start_date": "2024-02-01",
"due_date": "2024-02-28"
}
add_issue_note
为现有问题添加注释/评论。
{
"issue_id": 123,
"notes": "This is a comment on the issue"
}
transition_issue
更改问题的状态(带可选注释)。
{
"issue_id": 123,
"status_id": 3,
"notes": "Marking as resolved"
}
find_issues
使用灵活的过滤功能搜索问题。
{
"project_id": 1,
"status_id": 1,
"tracker_id": 1,
"assigned_to_id": 5,
"query": "search text",
"limit": 10,
"offset": 0
}
add_attachment
上传文件并将其附加到问题中。
{
"issue_id": 123,
"filename": "document.pdf",
"data_base64": "base64-encoded-file-data",
"content_type": "application/pdf",
"description": "Important document"
}
元数据和参考数据
list_projects
获取所有可用项目。
list_trackers_statuses
在一次通话中获取所有跟踪器和问题状态。
get_metadata
获取全面的元数据,包括项目、跟踪器、状态、用户和优先级。
发展
地方发展
-
克隆存储库:
git clone <repository-url> cd redmine-mcp-server -
安装依赖项:
npm install -
设置环境变量:
cp .env.example .env # Edit .env with your Redmine details -
构建和测试:
npm run build npm test -
在开发模式下运行:
npm run dev
测试
运行集成测试:
npm test
运行完整的MCP协议测试:
npm run test:full
配电楼
npm run build
npm pack # Creates tarball for testing
npm publish --access public # Publishes to npm
技术细节
- 建筑:使用官方SDK的基于Stdio的MCP服务器
- 语言:TypeScript编译为ESM模块
- 验证:所有工具参数的Zod模式
- 错误处理:带有HTTP状态代码的结构化错误响应
- 运输:标准stdio传输,实现最大兼容性
- Node.js:需要Node.js 18+才能支持现代fetch()和ESM
贡献
- 分叉存储库
- 创建要素分支
- 通过测试进行更改
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。