如果你在做 AI 相关的学习和技术开发,你不了解什么是Model Context Protocol (MCP),就显得有点没入门的赶脚。
今天我针对什么是Model Context Protocol (MCP),展开我自己的学习之旅,过程中肯定还是需要用到 Golang 语言的。
什么是Model Context Protocol (MCP)?
a new standard for connecting AI assistants to the systems where data lives, including content repositories, business tools, and development environments. Its aim is to help frontier models produce better, more relevant responses.
这是作者 Anthropic 在 24 年 11 月 25 日发表的博客时阐述的。只要是协议,它的目标就是为了让大家都遵循它去更好才协同开发,减小不必要的浪费代码垃圾,让大家都按这个协议定义来写代码,就像所有人拿 USB-C 来类比似的,现在主流的设备因此能够通过相同的接口连接一样。
举个例子,作为一名全栈工程师,我们需要和很多数据打交道,比如整理一份近半年的销售订单数据形成报表。在没有 MCP 之前,我们可能会借助 AI 查询【MySQL 查询语句怎么写】,但有了 MCP,AI 就不是一个单纯的 Chat 机器(一问一答),我们完全就可以直接给 AI 一个 Prompt:制作近半年的订单报表。AI 直接执行 MySQL 查询,把数据拉出来,再结合我们的需要进行分析,最终形成一个数据报表。
这让 AI 从一个 Chat 的知识建议者,变成一个真正的【执行者】,也是让 AI Agent 有了现实意义和价值。
MCP 是如何运作的
以下是调整后的简体中文版本,对表述进行了优化和口语化处理:
MCP 协议架构的核心组成:
- MCP 管理中心(Host)
相当于系统的指挥中枢,负责协调客户端与服务端的通信链路。例如 Claude Desktop 这类应用就扮演了管理中心的角色,能够授权客户端通过 MCP 协议安全调用用户本地的数据库和工具。
- MCP 客户端(Client)
承担人工智能系统与服务端的中转枢纽功能,主要负责双向信息传递:将 AI 生成的操作指令发送至服务端,同时接收服务端返回的执行结果与数据反馈。
- MCP 服务端(Server)
作为本地资源调度器,负责解析数据操作指令(如增删改查等动作),并向客户端开放可调用指令集。这些标准化指令使 AI 具备读写数据库、操作本地文件、甚至与网页服务交互的能力。
- 数据资源层
- 本地资源:部署在用户设备中的数据库、文档、应用程序等
- 云端服务:基于网络的外部服务接口,例如谷歌网盘、OneDrive 等云端存储平台
大致流程是这样的:
你的问题 —> Claude Desktop (Host)—> Claude 模型—> 需要文件信息 —> MCP Client 连接 —> 文件系统 MCP Server —> 执行操作 —> 执行操作 —> 返回结果 —> Claude 生成回答 —> 显示在 Claude Desktop 上。
这样使得 Claude 可以在不同场景下灵活调用各种工具和数据源,而我们作为开发人员只需要专注开发实际使用的 MCP Server,再结合 MCP 的 Host 和 Client,整体构成一个真正意义上的 AI Agent。
下一章节,我们使用 mcp-go 和 VSCode 构建一个简易的 AI Agent。
最后修改于 2025-03-21