打通大模型与外部世界的桥梁:LangChain4j 实战 Model Context Protocol(MCP)

摘要
在 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 个接口即可跑通:

  1. McpTransport:负责底层通信

    • StdioMcpTransport:本地子进程(推荐调试)
    • HttpMcpTransport:SSE + HTTP POST(跨机器)
  2. McpClient:协议层封装,自动心跳、重连、日志回调。

  3. 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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值