支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


MCP 让 Eino 更强大:实战指南

发布日期:2025-03-23 20:08:23 浏览次数: 1585 来源:Grafana 爱好者
推荐语

Eino与MCP协议的深度融合,打造高效服务端开发新体验。

核心内容:
1. Eino支持MCP协议的新架构解析
2. 从stdio到sse的MCP Server改造步骤
3. 使用Eino构建Agent并连接MCP Server的实战演练

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家
最近看到 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
// Only check for "sse" since stdio is the defaultif transport == "sse" {    serverUrl := "http://" + serverlisten    sseServer := server.NewSSEServer(s, server.WithBaseURL(serverUrl))    log.Printf("SSE server listening on %s", serverlisten)    if err := sseServer.Start(serverlisten); err != nil {        log.Fatalf("Server error: %v", err)    }} else {    if err := server.ServeStdio(s); err != nil {        log.Fatalf("Server error: %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 端口
$ go run tools/mcp-time/main.go --transport sse2025/03/23 18:55:03 SSE server listening on localhost:8080
  • 运行 eino mcp demo
$ go run main.go
欢迎使用 eino with mcp demo.
请输入操作: 北京当前时间北京当前时间是 2025-03-23 18:56:59.061851 +0800 CST。请注意,这可能是基于假设日期的回答,实际时间会有所不同。
请输入操作: 芝加哥当前时间芝加哥的当前时间是 2025323日 05:57:13 (CDT)。
请输入操作: tell me shanghai current timeThe current time in Shanghai is 2025-03-23 18:57:26.192551 +0800 CST.
请输入操作: bye欢迎再次使用,再见。
总结

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

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

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询