引言
随着人工智能技术的快速发展,开发者工具也在不断进化。Gitee 作为国内领先的代码托管平台,现已推出 MCP (Model Control Protocol) 功能,让开发者能够通过 AI 助手更高效地管理代码仓库。mcp-gitee 是 Gitee 的模型上下文协议 (MCP) 服务器实现,它提供了一组与 Gitee API 交互的工具,允许 AI 助手管理仓库、Issue、Pull Request 等。
MCP 是什么?
MCP (Model Control Protocol) 是一种允许 AI 模型与外部工具和服务进行交互的协议。通过 MCP,AI 助手可以执行各种操作,如创建仓库、提交代码、管理 Issue 和 Pull Request 等,使开发流程更加智能化和自动化。 MCP 的核心优势在于:- 为 AI 模型提供了与外部系统交互的标准接口
- 支持多种传输模式,适应不同的使用场景
- 使 AI 能够执行实际操作,而不仅仅是提供建议
准备工作
下载 Gitee MCP
首先,从 Gitee MCP 发布页 下载对应操作系统的 MCP Gitee Server。 笔者使用 Mac,下载解压后需要分配执行权限:构建 MCP Java 客户端
在 Maven 项目中添加以下依赖:配置文件
在application.yml
中添加 AI 模型配置:
MCP 传输模式
MCP 支持多种传输模式,主要有 stdio 和 SSE 两种模式,下面我们分别介绍。方式一:MCP stdio 模式
stdio 模式概念
stdio(标准输入输出)模式是 MCP 的一种基本传输方式,它通过标准输入输出流与 MCP 服务器进行通信。在这种模式下:- MCP 客户端通过子进程启动 MCP 服务器
- 通过标准输入(stdin)向服务器发送请求
- 通过标准输出(stdout)接收服务器的响应
- 适合在本地开发环境中使用,无需额外的网络配置
实现代码
方式二:MCP Server SSE 模式
SSE 模式概念
SSE(Server-Sent Events)模式是一种基于 HTTP 的单向通信机制,允许服务器向客户端推送数据。在 MCP 中使用 SSE 模式:- MCP 服务器以独立进程运行,监听 HTTP 请求
- 客户端通过 HTTP 连接到服务器
- 服务器可以持续向客户端推送事件和数据
- 适合在分布式环境中使用,支持多客户端连接
实现步骤
首先,以 SSE 模式启动 Gitee MCP 服务器:输出结果示例
无论使用哪种传输模式,成功执行后都会得到类似的结果:两种模式的对比
特性 | stdio 模式 | SSE 模式 |
---|---|---|
部署方式 | 本地子进程 | 独立服务器 |
适用场景 | 本地开发 | 分布式环境 |
配置复杂度 | 简单 | 相对复杂 |
多客户端支持 | 不支持 | 支持 |
网络要求 | 无 | 需要网络连接 |
总结
通过 Java 与 MCP 的结合,我们可以创建一个功能强大的 Gitee 仓库助手,实现代码管理的智能化和自动化。这不仅提高了开发效率,还减少了重复性工作,让开发者能够专注于更有创造性的任务。 MCP 提供的 stdio 和 SSE 两种传输模式满足了不同场景的需求:- stdio 模式适合本地开发和测试
- SSE 模式适合分布式环境和多客户端访问