项目简介

这是一个Redmine MCP服务器实现,旨在作为大型语言模型 (LLM) 客户端与Redmine项目管理系统之间的桥梁。它将Redmine的REST API功能封装成遵循Model Context Protocol (MCP) 标准的工具,使得LLM客户端能够通过标准化的JSON-RPC接口,方便地获取Redmine数据和执行操作。

主要功能点

该服务器通过MCP协议向LLM客户端提供以下Redmine核心功能的访问能力:

  • 任务(Issues)管理: 获取任务列表、获取任务详情、创建任务、更新任务、删除任务、添加/移除观察者、获取任务关联。
  • 项目(Projects)管理: 获取项目列表、获取项目详情、创建项目、更新项目、删除项目、归档项目、解除归档项目、获取项目成员。
  • 用户(Users)管理: 获取用户列表、获取用户详情、创建用户、更新用户、删除用户。
  • 工时(Time Entries)记录: 获取工时记录列表、创建工时记录。
  • 其他: 获取新闻、获取版本、获取Wiki页面、获取查询列表等。

安装步骤

  1. 确保您的系统已安装 Python 环境。
  2. 安装依赖管理工具 'uv' (推荐):
    pip install uv
  3. 克隆本仓库到本地目录。
  4. 在仓库根目录创建 '.env' 文件,配置Redmine服务器连接信息和API密钥:
    REDMINE_URL=http://your-redmine-url.com
    REDMINE_ADMIN_API_KEY=your_admin_api_key
    # 根据需要配置其他测试用的ID,如:
    # REDMINE_TEST_PROJECT_ID=your_test_project_id
    # REDMINE_TEST_USER_ID=your_test_user_id
    # REDMINE_WATCHER_USER_ID=another_user_id_for_testing_watchers
    # REDMINE_TEST_ACTIVITY_ID=your_test_activity_id
    # REDMINE_TEST_GROUP_ID=your_test_group_id
    # REDMINE_LOCKED_USER_ID=a_locked_user_id_for_testing
    # REDMINE_LOCKED_USER_API_KEY=api_key_of_a_locked_user
    # REDMINE_USER_ID=a_standard_user_id
    # REDMINE_USER_API_KEY=api_key_of_a_standard_user
    请将 'your-redmine-url.com' 和 'your_admin_api_key' 替换为您的Redmine实际地址和具有管理员权限的API密钥。其他环境变量根据您需要测试或使用的具体工具功能进行配置。
  5. 使用 'uv' 安装项目依赖:
    uv sync

服务器配置 (MCP客户端使用)

LLM客户端需要配置如何启动并连接到此MCP服务器。典型的MCP客户端配置(通常是JSON格式)会包含以下信息:

{
  "server name": "一个标识服务器的名称,例如 RedmineServer",
  "command": "用于启动服务器的可执行文件或脚本",
  "args": [
    "启动命令的参数,例如指定Python解释器和主程序文件"
  ],
  // 其他MCP客户端可能需要的配置,如传输协议等,取决于客户端实现
}

对于此Redmine MCP服务器,基于其代码结构和README中的示例,典型的MCP客户端配置 'command' 和 'args' 可能如下所示:

  • command: 'uv' (使用 uv 虚拟环境执行)
  • args: '["--directory", "/path/to/redmine_mcp_server", "run", "main.py"]'
    • '--directory /path/to/redmine_mcp_server': 指定服务器代码所在的目录路径,LLM客户端将在此目录下运行命令。请将 '/path/to/redmine_mcp_server' 替换为您克隆本仓库的实际路径。
    • 'run main.py': uv 命令的参数,指示 uv 在指定目录下运行 'main.py' 文件。

注意:

  • MCP客户端通常在单独的进程中启动服务器并使用Stdio进行通信,或者通过配置连接到WebSocket/SSE等协议。此配置示例假定使用Stdio或类似的本地执行方式。
  • Redmine的URL和API Key配置应在服务器启动前通过 '.env' 文件或环境变量设置,服务器代码 ('main.py' 中的工具函数) 会读取这些环境变量。

基本使用方法

一旦MCP客户端配置并成功连接到此Redmine MCP服务器,LLM客户端即可通过MCP协议调用服务器提供的工具。例如,LLM可能会发出JSON-RPC请求来调用名为 'get_issue' 的工具,并提供必要的参数(如 'issue_id')。服务器将执行相应的Redmine API调用,并将结果通过MCP协议返回给LLM客户端。

LLM可以利用这些工具执行诸如“查找项目'MyProject'中所有未完成的任务”、“为任务#123添加评论'这项任务需要进一步讨论'”、“创建一个名为'新功能开发'的新项目”等操作。

信息

分类

商业系统