有关模型上下文协议 (MCP) 和与 AI 集成以用于代理应用程序的常见问题
快速阅读: 《安保大道》消息,本文解答了关于模型上下文协议(MCP)的常见问题,探讨其标准化外部数据连接的优势与安全挑战。尽管MCP提升了LLMs与外部数据交互的能力,但其安全风险如恶意服务器注入需引起重视。腾讯安全团队正积极研究MCP的安全性。
由于模型上下文协议(MCP)标准化了将外部数据源连接到大型语言模型(LLMs)的方式,其出现引发了广泛关注。尽管这些更新对AI开发人员来说是利好消息,但也引发了一些安全问题。在这篇博客中,我们将解答关于MCP的一些常见问题。
背景
腾盛研究团队撰写了这篇博客,以解答关于模型上下文协议(MCP)的常见疑问。
常见问题解答
**什么是模型上下文协议(MCP)?**
模型上下文协议(MCP)是由Anthropic创建的一项开源标准,提供了一种通用的方法来将外部数据和操作连接到大型语言模型(LLMs)。它提供了允许LLM检测其可用资源以及理解何时及为何使用这些资源来回答或增强其正在处理的任务的方法。
**AI可以访问的外部数据示例包括**本地文件系统、数据库、API、SaaS应用程序等。
在某种意义上,MCP允许LLM对外部训练数据之外的数据或操作提出明确的请求,以协助回答问题。
**MCP为何如此受关注?**
MCP因其标准化了将外部数据源连接到LLMs而备受关注。现在,开发者可以为LLM编写一次集成,并在各种工具和利用MCP的LLMs中使用。有“应用商店”和“市场”可供快速集成到您的环境中。“服务”可以帮助您创建专门的自定义MCP服务器。
**LLMs是否第一次能够与外部数据和来源交互?**
具有自主行动能力的Agentic AI可以采取行动并与外部来源互动,但实现方式对于每个工具来说各不相同。像LangFlow这样的解决方案通过标准化一些工具并能够在其特定框架内与多个LLMs交互有所帮助。然而,MCP规范将这种标准化提升到了一个新的高度,即可以在多个解决方案中创建和使用集成。
**如何开始使用MCP?**
MCP需要一个主机应用程序,通常称为客户端和服务器。主机应用程序协调LLM与与MCP服务器通信的接口之间的通信。
基础示例是使用Claude Desktop添加文件系统MCP服务器,如Claude Desktop用户快速入门指南中所述。此示例展示了将文件系统服务器添加到Claude Desktop以向Claude.ai提供本地文件系统信息所需的内容。虽然Claude Desktop是MCP服务器的测试平台,但还有许多其他客户端可以改善用户体验。
MCP客户端和服务器的在线目录正在变得可用,例如MCP客户端 | Glama和开源MCP服务器 | Glama。
**MCP是如何工作的?**
MCP使用客户端-服务器架构,使LLMs能够与外部数据交互。这通过三个主要组件实现;主机、客户端和服务器。
主机应用程序用于管理LLMs与多个MCP客户端之间的交互。许多流行的MCP主机包括Claude Desktop、Claude Code、Cursor、Windsurf以及Cline和Continue等编辑器集成。
MCP使用客户端-服务器架构,使LLMs能够与外部数据交互。这通过三个主要组件实现;主机、客户端和服务器。
客户端是在主机应用程序中运行的界面,允许LLM通过与服务器保持一对一的连接来与其交互。
MCP使用客户端-服务器架构,使LLMs能够与外部数据交互。这通过三个主要组件实现;主机、客户端和服务器。
服务器是一个小型应用程序,使用MCP协议与客户端通信,并提供标准化的过程以列出各种功能并响应相关数据或操作的请求。
MCP使用客户端-服务器架构,使LLMs能够与外部数据交互。这通过三个主要组件实现;主机、客户端和服务器。
来源:腾盛,2025年4月
虽然这些组件被讨论为独立的组件,但它们可以是单个应用程序的一部分或多个独立的应用程序。在发布本FAQ时最常见的配置是将客户端集成到主机应用程序中,并通过JSON-RPC使用安全传输与服务器进行通信。
**MCP服务器提供了哪些类型的功能?**
MCP服务器为客户端提供不同的功能,以支持数据检索以及对数据采取的操作。以下功能可用:
MCP服务器提供了哪些类型的功能?
资源是可以供LLM跟踪的数据存储。这些可以包括文件、数据库模式信息和控制台日志。资源在聊天启动时加载,并应避免重复请求静态数据。
工具执行操作。示例包括从文件中检索内容、将数据插入数据库、回复电子邮件等。
提示允许服务器向客户端提供有用且可重用的提示。许多应用程序主机实现方法允许使用“快速列表”概念列出提示,例如按下“/”键以显示可用提示列表。提示也可以作为模板使用,可以动态填充用户输入。
目前,“工具”是MCP提供的最具影响力的功能,也是媒体关注的重点。
**使用MCP服务器安全吗?**
MCP严重依赖信任。
信任主机应用程序控制客户端访问的信任
信任客户端使用安全传输与服务器通信的信任
信任主机应用程序控制客户端访问的信任
信任服务器在访问资源时实施了安全实践的信任
信任主机应用程序控制客户端访问的信任
用户应从可信来源获取MCP服务器。但是,始终要记住“信任但验证”,不要在您的环境中安装未知软件。
**MCP主机如何实现安全性?**
主机应用程序应实现允许应用程序用户在使用工具之前批准工具的控制。许多主流应用程序已经具备验证工具使用是否可接受的方法。例如,在首次尝试调用工具时,Claude Desktop会提供“仅使用一次”或“在整个聊天会话中使用”的选择。其他应用程序,如Cline,可能有“自动批准”不同工具或应用程序的方法。这些验证对话框向用户提供信息的详细程度可能会有所不同。
**有哪些运输安全控制可用?**
有两种主要的传输方法;STDIO和服务器发送事件(SSE)。
当客户端和服务器在同一台计算机上时,STDIO是首选的传输方法。STDIO直接将客户端的输出发送到服务器的输入,服务器的输出发送到客户端。只有在本地系统受到攻击时,传输才可能受到攻击。
有两种主要的传输方法;STDIO和服务器发送事件(SSE)。
当客户端和服务器不在同一台计算机上时,则使用SSE通过HTTP连接传输JSON消息。这允许通信使用标准的HTTP安全选项,例如SSL传输和OAuth认证。
**好的,那么使用MCP的最大风险是什么?**
使用MCP的最大风险是恶意服务器的注入。由于所有注册的服务器在主机应用程序和LLM中都有单一的参考点,恶意服务器可能会毒害LLM或滥用其他合法服务器的工具。随着MCP生态系统的成熟,我们预计会看到像MCP安全认证、服务器完整性监控和日志标准化等概念的正式化。我们将开始看到MCP“应用商店”,其中可以从中央存储库轻松将集合的MCP服务器拉入现有工具。
**好的,那么使用MCP的最大风险是什么?**
MCP规范强烈推荐远程服务器的身份验证和授权,但这不是必需的。然而,MCP服务器的开发者可能不会考虑MCP服务器的网络安全,也不会实施这些建议。
任何可以远程访问的MCP服务器都可能容易受到中间人攻击或远程攻击。确保任何使用基于网络传输的MCP服务器已实施了强大的身份验证和授权。
**我在使用MCP时可以做些什么来保护我的信息?**
随着保护MCP解决方案的技术解决方案和能力的发展,当前的建议是使用坚实的信息安全最佳实践。您可以做的最重要的事情包括以下几点:
检测和盘点您环境中的MCP安装和配置。
由于MCP处于早期采用阶段,这不像监控集中式服务器那样简单,而是更可能需要仔细检查终端设备的配置文件。了解和批准MCP的使用是维护环境完整性的关键。
检测和盘点您环境中的MCP安装和配置。
控制MCP服务器访问并监控MCP服务器访问的资源。
检测和盘点您环境中的MCP安装和配置。
无论资源是位于终端设备本地还是SaaS应用程序中,通过日志记录和审计监控这些资源的访问都是必需的。
培训在工作中使用MCP的人。
确保他们在授权使用工具之前了解该工具的影响。MCP规范的核心主题是用户必须在使用前同意并授权操作,培训将提供做出该决定所需的理解。
**腾盛是否在研究MCP实现的安全性和安全问题?**
是的,腾盛研究团队正在积极研究MCP,并将在未来的腾盛博客文章中分享更多我们的发现。
获取更多信息
这是Security Bloggers Network发布的博客文章,由腾盛Blog撰写,作者为查德·斯特雷克。
阅读原始帖子:
https://www.tenable.com/blog/faq-about-model-context-protocol-mcp-and-integrating-ai-for-agentic-applications
(以上内容均由Ai生成)