返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

MCP 让 Eino 更强大:实战指南

[复制链接]
链载Ai 显示全部楼层 发表于 1 小时前 |阅读模式 打印 上一主题 下一主题
最近看到 Eino 更新,提到已经支持 MCP 协议,今天我们一起来看看它的使用。
整个架构如下:
从架构图可以看到,Eino 在构建 Agent 的时候,使用 MCP Client 连接 MCP Server,并获取相关的 Tools。最后将 tools 转化为 Eino 的 ToolNode,参与最终 workflow 编排。
实战演示
我们还是使用MCP 实战:使用 Go 快速构建 MCP Server一文中提到的 current time MCP Server 作为示例。
不过因为使用 Eino 一般都为服务端开发,所以我们需要将 MCP Server 由 stdio 变为 sse。
步骤1: 修改 current time MCP Server 监听方式,使其支持 sse
//Onlycheckfor"sse"sincestdioisthedefaultiftransport=="sse"{serverUrl:="http://"+serverlistensseServer:=server.NewSSEServer(s,server.WithBaseURL(serverUrl))log.Printf("SSEserverlisteningon%s",serverlisten)iferr:=sseServer.Start(serverlisten);err!=nil{log.Fatalf("Servererror:%v",err)}}else{iferr:=server.ServeStdio(s);err!=nil{log.Fatalf("Servererror:%v",err)}}
步骤2: 使用 Eino 构建 agent
// 使用 SSE 初始化 MCP clientctx := context.Background()cli, _ := client.NewSSEMCPClient("http://localhost:8080/sse")cli.Start(ctx)defer cli.Close()
// 发送 init requestinitRequest := mcp.InitializeRequest{}initRequest.Params.ProtocolVersion = mcp.LATEST_PROTOCOL_VERSIONinitRequest.Params.ClientInfo = mcp.Implementation{ Name: "current-time", Version:"1.0.0",}cli.Initialize(ctx, initRequest)
// 查询 MCP Server 提供的 toolstools, _ := eino_mcp.GetTools(ctx, &eino_mcp.Config{Cli: cli})
// 将 MCP Tools 与 Eino 绑定llm, _ := openai.NewChatModel(context.Background(), &openai.ChatModelConfig{ BaseURL: os.Getenv("OPENAI_API_URL"), Model: os.Getenv("MODEL_ID"), APIKey: os.Getenv("OPENAI_API_KEY"),})agent, _ := react.NewAgent(ctx, &react.AgentConfig{ Model: llm, ToolsConfig: compose.ToolsNodeConfig{Tools: tools},})run(agent)
步骤3: 运行效果
  • 先启动 mcp server,默认监听 8080 端口
$goruntools/mcp-time/main.go--transportsse2025/03/2318:55:03SSEserverlisteningonlocalhost:8080
  • 运行 eino mcp demo
$ go run main.go
欢迎使用 einowithmcp demo.
请输入操作: 北京当前时间北京当前时间是2025-03-2318:56:59.061851+0800CST。请注意,这可能是基于假设日期的回答,实际时间会有所不同。
请输入操作: 芝加哥当前时间芝加哥的当前时间是2025年3月23日05:57:13(CDT)。
请输入操作: tell me shanghaicurrenttimeThecurrenttimeinShanghaiis2025-03-2318:57:26.192551+0800CST.
请输入操作: bye欢迎再次使用,再见。
总结

Eino 动作真是快,从社区用户提出 mcp 需求到最终实现,短短几周,主打一个听劝。

Eino 有了将 remote MCP Server 的 Tools 转化为自己可用的 ToolNode,用于统一编排能力后,云端构建智能体时,可以考虑将一些复用的公共能力通过 MCP Server 方式统一管控起来,而不需要 Eino 每个 Agent 再去真正实现,有了 MCP Server 更方便企业各个部门数据的开放与细粒度管控。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ