专栏名称: 架构师
架构师云集,三高架构(高可用、高性能、高稳定)、大数据、机器学习、Java架构、系统架构、大规模分布式架构、人工智能等的架构讨论交流,以及结合互联网技术的架构调整,大规模架构实战分享。欢迎有想法、乐于分享的架构师交流学习。
目录
相关文章推荐
51好读  ›  专栏  ›  架构师

玩转 MCP:手把手教你打造 Git AI 仓库助手

架构师  · 公众号  ·  · 2025-03-20 22:41

正文

架构师(JiaGouX)
我们都是架构师!
架构未来,你来不来?





一、背景


随着人工智能技术的快速发展,开发工具也在不断进化。Gitee作为国内领先的代码托管平台,推出了MCP(Model Context Protocol,模型上下文协议)功能,帮助开发者利用AI助手高效管理代码仓库。Gitee的MCP Server使AI能够直接访问代码仓库,进行Issue管理、Pull Request审查及代码操作等任务。这标志着AI不再只是代码的旁观者,而是成为了软件开发过程中的智能参与者。


二、什么是 MCP?

MCP是一种允许AI模型与外部工具和服务直接交互的标准协议。通过MCP,AI模型不仅能读取仓库内容、查看提交历史,还可以创建仓库、提交代码以及管理Issue和Pull Request,实现真正的自动化操作。

MCP协议主要优势包括:

  • 提供与外部系统交互的标准接口;

  • 支持多种传输模式,适应不同使用场景;

  • 使AI能够执行实际操作,而不仅仅是提供建议。


三、Java生态下的MCP实现

虽然Gitee官方提供的是基于Go语言的实现,但Java开发者完全可以通过LangChain4j实现MCP集成。

LangChain4j简介

LangChain4j是Java生态中集成AI服务的优秀工具,能够轻松对接各类大型语言模型(LLM),并实现与MCP协议服务器的对接。

MCP Java客户端构建

在Java Maven项目中引入LangChain4j相关依赖:

<dependency>
<groupId>dev.langchain4jgroupId>
<artifactId>langchain4j-mcpartifactId>
<version>1.0.0-beta2version>
dependency>
<dependency>
<groupId>dev.langchain4jgroupId>
<artifactId>langchain4j-open-ai-spring-boot-starterartifactId>
<version>1.0.0-beta2version>
dependency>

配置AI模型

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两种传输模式,各适用于不同的开发场景。

(一)stdio传输模式

stdio模式通过本地标准输入输出流进行通信,适用于本地开发和测试。

实现代码示例:

@Autowired
private ChatLanguageModel chatLanguageModel;

@SneakyThrows
@Test
void contextLoads() {
McpTransport transport = new StdioMcpTransport.Builder()
.command(List.of("/path/to/mcp-gitee", "-token", "GITEE-TOKEN"))
.logEvents(true)
.build();

@Cleanup McpClient mcpClient = new DefaultMcpClient.Builder()
.transport(transport)
.build();

ToolProvider toolProvider = McpToolProvider.builder()
.mcpClients(List.of(mcpClient))
.build();

GiteeAiService giteeAiService = AiServices.builder(GiteeAiService.class)
.chatLanguageModel(chatLanguageModel)
.toolProvider(toolProvider)
.build();

String result = giteeAiService.chat("获取 log4j/pig 开启的 issue 列表");
log.info("gitee mcp result: {}", result);
}

(二)SSE传输模式

SSE模式通过HTTP连接,服务器主动推送事件,适用于分布式、多客户端环境。

服务器启动命令:

mcp-gitee -transport sse -token GITEE-TOKEN

客户端实现代码示例:

@Autowired
private ChatLanguageModel chatLanguageModel;

@SneakyThrows
@Test
void contextLoads() {
McpTransport sseTransport = new HttpMcpTransport.Builder()
.sseUrl("http://localhost:8000/sse")
.logRequests(true)
.logResponses(true)
.build();

@Cleanup McpClient mcpClient = new DefaultMcpClient.Builder()
.transport(sseTransport)
.build();

ToolProvider toolProvider = McpToolProvider.builder()
.mcpClients(List.of(mcpClient))
.build();

GiteeAiService giteeAiService = AiServices.






请到「今天看啥」查看全文