背景
随着人工智能技术的快速发展,开发者工具也在不断进化。Gitee 作为国内领先的代码托管平台,现已推出 MCP (Model Control Protocol) 功能,让开发者能够通过 AI 助手更高效地管理代码仓库。
mcp-gitee 是 Gitee 的模型上下文协议 (MCP) 服务器实现,它提供了一组与 Gitee API 交互的工具,允许 AI 助手管理仓库、Issue、Pull Request 等。
Gitee开源MCP Server:让AI直接操作代码仓库的“外挂”
虽然 Gitee 官方目前仅提供 Go 语言和各种图形化配置的实现,但这并不妨碍 Java 开发者大展身手
!
本文将以 LangChain4j 为技术基座,为老 Javaer 们呈现一套 MCP 集成方案。通过深度结合 Java 生态优势,我们将从零构建企业级 AI 仓库助手,揭秘如何用 Java 玩转 MCP 协议,让 Spring Boot 应用轻松获得 Gitee 智能管理能力。
MCP 是什么?
MCP (Model Control Protocol) 是一种允许 AI 模型与外部工具和服务进行交互的协议。通过 MCP,AI 助手可以执行各种操作,如创建仓库、提交代码、管理 Issue 和 Pull Request 等,使开发流程更加智能化和自动化。
MCP 的核心优势在于:
-
-
-
• 使 AI 能够执行实际操作,而不仅仅是提供建议
准备工作
下载 Gitee MCP
首先,从
Gitee MCP 发布页
下载对应操作系统的 MCP Gitee Server。
笔者使用 Mac,下载解压后需要分配执行权限:
chmod +x mcp-gitee
构建 MCP Java 客户端
以 PIG AI 为例,根 Maven 项目中添加以下依赖:
dev.langchain4j
langchain4j-mcp
1.0.0-beta2
dev.langchain4j
langchain4j-open-ai-spring-boot-starter
1.0.0-beta2
配置文件
在
application.yml
中添加 AI 模型配置:
langchain4j:
open-ai:
chat-model:
api-key: sk-
base-url: https://api.deepseek.com/v1
model-name: deepseek-chat
log-requests: true
MCP 传输模式
MCP 支持多种传输模式,主要有 stdio 和 SSE 两种模式,下面我们分别介绍。
方式一:MCP stdio 模式
stdio 模式概念
stdio(标准输入输出)模式是 MCP 的一种基本传输方式,它通过标准输入输出流与 MCP 服务器进行通信。在这种模式下:
这种模式的优点是设置简单,无需额外的网络配置;缺点是只能在本地使用,不适合分布式环境。
实现代码
@Autowired
private ChatLanguageModel chatLanguageModel;
@SneakyThrows
@Test
voidcontextLoads() {
// 创建 stdio 传输模式
McpTransporttransport=newStdioMcpTransport.Builder()
.command(List.of("/Users/lengleng/Downloads/mcp-gitee-darwin-arm64/mcp-gitee", "-token", "GITEE-TOKEN"))
.logEvents(true) // 可选:在日志中显示通信内容
.build();
// 创建 MCP 客户端
@CleanupMcpClientmcpClient=newDefaultMcpClient.Builder()
.transport(transport)
.build();
// 创建工具提供者
ToolProvidertoolProvider= McpToolProvider.builder()
.mcpClients(List.of(mcpClient))