MCP Redmine

MCP Redmine

将 Claude Desktop 连接到 Redmine,实现无缝的项目和问题管理,包括使用 Redmine 的 API 搜索、创建、更新和跟踪任务。

开发者工具
版本控制
访问服务器

Tools

redmine_request

Make a request to the Redmine API Args: path: API endpoint path (e.g. '/issues.json') method: HTTP method to use (default: 'get') data: Dictionary for request body (for POST/PUT) params: Dictionary for query parameters Returns: str: YAML string containing response status code, body and error message

redmine_paths_list

Return a list of available API paths from OpenAPI spec Retrieves all endpoint paths defined in the Redmine OpenAPI specification. Remember that you can use the redmine_paths_info tool to get the full specfication for a path. Returns: str: YAML string containing a list of path templates (e.g. '/issues.json')

redmine_paths_info

Get full path information for given path templates Args: path_templates: List of path templates (e.g. ['/issues.json', '/projects.json']) Returns: str: YAML string containing API specifications for the requested paths

redmine_upload

Upload a file to Redmine and get a token for attachment Args: file_path: Fully qualified path to the file to upload description: Optional description for the file Returns: str: YAML string containing response status code, body and error message The body contains the attachment token

redmine_download

Download an attachment from Redmine and save it to a local file Args: attachment_id: The ID of the attachment to download save_path: Fully qualified path where the file should be saved to filename: Optional filename to use for the attachment. If not provided, will be determined from attachment data or URL Returns: str: YAML string containing download status, file path, and any error messages

README

MCP Redmine

状态:运行良好,日常使用中,未发现任何已知错误。

让 Claude 成为你的 Redmine 助手! MCP Redmine 将 Claude Desktop 连接到你的 Redmine 实例,使其能够:

  • 搜索和浏览项目和问题
  • 创建和更新问题,完全支持 Markdown 格式
  • 上传和下载文件附件
  • 管理和跟踪时间记录
  • 更新问题状态和字段
  • 访问全面的 Redmine API 功能

使用 httpx 进行 API 请求,并与 Redmine OpenAPI 规范集成,以实现全面的 API 覆盖。

MCP Redmine in action

要求

  • 访问 Redmine 实例
  • Redmine API 密钥
  • Python 3.10+

使用的 OpenAPI 规范适用于 Redmine 5.0,已在 Redmine 6.0.3 上测试,但也可能适用于旧版本。

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 (对象,可选):请求正文的字典 (用于 POST/PUT)
      • params (对象,可选):查询参数的字典
    • 返回包含响应状态代码、正文和错误消息的 YAML 字符串:
    status_code: 200
    body:
      issues:
        - id: 1
          subject: "Fix login page"
          ...
    error: ""
    
  • redmine_upload

    • 将文件上传到 Redmine 并获取附件的令牌
    • 输入:
      • file_path (字符串):要上传的文件的完整路径
      • description (字符串,可选):文件的可选描述
    • 返回与 redmine_request 格式相同的 YAML 字符串,包括上传令牌:
    status_code: 201
    body:
      upload:
        id: 7
        token: "7.ed32257a2ab0f7526c0d72c32994c58b131bb2c0775f7aa84aae01ea8397ea54"
    error: ""
    
  • redmine_download

    • 从 Redmine 下载附件并将其保存到本地文件
    • 输入:
      • attachment_id (整数):要下载的附件的 ID
      • save_path (字符串):应保存文件的完整路径
      • filename (字符串,可选):要使用的可选文件名 (如果未提供,则自动确定)
    • 返回包含下载结果的 YAML 字符串:
    status_code: 200
    body:
      saved_to: "/path/to/downloaded/file.pdf"
      filename: "file.pdf"
    error: ""
    

与 Claude Desktop 一起使用

添加到你的 claude_desktop_config.json

{
  "mcpServers": {
    "redmine": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-redmine", "run", "server.py"],
      "env": {
        "REDMINE_URL": "https://your-redmine-instance.example.com",
        "REDMINE_API_KEY": "your-api-key",
        "REDMINE_REQUEST_INSTRUCTIONS": "/path/to/instructions.md"
      }
    }
  }
}

环境变量:

  • REDMINE_URL:你的 Redmine 实例的 URL (必需)
  • REDMINE_API_KEY:你的 Redmine API 密钥 (必需,请参阅下文了解如何获取)
  • REDMINE_REQUEST_INSTRUCTIONS:包含 redmine_request 工具的其他说明的文件的路径 (可选)

获取你的 Redmine API 密钥

  1. 登录到你的 Redmine 实例
  2. 转到“我的帐户”(通常位于右上角菜单中)
  3. 在页面右侧,你应该看到“API 访问密钥”
  4. 单击“显示”以查看你现有的密钥,或单击“生成”以创建一个新密钥
  5. 复制此密钥以在你的配置中使用

安装

  1. 克隆存储库:
git clone https://github.com/runekaagaard/mcp-redmine.git
  1. 确保你已安装 uv
# 如果你尚未安装 uv,请安装它
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 将 Redmine 配置添加到 claude_desktop_config.json (见上文)

示例

创建新问题

让我们在“网站”项目中创建一个新的错误报告:

1. 标题:“主页未在移动设备上加载”
2. 描述:“从 iOS 或 Android 设备访问主页时,会出现加载微调器,但内容永远不会加载。此问题在上次部署后开始出现。”
3. 优先级:高
4. 分配给:John Smith

搜索问题

你能找到“网站”项目中所有当前未分配的高优先级问题吗?

更新问题状态

请将问题 #123 标记为“进行中”并添加评论:“我已经开始处理这个问题。预计将在周五完成。”

记录时间

记录今天针对问题 #456 完成的“实施用户身份验证”的 3.5 小时。

贡献

热烈欢迎贡献!无论是错误报告、功能请求、文档改进还是代码贡献 - 所有输入都很有价值。请随意:

  • 打开一个 issue 来报告错误或建议功能
  • 提交包含改进的 pull request
  • 增强文档或分享你的使用示例
  • 提出问题并分享你的经验

目标是使 Claude 的 Redmine 项目管理更加出色,你的见解和贡献有助于实现这一目标。

致谢

该项目建立在他人出色的工作之上:

许可证

Mozilla Public License Version 2.0

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
Gitingest-MCP

Gitingest-MCP

一个用于 gitingest 的 MCP 服务器。它允许像 Claude Desktop、Cursor、Cline 等 MCP 客户端快速提取关于 Github 仓库的信息,包括仓库摘要、项目目录结构、文件内容等。

精选
本地
Python
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python