MCP Redmine
状态:工作良好,日常使用中没有任何已知的错误。
状态2:我刚刚将包添加到PyPI并更新了使用说明。请报告任何问题:)
让克劳德做你的Redmine助手!MCP Redmine将Claude Desktop连接到您的Redmine实例,使其能够:
- 搜索和浏览项目和问题
- 使用完整的markdown支持创建和更新问题
- 上传和下载文件附件
- 管理和跟踪时间条目
- 更新问题状态和字段
- 访问全面的Redmine API功能
对API请求使用httpx,并与Redmine OpenAPI规范集成,以全面覆盖API。
使用Claude Desktop
1.安装使用 uv
确保你安装了紫外线。
uv --version如果你还没有安装uv。
- Linux
curl -LsSf https://astral.sh/uv/install.sh | sh- macOS
brew install uv- 窗户
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"redmine": {
"command": "uvx",
"args": ["--from", "mcp-redmine==2026.01.13.152335",
"--refresh-package", "mcp-redmine", "mcp-redmine"],
"env": {
"REDMINE_URL": "https://your-redmine-instance.example.com",
"REDMINE_API_KEY": "your-api-key",
"REDMINE_REQUEST_INSTRUCTIONS": "/path/to/instructions.md",
"REDMINE_ALLOWED_DIRECTORIES": "/tmp,/home/user/uploads"
}
}
}
}2.安装使用 docker
确保你已经安装了docker。
docker --version构建docker镜像:
git clone git@github.com:runekaagaard/mcp-redmine.git
cd mcp-redmine
docker build -t mcp-redmine .添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"redmine": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "REDMINE_URL",
"-e", "REDMINE_API_KEY",
"-e", "REDMINE_REQUEST_INSTRUCTIONS",
"-e", "REDMINE_ALLOWED_DIRECTORIES",
"-v", "/path/to/instructions.md:/app/INSTRUCTIONS.md",
"-v", "/path/to/uploads:/app/uploads",
"mcp-redmine"
],
"env": {
"REDMINE_URL": "https://your-redmine-instance.example.com",
"REDMINE_API_KEY": "your-api-key",
"REDMINE_REQUEST_INSTRUCTIONS": "/app/INSTRUCTIONS.md",
"REDMINE_ALLOWED_DIRECTORIES": "/app/uploads"
}
}
}
}环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
REDMINE_URL | 是 | - | Redmine实例的URL。支持子路径(例如。, http://localhost/redmine/) |
REDMINE_API_KEY | 是 | - | 您的Redmine API密钥(请参阅下面的获取方法) |
REDMINE_REQUEST_INSTRUCTIONS | 无 | - | 包含redmine_request工具附加说明的文件路径。我发现让LLM在会话后生成该文件效果很好。 (示例1 示例2) |
REDMINE_HEADERS | 否 | (空) | 要包含在所有请求中的自定义HTTP标头。格式: "Header1: Value1, Header2: Value2"适用于需要额外认证的代理(例如。, X-Redmine-Username) |
REDMINE_RESPONSE_FORMAT | 没有 | yaml | 响应格式: yaml 或 json.控制如何格式化API响应 |
REDMINE_ALLOWED_DIRECTORIES | 用于上传/下载 | (已禁用) | 文件操作所需。 以逗号分隔的允许上传/下载的目录列表(例如。, /tmp,/home/user/uploads).如果未设置安全性,则禁用上传/下载 |
REDMINE_DANGEROUSLY_ACCEPT_INVALID_CERTS | 否 | (已禁用) | 设置为 1 禁用SSL证书验证。仅用于受信任环境中的自签名证书 |
备注:通过Docker运行时 REDMINE_REQUEST_INSTRUCTIONS 环境变量必须指向 容器内的路径,而不是主机上的路径。 因此,如果你想使用本地文件,你需要 把它装进容器里 在正确的位置。安全说明:TheREDMINE_ALLOWED_DIRECTORIES设置可防止路径遍历攻击。路径包含../在验证之前解决,确保文件只能在允许的目录中访问。
获取您的Redmine API密钥
- 登录您的Redmine实例
- 转到“我的帐户”(通常位于右上角菜单中)
- 在页面的右侧,您应该看到“API访问密钥”
- 单击“显示”查看现有密钥,或单击“生成”创建新密钥
- 复制此密钥以在配置中使用
API
工具
- redmine_paths_list
- 从OpenAPI规范返回可用API路径的列表 - 无需输入 - 返回一个包含路径模板列表的YAML字符串:
- /issues.json
- /projects.json
- /time_entries.json
...- redmine_paths_info
- 获取给定路径模板的完整路径信息 - 输入: path_templates (字符串列表) - 返回包含请求路径的API规范的YAML字符串:
/issues.json:
get:
operationId: getIssues
parameters:
- $ref: '#/components/parameters/format'
...- redmine_request
- 向Redmine API提出请求 - 输入: - path (字符串):API端点路径(例如'/issues.json') - method (字符串,可选):要使用的HTTP方法(默认值:'get') - data (object,可选):请求体字典(用于POST/PUT) - params (对象,可选):查询参数字典 - 返回包含响应状态代码、正文和错误消息的YAML字符串:
status_code: 200
body:
issues:
- id: 1
subject: "Fix login page"
...
error: ""- redmine_upload
- 将文件上传到Redmine并获取附件令牌 - 需要 REDMINE_ALLOWED_DIRECTORIES 待设置 - 输入: - file_path (string):要上传的文件的完全限定路径(必须在允许的目录内) - description (string,可选):文件的可选描述 - 返回与redmine_request格式相同的YAML字符串,包括上传令牌:
status_code: 201
body:
upload:
id: 7
token: "7.ed32257a2ab0f7526c0d72c32994c58b131bb2c0775f7aa84aae01ea8397ea54"
error: ""- redmine_下载
- 从Redmine下载附件并将其保存到本地文件 - 需要 REDMINE_ALLOWED_DIRECTORIES 待设置 - 输入: - attachment_id (整数):要下载的附件的ID - save_path (string):文件应保存的完全限定路径(必须在允许的目录内) - filename (字符串,可选):要使用的可选文件名(如果未提供,则自动确定) - 返回带有下载结果的YAML字符串:
status_code: 200
body:
saved_to: "/path/to/downloaded/file.pdf"
filename: "file.pdf"
error: ""例子
创建新问题
Let's create a new bug report in the "Website" project:
1. Title: "Homepage not loading on mobile devices"
2. Description: "When accessing the homepage from iOS or Android devices, the loading spinner appears but the content never loads. This issue started after the last deployment."
3. Priority: High
4. Assign to: John Smith搜索问题
Can you find all high priority issues in the "Website" project that are currently unassigned?更新问题状态
Please mark issue #123 as "In Progress" and add a comment: "I've started working on this issue. Expect it to be completed by Friday."记录时间
Log 3.5 hours against issue #456 for "Implementing user authentication" done today.MCP目录列表
MCP Redmine列在以下MCP目录站点和存储库中:
开发中
首先克隆github仓库并安装依赖项:
git clone git@github.com:runekaagaard/mcp-redmine.git
cd mcp-redmine
uv sync然后在claude_desktop_config.json中设置:
...
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-redmine", "-m", "mcp_redmine.server", "main"],
...我的其他LLM项目
- MCP炼金术 -将Claude Desktop连接到数据库,以探索模式和运行SQL。
- MCP发送邮件不多 -Claude Desktop的电子邮件助手使用不多。
- Diffpilot 的 -带文件分组和标记的多列git diff查看器。
- 克劳德本地文件 -访问Claude Desktop工件中的本地文件。
贡献
热忱欢迎投稿!无论是错误报告、功能请求、文档改进还是代码贡献,所有的输入都是有价值的。请随意:
- 打开问题以报告错误或建议功能
- 提交带有改进的拉取请求
- 增强文档或分享您的使用示例
- 提问并分享你的经验
我们的目标是让Claude的Redmine项目管理变得更好,你的见解和贡献有助于实现这一目标。
致谢
该项目建立在其他人出色工作的基础上:
- httpx -用于处理HTTP请求
- Redmine OpenAPI规范 -API全面规范
- 红矿 -灵活的项目管理web应用程序
许可证
Mozilla公共许可证版本2.0
