内容
# OpenProject MCP 服务器
一个模型上下文协议(MCP)服务器,使 AI 代理能够与 OpenProject 的 APIv3 进行交互,实现自主项目管理。
## 概述
该 MCP 服务器提供了一套全面的工具,允许 AI 代理:
- 列出、创建、更新和删除项目
- 管理工作包(任务、错误、功能等)
- 处理项目成员和版本
- 查询状态、类型、优先级、用户和角色
- 搜索工作包
## 功能
### 项目
- 列出所有项目,支持分页和筛选
- 获取详细的项目信息
- 创建新项目
- 更新项目详情(名称、描述、状态)
- 删除项目
- 管理项目成员(添加/删除)
- 管理项目版本
### 工作包
- 列出工作包,支持高级筛选
- 获取详细的工作包信息
- 创建新的工作包
- 更新工作包(状态、优先级、指派人、日期等)
- 删除工作包
- 查看活动历史和评论
- 添加评论到工作包
- 管理工作包之间的关系
### 引用数据
- 列出所有可用的状态
- 列出所有工作包类型
- 列出所有优先级
- 列出所有用户
- 列出项目中可指派的用户
- 列出所有角色
- 列出所有组
### 搜索
- 跨工作包进行全文搜索
## 前置条件
- Node.js 18+
- 具有 API 访问权限的 OpenProject 实例
## 安装
```bash
# 克隆或下载此仓库
cd openproject-mcp
# 安装依赖
npm install
# 编译 TypeScript 代码
npm run build
```
## 配置
设置以下环境变量:
```bash
export OPENPROJECT_BASE_URL="https://your-openproject-instance.com"
export OPENPROJECT_API_KEY="your-api-key"
```
获取 API 密钥:
1. 登录 OpenProject
2. 进入 我的账户 → API 访问密钥
3. 生成新的 API 密钥
## 运行
```bash
# 首先设置环境变量
export OPENPROJECT_BASE_URL="https://your-openproject-instance.com"
export OPENPROJECT_API_KEY="your-api-key"
# 运行服务器
node dist/index.js
```
## Claude 桌面集成
添加到您的 `claude.json`:
```json
{
"mcpServers": {
"openproject": {
"command": "node",
"args": ["/path/to/openproject-mcp/dist/index.js"],
"env": {
"OPENPROJECT_BASE_URL": "https://your-openproject-instance.com",
"OPENPROJECT_API_KEY": "your-api-key"
}
}
}
}
```
## 使用示例
以下是代理如何使用工具的示例:
1. **列出项目** 以查看可用项目
2. **获取项目类型** 以了解存在哪些工作包类型
3. **获取状态** 以了解可能转换的状态
4. **列出用户** 以查找可指派的团队成员
5. **创建工作包**,包含主题、类型、优先级
6. **更新工作包** 随着工作进展(更改状态、更新指派人)
7. **添加评论** 以记录进展
8. **搜索** 以查找相关工作包
## 工具参考
| 工具 | 描述 |
|------|-------------|
| `op_list_projects` | 列出所有项目 |
| `op_get_project` | 获取项目详情 |
| `op_create_project` | 创建新项目 |
| `op_update_project` | 更新项目 |
| `op_delete_project` | 删除项目 |
| `op_list_project_members` | 列出项目成员 |
| `op_add_project_member` | 添加成员到项目 |
| `op_remove_project_member` | 从项目中移除成员 |
| `op_list_project_versions` | 列出项目版本 |
| `op_create_version` | 创建版本 |
| `op_list_work_packages` | 列出工作包 |
| `op_get_work_package` | 获取工作包详情 |
| `op_create_work_package` | 创建工作包 |
| `op_update_work_package` | 更新工作包 |
| `op_delete_work_package` | 删除工作包 |
| `op_list_work_package_activities` | 列出活动 |
| `op_add_work_package_comment` | 添加评论 |
| `op_list_work_package_relations` | 列出关系 |
| `op_create_work_package_relation` | 创建关系 |
| `op_delete_work_package_relation` | 删除关系 |
| `op_get_project_work_packages` | 获取项目中的所有工作包 |
| `op_list_statuses` | 列出所有状态 |
| `op_list_types` | 列出所有类型 |
| `op_get_project_types` | 列出项目中的类型 |
| `op_list_priorities` | 列出所有优先级 |
| `op_list_users` | 列出所有用户 |
| `op_get_user` | 获取用户详情 |
| `op_get_current_user` | 获取当前用户 |
| `op_list_project_assignees` | 列出可指派的用户 |
| `op_list_roles` | 列出所有角色 |
| `op_list_groups` | 列出所有组 |
| `op_search` | 搜索工作包 |
## 架构
- **client.ts**:使用 axios 和基本身份验证的 OpenProject API 客户端
- **index.ts**:MCP 服务器实现,包含所有工具处理程序
## 许可证
MIT