当前位置: 首页 > 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)想要解决的问题。

http://www.xdnf.cn/news/405163.html

相关文章:

  • 2025年北京市积分落户申报
  • 经典案例 | 智能眼镜中瞳距调节和近视调节的应用
  • web 自动化之 Unittest 四大组件
  • 【NextPilot日志移植】ULog
  • 文档外发安全:企业数据防护的最后一道防线
  • RabbitMQ 工作模式
  • JWT的介绍与在Fastapi框架中的应用
  • 单片机-STM32部分:13-1、蜂鸣器
  • 常用依赖文件库
  • kubernetes服务自动伸缩-VPA
  • ESP32开发入门(九):HTTP服务器开发实践
  • Day22打卡-复习
  • 【K8S学习之探针】详细了解就绪探针 readinessProbe 和存活探针 livenessProbe 的配置
  • Kotlin 异步初始化值
  • JVM类加载
  • 生产环境怎么移除console
  • WebSocket集成方案对比
  • 中华春节符号全球推广委员会——“金文形意书《易经》成果展”研学之旅
  • 【Spark】使用Spark集群搭建Yarn模式
  • Docker-配置私有仓库(Harbor)
  • mapreduce-wordcount程序2
  • PostgreSQL 中的序列(Sequence)
  • 力扣HOT100之二叉树:226. 翻转二叉树
  • WSL-Ubuntu 中安装 Git LFS 记录
  • 网络编程epoll和udp
  • 华为防火墙配置与网络协议实战指南:从基础到高阶排查
  • 破局智算瓶颈:400G光模块如何重构AI时代的网络神经脉络
  • 大模型的实践应用41-天气预测与分析决策系统:Qwen3(32B)+langchain框架+MCP(大模型上下文协议)+RAG+传统算法
  • RabbitMQ高并发秒杀、抢购系统、预约系统底层实现逻辑
  • ArcGIS+InVEST+RUSLE:水土流失模拟与流域管理的高效解决方案;水土保持专题地图制作