模型上下文协议(MCP)允许应用为大型语言模型提供功能和上下文。 MCP 的主要功能是定义 AI 代理用于完成任务的工具。 MCP 服务器可以在本地运行,但远程 MCP 服务器对于在云规模上共享工具至关重要。 本文旨在帮助开发人员了解这些工具以创建创新解决方案。
开发人员可以通过两种主要方式使用 MCP:
使用现有的 MCP 服务器:大多数开发人员使用现有的 MCP 服务器(如 Azure MCP 服务器)将代理功能构建到智能应用中。
探索 OpenAI MCP 代理构造模块 AI 模板,这是一个利用现有 MCP 服务器的示例。 此模板在 .NET 中创建 MCP 代理应用,该应用使用 Azure OpenAI 并连接到使用 TypeScript 编写的远程 MCP 服务器。
下图显示了 OpenAI MCP 代理构建基块的简单体系结构:
开发自己的 MCP 服务器:一些开发人员创建自己的 MCP 服务器,以提供自定义工具、资源和提示以满足特定需求。
探索 MCP 容器应用构建基块 AI 模板,这是开发自己的 MCP 服务器的示例。 此模板使用 Azure 容器应用设置远程模型上下文协议 (MCP) 服务器。
下图显示了 MCP 容器应用构建基块的简单体系结构:
使用现有的 MCP 服务器
大多数开发人员在 MCP 主机和 AI 代理中使用现有的 MCP 客户端,而不是从头开始开发 MCP 服务器。 你的应用程序或 GitHub Copilot 处于代理模式时即为主机。 代理组件是包含 AI 智能的应用程序的一部分,而 MCP 客户端组件负责 MCP 服务器通信。
MCP 如何在应用中集成
-
主机应用程序:整体应用程序(如 VS Code、Web 应用等)
主机应用程序是 MCP 客户端和代理组件运行的环境。 在主机中,两个关键组件进行交互:
代理组件:包含 AI 智能(如 GitHub Copilot 代理模式或使用 Azure AI 代理服务或其他框架生成的自定义代理)的部分。
- 此组件负责处理用户请求并确定它需要哪些外部功能。
- 它可以是单独的模块,也可以集成到主机应用程序中。
- 它可能使用 AI 模型来解释用户输入并生成响应。
- 代理组件负责管理用户和 MCP 客户端组件之间的信息流。
MCP 客户端组件:实现 MCP 协议的部分。
- 此组件负责管理与 MCP 服务器的连接以及处理代理组件与服务器之间的通信。
- 客户端可以是单独的模块,也可以集成到主机应用程序中。
- 客户端组件负责向 MCP 服务器发送请求并接收响应。
开发自己的 MCP 服务器
一些开发人员创建自己的 MCP 服务器,以提供自定义工具、资源和提示以满足特定需求。 这样就可以更灵活地控制提供给 AI 代理的功能。
MCP 服务器如何在应用中集成
-
MCP 服务器:实现模型上下文协议的服务器
- MCP 服务器负责向代理组件提供工具、资源和提示。
- 它可以托管在 Azure 或任何其他云平台上,甚至可以在本地运行。
- 可以根据开发人员的要求和偏好,使用各种编程语言和框架开发服务器。
生成自己的 MCP 服务器有两个主要方案:
您可以建立利用现有 MCP 服务器功能的 MCP 服务器。 在这种情况下,服务器直接调用现有的 MCP 服务器工具命令。
例如,可以生成使用 Azure MCP 服务器中的工具的自定义 Cosmos DB MCP 服务器。 此方案允许你创建新的服务器,该服务器使用现有功能并添加自己的自定义功能。
你构建一个自定义 MCP 服务器,该服务器提供自己的工具、资源和提示,以满足你的特定需求。 此方案允许你为用户创建自定义体验,同时仍在使用 AI。
例如,可以构建一个自定义 MCP 服务器,该服务器提供用于管理内部清单系统的工具。 此服务器可以具有用于搜索、添加和更新清单项的资源的工具,以及提供有关清单系统的信息的资源。