1
1
# Gitee MCP 服务器
2
2
3
- MCP 服务器用于 Gitee API ,支持文件操作、仓库管理、问题管理、拉取请求管理等功能。
3
+ Gitee 的 MCP 服务器 ,支持文件操作、仓库管理、问题管理、拉取请求管理等功能。
4
4
5
5
### 功能
6
6
@@ -116,86 +116,88 @@ MCP 服务器用于 Gitee API,支持文件操作、仓库管理、问题管理
116
116
- 返回:创建的问题详情
117
117
118
118
10 . ` get_issue `
119
- - 获取 Gitee 仓库中特定问题的详情
120
- - 输入:
121
- - ` owner ` (字符串):仓库所有者(用户名或组织)
122
- - ` repo ` (字符串):仓库名称
123
- - ` issue_number ` (数字):问题编号
124
- - 返回:问题详情
119
+ - 获取 Gitee 仓库中特定问题的详情
120
+ - 输入:
121
+ - ` owner ` (字符串):仓库所有者(用户名或组织)
122
+ - ` repo ` (字符串):仓库名称
123
+ - ` issue_number ` (数字):问题编号
124
+ - 返回:问题详情
125
125
126
126
11 . ` update_issue `
127
- - 更新 Gitee 仓库中的现有问题
128
- - 输入:
129
- - ` owner ` (字符串):仓库所有者(用户名或组织)
130
- - ` repo ` (字符串):仓库名称
131
- - ` issue_number ` (数字):问题编号
132
- - ` title ` (可选字符串):问题标题
133
- - ` body ` (可选字符串):问题内容
134
- - ` assignees ` (可选数组):分配给问题的用户
135
- - ` milestone ` (可选数字):里程碑 ID
136
- - ` labels ` (可选数组):标签
137
- - ` state ` (可选字符串):问题状态(打开、关闭、进行中)
138
- - 返回:更新的问题详情
127
+ - 更新 Gitee 仓库中的现有问题
128
+ - 输入:
129
+ - ` owner ` (字符串):仓库所有者(用户名或组织)
130
+ - ` repo ` (字符串):仓库名称
131
+ - ` issue_number ` (数字):问题编号
132
+ - ` title ` (可选字符串):问题标题
133
+ - ` body ` (可选字符串):问题内容
134
+ - ` assignees ` (可选数组):分配给问题的用户
135
+ - ` milestone ` (可选数字):里程碑 ID
136
+ - ` labels ` (可选数组):标签
137
+ - ` state ` (可选字符串):问题状态(打开、关闭、进行中)
138
+ - 返回:更新的问题详情
139
139
140
140
12 . ` add_issue_comment `
141
- - 向现有问题添加评论
142
- - 输入:
143
- - ` owner ` (字符串):仓库所有者(用户名或组织)
144
- - ` repo ` (字符串):仓库名称
145
- - ` issue_number ` (数字):问题编号
146
- - ` body ` (字符串):评论内容
147
- - 返回:创建的评论详情
141
+ - 向现有问题添加评论
142
+ - 输入:
143
+ - ` owner ` (字符串):仓库所有者(用户名或组织)
144
+ - ` repo ` (字符串):仓库名称
145
+ - ` issue_number ` (数字):问题编号
146
+ - ` body ` (字符串):评论内容
147
+ - 返回:创建的评论详情
148
148
149
149
13 . ` list_issues `
150
- - 列出 Gitee 仓库中的问题,支持过滤选项
151
- - 输入:
152
- - ` owner ` (字符串):仓库所有者(用户名或组织)
153
- - ` repo ` (字符串):仓库名称
154
- - ` state ` (可选字符串):问题状态(打开、关闭、所有)
155
- - ` sort ` (可选字符串):排序字段(创建、更新、评论)
156
- - ` direction ` (可选字符串):排序方向(升序、降序)
157
- - ` labels ` (可选字符串):标签,多个标签用逗号分隔
158
- - ` milestone ` (可选数字):里程碑 ID
159
- - ` assignee ` (可选字符串):过滤分配给特定用户的问题
160
- - ` creator ` (可选字符串):过滤由特定用户创建的问题
161
- - ` program ` (可选字符串):过滤特定程序的问题
162
- - ` page ` (可选数字):页码
163
- - ` per_page ` (可选数字):每页项目数,最大 100
164
- - 返回:问题列表
150
+ - 列出 Gitee 仓库中的问题,支持过滤选项
151
+ - 输入:
152
+ - ` owner ` (字符串):仓库所有者(用户名或组织)
153
+ - ` repo ` (字符串):仓库名称
154
+ - ` state ` (可选字符串):问题状态(打开、关闭、所有)
155
+ - ` sort ` (可选字符串):排序字段(创建、更新、评论)
156
+ - ` direction ` (可选字符串):排序方向(升序、降序)
157
+ - ` labels ` (可选字符串):标签,多个标签用逗号分隔
158
+ - ` milestone ` (可选数字):里程碑 ID
159
+ - ` assignee ` (可选字符串):过滤分配给特定用户的问题
160
+ - ` creator ` (可选字符串):过滤由特定用户创建的问题
161
+ - ` program ` (可选字符串):过滤特定程序的问题
162
+ - ` page ` (可选数字):页码
163
+ - ` per_page ` (可选数字):每页项目数,最大 100
164
+ - 返回:问题列表
165
165
166
166
### 拉取请求操作
167
167
168
168
14 . ` create_pull_request `
169
- - 在 Gitee 仓库中创建一个新拉取请求
170
- - 输入:
171
- - ` owner ` (字符串):仓库所有者(用户名或组织)
172
- - ` repo ` (字符串):仓库名称
173
- - ` title ` (字符串):拉取请求标题
174
- - ` head ` (字符串):源分支名称
175
- - ` base ` (字符串):目标分支名称
176
- - ` body ` (可选字符串):拉取请求内容
177
- - ` milestone_number ` (可选数字):里程碑编号
178
- - ` labels ` (可选数组):标签
179
- - ` issue ` (可选字符串):相关问题,格式:#xxx
180
- - ` assignees ` (可选数组):审阅者
181
- - ` testers ` (可选数组):测试人员
182
- - ` prune_source_branch ` (可选布尔值):合并后是否删除源分支
183
- - 返回:创建的拉取请求详情
169
+ - 在 Gitee 仓库中创建一个新拉取请求
170
+ - 输入:
171
+ - ` owner ` (字符串):仓库所有者(用户名或组织)
172
+ - ` repo ` (字符串):仓库名称
173
+ - ` title ` (字符串):拉取请求标题
174
+ - ` head ` (字符串):源分支名称
175
+ - ` base ` (字符串):目标分支名称
176
+ - ` body ` (可选字符串):拉取请求内容
177
+ - ` milestone_number ` (可选数字):里程碑编号
178
+ - ` labels ` (可选数组):标签
179
+ - ` issue ` (可选字符串):相关问题,格式:#xxx
180
+ - ` assignees ` (可选数组):审阅者
181
+ - ` testers ` (可选数组):测试人员
182
+ - ` prune_source_branch ` (可选布尔值):合并后是否删除源分支
183
+ - 返回:创建的拉取请求详情
184
184
185
185
### 用户操作
186
186
187
187
15 . ` get_user `
188
- - 获取 Gitee 用户的详情
189
- - 输入:
190
- - ` username ` (字符串):用户名
191
- - 返回:用户详情
188
+ - 获取 Gitee 用户的详情
189
+ - 输入:
190
+ - ` username ` (字符串):用户名
191
+ - 返回:用户详情
192
192
193
193
## 安装
194
194
195
+ 1 . 克隆仓库
196
+ 2 . 安装依赖
197
+ 3 . 构建项目
198
+
195
199
``` bash
196
- # 克隆仓库
197
- git clone https://gitee.com/your-username/mcp-server.git
198
- cd mcp-server/src/gitee
200
+ cd src/gitee
199
201
200
202
# 安装依赖
201
203
npm install
@@ -219,38 +221,51 @@ GITEE_PERSONAL_ACCESS_TOKEN=put_your_gitee_personal_access_token_here
219
221
### 运行服务器
220
222
221
223
``` bash
224
+ # 启动服务器
222
225
npm start
223
226
```
224
227
225
- ### 使用 API
228
+ 服务器运行在 stdio 上,这使得它可以作为 MCP 客户端的子进程使用。
226
229
227
- 您可以使用以下 API 来管理您的 Gitee 仓库:
230
+ ### Docker
228
231
229
- * ` GET /repos/{owner}/{repo} ` :获取仓库详情
230
- * ` POST /repos/{owner}/{repo}/issues ` :创建问题
231
- * ` GET /repos/{owner}/{repo}/issues/{issue_number} ` :获取问题详情
232
- * ` PATCH /repos/{owner}/{repo}/issues/{issue_number} ` :更新问题
233
- * ` POST /repos/{owner}/{repo}/pulls ` :创建拉取请求
234
- * ` GET /repos/{owner}/{repo}/pulls/{pull_number} ` :获取拉取请求详情
235
- * ` GET /users/{username} ` :获取用户详情
232
+ 您也可以使用 Docker 运行服务器:
236
233
237
- 更多 API 请参考 [ Gitee API 文档] ( https://gitee.com/api/v5/swagger ) 。
234
+ ``` bash
235
+ # 构建 Docker 镜像
236
+ docker build -t gitee-mcp-server -f Dockerfile .
238
237
239
- ### 例子
238
+ # 运行容器
239
+ docker run -e GITEE_PERSONAL_ACCESS_TOKEN=your_token gitee-mcp-server
240
+ ```
240
241
241
- 以下是一个使用 ` create_issue ` API 创建问题的例子:
242
+ ## 依赖
242
243
243
- ``` bash
244
- curl -X POST \
245
- https://your-mcp-server.com/repos/your-username/your-repo/issues \
246
- -H ' Content-Type: application/json' \
247
- -d ' {"title": "这是一个问题标题", "body": "这是一个问题内容"}'
244
+ - ` @modelcontextprotocol/sdk ` :MCP SDK 用于服务器实现
245
+ - ` universal-user-agent ` :用于生成用户代理字符串
246
+ - ` zod ` :用于模式验证
247
+ - ` zod-to-json-schema ` :用于将 Zod 模式转换为 JSON 模式
248
+
249
+ ## 调试工具
250
+
251
+ 服务器包括一个调试工具函数,可以用于记录调试信息:
252
+
253
+ ``` typescript
254
+ import { debug } from ' ./common/utils.js' ;
255
+
256
+ debug (' 要记录的消息' );
257
+ debug (' 带有数据的消息:' , { key: ' value' });
248
258
```
249
259
250
- 以下是一个使用 ` create_pull_request ` API 创建拉取请求的例子:
260
+ ## 许可
251
261
252
- ``` bash
253
- curl -X POST \
254
- https://your-mcp-server.com/repos/your-username/your-repo/pulls \
255
- -H ' Content-Type: application/json' \
256
- -d ' {"title": "这是一个拉取请求标题", "head": "feature/new-feature", "base": "master"}'
262
+ 本 MCP 服务器以 MIT 许可证授权。这意味着您可以自由使用、修改和分发软件,必须遵守 MIT 许可证的条款和条件。有关更多详细信息,请参阅项目仓库中的 LICENSE 文件。
263
+
264
+ ## 作者
265
+
266
+
267
+ - Gitee (https://gitee.com )
268
+
269
+ ## 链接
270
+
271
+ - [ Model Context Protocol] ( https://modelcontextprotocol.io )
0 commit comments