幽默是智慧的体现 發表於 2025-3-10 18:19:00

MCP 实现AI智能体与外部数据及工具的结合

<p>MCP(Model Context Protocol)是一种新的开放协议,目的是为 LLM 提供标准化的上下文信息传递方式,从而实现 AI 智能体与外部数据及工具的结合。从 Manus 及其开源复现,到 Opera 的浏览器操作 AI 智能体、AI 工作伴侣 Archer,再到多种个人项目,一夜捧红了 MCP,工具调用/访问外部数据,一个协议就够了。上一周,智能体迎来里程碑式的一周。</p>
<h2>什么是 MCP</h2>
<p>去年 11 月,Anthropic 首次提出「模型上下文协议Model Context Protocol」,即 MCP,赋予了 Claude 模型超级能力,一次构建,让 AI 与工作流深度集成。简单理解,<strong>MCP 就像是专为 AI 应用设计的通用接口</strong>,类似我们日常使用的 USB-C。正如 USB-C 简化了不同设备与计算机的连接方式,<strong>MCP 简化了 AI 模型与数据、工具和服务之间的交互方式。</strong></p>
<p>  通过 MCP,AI 助手不仅能够「读懂」代码,还能「理解」团队讨论、涉及文档等外部信息,提供更加精准的回答。</p>
<p>  MCP 是一种标准化协议,用于连接 AI 智能体与各种外部工具和数据源</p>
<p>  相比之下,在没有 MCP 之前,AI 助手要想与外部工具互动,必须通过编写代码并调用 API,这意味着每一种具体的连接都需要提前手动编程,效率低下且耗时费力。</p>
<p>和传统的 API 相比,MCP 的区别在于:</p>
<ul>
<li>
<p><strong>单一协议:</strong>MCP 作为一种标准化的「通用接口」,集成一个 MCP 意味着可以访问多个工具和服务,而不仅仅是单一服务。</p>
</li>
<li>
<p><strong>动态发现:</strong>MCP 允许 AI 模型动态发现并与可用工具交互,无需预先设定每个集成的固定代码。</p>
</li>
<li>
<p><strong>双向通信:</strong>MCP 支持持续、实时的双向通信——类似于 WebSockets。AI 模型既可以获取信息,也可以实时触发操作。</p>
</li>
</ul>
<p>  其中,实时双向通信的机制如下:</p>
<ul>
<li>
<p><strong>拉取数据:</strong>LLM 向服务器查询上下文信息。例如,查看你的日历安排。</p>
</li>
<li>
<p><strong>触发操作:</strong>LLM 指示服务器执行具体操作。例如,重新安排会议、发送电子邮件。</p>
</li>
</ul>
<p>&nbsp;</p>
<p>不过,如果应用场景需要精确、可预测的交互模式,并有严格的限制条件,传统 API 可能更为适合。</p>
<p>  MCP 提供了广泛、动态的能力,非常适合需要灵活性和上下文感知的场景,但对于高度受控的、确定性的应用可能不是最佳选择。在以下情况下推荐使用传统 API:</p>
<ul>
<li>
<p>需要精细控制和高度特定、受限的功能场景</p>
</li>
<li>
<p>追求性能优化而需要紧密耦合的系统</p>
</li>
<li>
<p>要求最高可预测性和最小上下文自主性的应用</p>
</li>
</ul>
<p>  <strong>架构:MCP 采用简单的客户端-服务器架构模式</strong></p>
<ul>
<li>
<p><strong>MCP 主机:</strong>需要访问外部数据或工具的应用程序(如 Claude Desktop 或 AI 驱动的集成开发环境)</p>
</li>
<li>
<p><strong>MCP 客户端:</strong>与 MCP 服务器维持专属的一对一连接</p>
</li>
<li>
<p><strong>MCP 服务器:</strong>轻量级服务器,通过 MCP 协议提供特定功能,连接到本地或远程数据源</p>
</li>
<li>
<p><strong>本地数据源:</strong>MCP 服务器安全访问的文件、数据库或服务</p>
</li>
<li>
<p><strong>远程服务:</strong>MCP 服务器访问的基于互联网的外部 API 或服务</p>
</li>
</ul>
<p>  将 MCP 比作一座桥梁可以更清晰地理解:MCP 本身不处理复杂逻辑;它只是协调 AI 模型和各种工具之间的数据和指令流通。</p>
<h2>MCP应用场景</h2>
<p>  在实际应用中,MCP 客户端(例如,client.py 中的 Python 脚本)会与管理各种特定工具(如 Gmail、Slack 或日历应用)交互的 MCP 服务器进行通信。</p>
<p>  这种标准化大大降低了复杂度,使开发人员能够快速实现复杂的交互功能。</p>
<p>  <strong>1. 行程规划助手</strong></p>
<ul>
<li>
<p>使用传统 API 需要为 Google 日历、电子邮件、航空公司预订 API 分别编写代码,每个都需要单独的认证、上下文传递和错误处理逻辑。</p>
</li>
<li>
<p>使用 MCP 则容易得多,AI 助手能够无缝地检查日历可用时间,预订航班,并发送确认邮件——所有这些都通过 MCP 服务器完成,无需为每个工具单独开发集成代码。</p>
</li>
</ul>
<p>  <strong>2. 高级 IDE(智能代码编辑器)</strong></p>
<ul>
<li>
<p>使用传统 API 需要手动将开发环境与文件系统、版本控制、包管理器和文档系统集成在一起。</p>
</li>
<li>
<p>而使用 MCP,开发环境将通过单一 MCP 协议连接这些服务,实现更丰富的上下文感知能力和更智能的代码建议</p>
</li>
</ul>
<p>  <strong>3. 复杂数据分析</strong></p>
<ul>
<li>
<p>使用传统 API 需要手动管理与各个数据库和数据可视化工具的连接。&nbsp;</p>
</li>
<li>
<p>使用 MCP AI 分析平台能够通过统一的 MCP 层自动发现并与多个数据库、可视化工具和模拟系统进行交互。</p>
</li>
</ul>
<p>  <strong>快速入门 MCP 集成流程:</strong></p>
<ul>
<li>
<p><strong>定义功能:</strong>明确规划 MCP 服务器将提供哪些功能</p>
</li>
<li>
<p><strong>实现 MCP 层:</strong>遵循标准化的 MCP 协议规范进行开发</p>
</li>
<li>
<p><strong>选择传输方式</strong><strong>:</strong>在本地传输(stdio)或远程传输(服务器发送事件/WebSockets)之间选择</p>
</li>
<li>
<p><strong>创建资源/工具:</strong>开发或连接 MCP 将要交互的特定数据源和服务</p>
</li>
<li>
<p><strong>设置客户端:</strong>在 MCP 服务器和客户端之间建立安全稳定的连接通道</p>
</li>
</ul>
<h2>如何使用MCP</h2>
<p>Total TypeScript 的作者 Matt Pocock 仅用 28 行代码就开发出了一个 MCP 服务器。</p>
<p><img src="https://img2024.cnblogs.com/blog/567218/202503/567218-20250310181507552-938435323.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>Cursor+MCP 梦幻联动,即可迅速构建出客户需求的功能,全程无需人类干预。</p>
<p>  对于码农来说,又是效率的一次极致提升。AI 不仅能帮你写代码,还能自动完成从需求分析到功能上线的全流程。</p>
<p>  客户通过 Slack 发送功能需求,Cursor 自动读取消息、构建功能,并创建 Pull Request</p>
<p>  前 Meta 研究员、CopilotKit 创始人 Atai Barkai 刚刚开源了一个 Open MCP Client 的项目。</p>
<p>它可以让任何应用,直接与 MCP 服务器直接对话,实现更更多智能的功能。</p>
<p>  只需从 Composio 中获取一个 URL,开发者即可在自己的应用中集成这个 MCP 的能力,无需从 0 开发。</p>
<p>项目地址:https://open-mcp-client.vercel.app/</p>
<p>  Agno 的开发者 Ashpreet Bedi 打造了一款「通用 MCP 智能体」UAgl,可以借此轻松连接和管理多个 MCP 服务器。</p>
<p>开发者 Will Brown 开源了 MCP Test Client,可以在开发过程中测试 MCP 服务器时既充当服务器(对 Claude 而言),又充当客户端(对被测试的服务器而言)。</p>
<p>更多MCP服务器可以访问https://mcp.so</p>
<p>参考资料https://news.cnblogs.com/n/786796/</p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <hr>
<!--<img src="https://img2023.cnblogs.com/blog/567218/202306/567218-20230609164902212-848609210.jpg" width="100" alt="wechat" loading="lazy">
<br>加微信交流-->
<img src="https://img2024.cnblogs.com/blog/567218/202512/567218-20251218110559373-1044040304.png" alt="image" loading="lazy" /><br><br>
来源:https://www.cnblogs.com/ytkah/p/18763320/mcp
頁: [1]
查看完整版本: MCP 实现AI智能体与外部数据及工具的结合