摘要:
在 AI 原生应用蓬勃发展的今天,大模型“外挂”工具、数据与算力已成为刚需。Anthropic 提出的 Model Context Protocol(MCP) 正迅速成为“LLM ↔ 外部世界”的事实标准。本文将基于 LangChain4j 最新实现,手把手带你跑通 HTTP/stdio 两种传输模式,封装自定义 ToolProvider,并用 Docker 一键拉起 GitHub MCP Server,实现“三分钟给大模型装上 GitHub 操作系统的”丝滑体验。附完整 Java 源码与踩坑指南,建议收藏!
1. MCP 是什么?为什么需要它?
| 传统方式 | MCP 方式 |
|---|---|
| 每接入一个工具都要写一套客户端、鉴权、序列化 | 统一协议,一次接入,处处调用 |
| 工具描述五花八门,Prompt 拼装靠硬编码 | 标准化 ToolSpecification,模型自动理解 |
| 资源/日志/提示词无统一管理 | 原生支持 Resource、Prompt、Logging 三大能力 |
一句话:MCP = HTTP + JSON-RPC 语义层 + 工具/资源/提示词描述规范,让大模型和外部系统说同一种语言。
2. LangChain4j 的 MCP 架构速览
核心 3 个接口即可跑通:
-
McpTransport:负责底层通信
StdioMcpTransport:本地子进程(推荐调试)HttpMcpTransport:SSE + HTTP POST(跨机器)
-
McpClient:协议层封装,自动心跳、重连、日志回调。
-
McpToolProvider:把 MCP Server 暴露的工具转成 LangChain4j 的
ToolSpecification,一键注入AiServices。
3. 5 分钟上手:stdio 版“Hello GitHub”
3.1 准备 Docker 镜像
git clone https://github.com/modelcontextprotocol/servers.git
cd servers
docker build -t mcp/github -f src/github/Dockerfile .
镜像仅 173 MB,内置 @modelcontextprotocol/server-github,开箱即用。
3.2 Java 示例代码
public class McpGithubToolsExample {
public static void main(String[] args) throws Exception {
ChatModel model = OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4o-mini")
.build();
// 1. 构造 stdio 传输层(Docker 容器)
McpTransport transport = new StdioMcpTransport.Builder

最低0.47元/天 解锁文章
490

被折叠的 条评论
为什么被折叠?



