0 前言
LangChain4j 支持模型上下文协议(MCP),用于与符合 MCP 标准的服务器通信,从而调用并执行工具。
该协议支持两种通信方式,LangChain4j 均已支持:
- HTTP 模式:客户端通过 SSE 通道接收服务端事件,并通过 HTTP POST 请求发指令
- stdio 模式:客户端可将 MCP 服务器作为本地子进程运行,并通过标准输入/输出与其通信
想让聊天模型或 AI 服务使用 MCP 服务器提供的工具,先得创建一个 MCP 工具提供者实例。
1 创建 MCP 工具提供者(MCP tool provider)
1.1 MCP通信方式
先要构建一个 MCP 通信方式的实例。
① stdio
以本地启动 NPM 包为例:
McpTransport transport = new StdioMcpTransport.Builder()
.command(List.of("/usr/bin/npm", "exec", "@modelcontextprotocol/server-everything@0.6.2"))
.logEvents(true) // 开启日志记录(可选)
.build();
② HTTP
需要两个 URL:
- 一个用于启动 SSE channel
- 另一个用于通过 POST 提交命令:
McpTransport transport = new HttpMcpTransport.Builder()
.sseUrl("http://localhost:3001/sse") // SSE 事件channel地址
.logRequests(true) // 开启请求日志
.logResponses(true) // 开启响应日志
.build();
1.2 创建 MCP 客户端
代表可以通过给定的传输协议,使用服务器检索和执行工具的客户端,该客户端可以与MCP服务器通信。
使用 transport 实例创建 MCP 客户端:
McpClient mcpClient = new DefaultMcpClient.Builder()
.transport(transport)
.build();
1.3 创建 MCP 工具提供者
工具提供者。每次调用AI服务并为该特定调用提供工具时,都会调用它。 toolproviderresult中返回的工具将包含在对LLM的请求中。
使用 MCP 客户端创建工具提供者:
ToolProvider toolProvider = McpToolProvider.builder()
.mcpClients(List.of(mcpClient))
.build();
一个 MCP

最低0.47元/天 解锁文章
1469

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



