当前位置: 首页 > news >正文

AI中的MCP是什么?MCP的作用及未来方向预测 (使用go-zero 快速搭建MCP服务器)

AI是当下最热的风。在当今AI技术飞速发展的时代,AI的应用已经渗透到我们日常生活的方方面面。然而,随着AI系统的复杂性不断增加,如何让AI具备更强的自主性和灵活性成为了业界关注的焦点。这就引出了Model Context Protocol(MCP)的概念。

题外话

今天没有开始的事,明天绝不会完成 ——歌德。
真正的高手并非都等准备好了再启程,而是在行进中不断完善装备。

“准时出摊”的力量不在于一时的辉煌,而在于持续累积的复利效应。每一次看似微不足道的坚持,都在暗中重塑我们的能力边界和可能性空间。

我们等待灵感,却不知灵感常常诞生于行动之中;我们追求完美开始,却忘了完美本身就是行动路上的幻象;我们希望风险最小,却不明白最大的风险恰恰是从不冒险。

什么是MCP?

MCP(Model Context Protocol) 是一种为 AI 应用设计的开放协议,它让模型在推理过程中,能主动请求外部数据、调用外部工具,甚至管理长时间的对话上下文。

简单理解,MCP 赋予了模型三大超能力:

• 能力扩展 :模型可以调用各种外部系统,比如搜索引擎、数据库、计算工具。
• 实时交互 :模型能够拿到实时数据,而不是靠旧知识硬答。
• 持续对话 :用户和模型之间保持流畅的、有上下文感知的沟通。
MCP 使用 Server-Sent Events (SSE) 保持持久连接,基于 JSON-RPC 进行标准化通信,让开发者可以非常方便地接入。

一句话总结:MCP 让你的AI应用变得聪明且灵活!

在这里插入图片描述

MCP有什么用?

MCP赋予了AI应用三大超能力:

  1. 能力扩展:通过MCP,AI模型可以调用各种外部系统,如搜索引擎、数据库、计算工具等,大大提升了模型的能力边界。
  2. 实时交互:MCP允许AI模型获取实时数据,而非依赖旧有的知识库,确保了模型的反馈和决策能够基于最新、最准确的信息。
  3. 持续对话:用户与AI之间的沟通不再局限于简单的问答,而是能够通过流畅、上下文感知的对话,进行更深层次的交流和互动。
可以用来做什么?
  • 多智能体协作系统:通过MCP,多个AI智能体可以协同工作,完成复杂任务。
  • 任务规划与执行:AI可以根据上下文信息,自主规划和执行任务,提高任务完成效率。
  • 自主决策能力:增强AI的自主决策能力,使其能够根据不同的场景和数据做出更为合理的判断。
  • 环境感知与适应:MCP让AI能够感知环境变化,并作出相应的适应调整,提升其适应性和智能性。
预测未来有哪些方向?
  • 基于MCP开发高度自主的AI智能体:随着技术的发展,AI将更加自主,能够更好地理解和处理复杂的现实世界问题。
  • 构建基于MCP的开发者工具:开发更便捷的IDE插件、代码生成工具、调试测试工具和文档生成工具,简化开发流程。
  • 面向特定行业的MCP解决方案:根据不同行业的需求,开发定制化的AI解决方案,比如金融风控助手、医疗诊断支持、教育个性化学习和法律智能顾问。
  • 智能数据处理与分析工具:通过MCP,AI能够更好地处理和分析数据,如数据清洗、智能报表生成、数据可视化和异常检测。
  • 智能知识库与文档管理:帮助构建智能知识库,支持知识图谱构建、语义搜索引擎和自动知识更新。
  • 创新的人机交互方式:探索多模态交互、自然语言界面、AR/VR集成和情境感知交互等新型交互方式,提升用户体验。

使用go-zero MCP SDK快速搭建MCP服务

为了帮助开发者更便捷地构建支持MCP协议的AI应用,go-zero团队推出了MCP SDK。go-zero MCP SDK的主要特点包括:

  • 实时通信:基于Server-Sent Events (SSE) 实现低延迟、稳定的连接。
  • 工具系统支持:动态注册外部工具,支持超时和错误处理。
  • 动态提示:支持静态和动态Prompt,参数验证方便快捷。
  • 资源管理:外部资源的注册、访问和变更订阅一条龙服务。
  • JSON-RPC标准规范:按照JSON-RPC标准处理请求和响应,确保兼容性。

下面通过一个简单的例子,展示如何使用go-zero MCP SDK搭建一个智能计算器。

快速上手示例:打造一个智能计算器
  1. 写配置文件 config.yaml

    name: calculator-assistant
    port: 8080
    
  2. 写服务端逻辑 main.go

    package mainimport ("context""fmt""log""github.com/zeromicro/go-zero/core/conf""github.com/zeromicro/go-zero/mcp"
    )func main() {// 加载配置var c mcp.McpConfconf.MustLoad("config.yaml", &c)// 创建 MCP 服务器server := mcp.NewMcpServer(c)defer server.Stop()// 注册计算器工具calculatorTool := mcp.Tool{Name:        "calculator",Description: "执行基础数学运算",InputSchema: mcp.InputSchema{Properties: map[string]any{"operation": map[string]any{"type":        "string","description": "要执行的操作 (add, subtract, multiply, divide)","enum":        []string{"add", "subtract", "multiply", "divide"},},"a": map[string]any{"type":        "number","description": "第一个操作数",},"b": map[string]any{"type":        "number","description": "第二个操作数",},},},Required: []string{"operation", "a", "b"},Handler: func(ctx context.Context, params map[string]any) (any, error) {var req struct {Operation string  `json:"operation"`A         float64 `json:"a"`B         float64 `json:"b"`}if err := mcp.ParseArguments(params, &req); err != nil {return nil, fmt.Errorf("参数解析失败: %v", err)}// 执行操作var result float64switch req.Operation {case "add":result = req.A + req.Bcase "subtract":result = req.A - req.Bcase "multiply":result = req.A * req.Bcase "divide":if req.B == 0 {return nil, fmt.Errorf("除数不能为零")}result = req.A / req.Bdefault:return nil, fmt.Errorf("未知操作: %s", req.Operation)}// 返回格式化结果return map[string]any{"expression": fmt.Sprintf("%g %s %g", req.A, getOperationSymbol(req.Operation), req.B),"result":     result,}, nil},}// 注册工具到服务器if err := server.RegisterTool(calculatorTool); err != nil {log.Fatalf("注册计算器工具失败: %v", err)}fmt.Printf("启动 MCP 服务器,端口: %d\n", c.Port)server.Start()
    }func getOperationSymbol(op string) string {switch op {case "add":return "+"case "subtract":return "-"case "multiply":return "×"case "divide":return "÷"default:return op}
    }
    
  3. 启动MCP服务器
    在终端中运行以下命令:

    go run main.go
    

    如果配置正确,您将看到类似以下的输出:

    启动 MCP 服务器,端口: 8080
    

    此时,MCP 服务器已经成功运行,您可以通过指定的端口与其交互。

  4. 配置MCP(Claude Desktop为例)

    • 首先确保您已安装最新版本的Claude Desktop。
    • 在macOS上,点击菜单栏中的Claude图标,选择"Settings…" -> “Developer” -> “Edit Config”。
    • 编辑配置文件,添加MCP服务器信息:
      {"mcpServers": {"calculator": {"command": "npx","args": ["mcp-remote", "http://localhost:8080/sse"]}}
      }
      
    • 重启Claude Desktop应用后,连接成功,输入框右下角将显示工具图标。
交互流程

在这里插入图片描述

结语

MCP作为一种开放协议,旨在增强AI模型的能力,使其能够更好地服务于现实世界的需求。随着技术的发展,MCP的应用场景将更加广泛,能够帮助开发者构建更加智能、灵活的AI应用。欢迎任何基于MCP的创新想法!

在AI应用越来越复杂、需求越来越高的今天,单纯靠模型本身已经远远不够了。要想让AI真正成为一个有“行动力”的智能体,它必须能够动态调用外部工具、实时访问最新数据,并与用户持续交互。这,就是Model Context Protocol(MCP)想要解决的问题。

相关文章:

  • 如何使用主机名在 CMD 中查找 IP 地址?
  • M0基础篇之DAC
  • 华为行业认证是什么?如何考取华为行业认证?
  • BUUCTF 大流量分析(三) 1
  • HAProxy + Keepalived + Nginx 高可用负载均衡系统
  • [网络层]ICMP协议
  • Java:编程世界的常青树与数字化转型的基石
  • Maven 项目构建时编译错误问题排查与解决
  • IDEA+git将分支合并到主分支、IDEA合并分支
  • OpenCV直方图与直方图均衡化
  • 解决vue create 创建项目,不能使用上下键选择模板的问题
  • 网页禁止粘贴的解决方法(以学习通网页为例)
  • 笔记本电脑升级实战手册【扩展篇1】:flash id查询硬盘颗粒
  • kkfileview文件上传安全漏洞原理分析及解决方案
  • 在Linux中安装JDK并且搭建Java环境
  • 如何禁止chrome自动更新
  • 免布线视频桩如何重塑停车管理模式
  • 基于STM32、HAL库的RN8209C电能计量芯片驱动程序设计
  • Android Studio 中 build、assemble、assembleDebug 和 assembleRelease 构建 aar 的区别
  • 码蹄集——人民币大写数字、全部整除、隐晦余8
  • 和平会谈两天后,俄对乌发动冲突爆发以来最大规模无人机袭击
  • 《习近平新时代中国特色社会主义思想学习论丛》第十一辑至第十五辑出版发行
  • 中国旅马大熊猫“福娃”和“凤仪”启程回国
  • 浙江美术馆馆长人民日报撰文:打开更辽阔的审美场域
  • 全国游泳冠军赛:孙杨、潘展乐同进400自决赛,今晚将正面对决
  • 一个留美学生的思想转向——裘毓麐的《游美闻见录》及其他