实际实施

实际实施是模型上下文协议 (MCP) 强大功能的真正体现。理解 MCP 背后的理论和架构固然重要,但真正的价值在于将这些概念应用于构建、测试和部署解决实际问题的解决方案。本章将概念知识与实践开发相结合,指导您完成基于 MCP 的应用程序的开发过程。

无论您是开发智能助手、将 AI 集成到业务工作流,还是构建自定义数据处理工具,MCP 都能为您提供灵活的基础。其语言无关的设计和针对热门编程语言的官方 SDK,让广大开发者都能轻松上手。利用这些 SDK,您可以快速构建原型、迭代,并跨平台和环境扩展您的解决方案。

在以下部分中,你将找到实际示例、示例代码和部署策略,它们演示了如何使用 C#、Java、TypeScript、JavaScript 和 Python 实现 MCP。你还将学习如何使用 Azure 调试和测试 MCP 服务器、管理 API 以及将解决方案部署到云。这些实践资源旨在加速你的学习,并帮助你自信地构建可靠、可立即投入生产的 MCP 应用程序。

概述

本课程重点介绍跨多种编程语言实现 MCP 的实践。我们将探索如何使用 C#、Java、TypeScript、JavaScript 和 Python 中的 MCP SDK 构建强大的应用程序、调试和测试 MCP 服务器,以及创建可复用的资源、提示符和工具。

学习目标

学完本课后,您将能够:

  • 使用各种编程语言的官方 SDK 实现 MCP 解决方案
  • 系统地调试和测试MCP服务器
  • 创建和使用服务器功能(资源、提示和工具)
  • 为复杂任务设计有效的 MCP 工作流程
  • 优化 MCP 实现以提高性能和可靠性

官方 SDK 资源

模型上下文协议为多种语言提供了官方 SDK:

使用 MCP SDK

本节提供跨多种编程语言实现 MCP 的实例。您可以在samples按语言组织的目录中找到示例代码。

可用样品

该存储库包含以下语言的示例实现:

每个示例都演示了特定语言和生态系统的关键 MCP 概念和实现模式。

核心服务器功能

MCP 服务器可以实现以下功能的任意组合:

资源

资源为用户或 AI 模型提供上下文和数据:

  • 文档存储库
  • 知识库
  • 结构化数据源
  • 文件系统

提示

提示是针对用户的模板化消息和工作流程:

  • 预定义对话模板
  • 引导式交互模式
  • 专业对话结构

工具

工具是AI模型执行的功能:

  • 数据处理实用程序
  • 外部 API 集成
  • 计算能力
  • 搜索功能

示例实现:C#

官方 C# SDK 存储库包含几个示例实现,演示了 MCP 的不同方面:

  • 基本 MCP 客户端:简单示例,展示如何创建 MCP 客户端和调用工具
  • 基本 MCP 服务器:使用基本工具注册的最小服务器实现
  • 高级 MCP 服务器:功能齐全的服务器,具有工具注册、身份验证和错误处理功能
  • ASP.NET 集成:演示与 ASP.NET Core 集成的示例
  • 工具实现模式:用于实现不同复杂程度的工具的各种模式

MCP C# SDK 处于预览阶段,API 可能会有所变更。我们将随着 SDK 的更新持续更新此博客。

主要特点

如需完整的 C# 实现示例,请访问官方 C# SDK 示例存储库

示例实现:Java 实现

Java SDK 提供了具有企业级功能的强大的 MCP 实现选项。

主要特点

  • Spring 框架集成
  • 强类型安全
  • 反应式编程支持
  • 全面的错误处理

有关完整的 Java 实现示例,请参阅示例目录中的MCPSample.java 。

示例实现:JavaScript 实现

JavaScript SDK 为 MCP 实现提供了一种轻量级且灵活的方法。

主要特点

  • Node.js 和浏览器支持
  • 基于 Promise 的 API
  • 轻松与 Express 和其他框架集成
  • WebSocket 对流的支持

有关完整的 JavaScript 实现示例,请参阅示例目录中的mcp_sample.js 。

示例实现:Python 实现

Python SDK 提供了一种 Pythonic 方法来实现 MCP,并具有出色的 ML 框架集成。

主要特点

  • 使用 asyncio 支持 Async/await
  • Flask 和 FastAPI 集成
  • 简单的工具注册
  • 与流行的机器学习库原生集成

有关完整的 Python 实现示例,请参阅示例目录中的mcp_sample.py 。

API 管理

Azure API 管理是解决 MCP 服务器安全问题的绝佳方案。其思路是将 Azure API 管理实例置于 MCP 服务器前端,并让它处理您可能需要的功能,例如:

  • 速率限制
  • 代币管理
  • 监控
  • 负载均衡
  • 安全

Azure 示例

这是一个 Azure 示例,它正是执行此操作,即[创建 MCP 服务器并使用 Azure API 管理保护它])( https://github.com/Azure-Samples/remote-mcp-apim-functions-python )。

请参阅下图中的授权流程:

在上图中,发生了以下情况:

  • 身份验证/授权使用 Microsoft Entra 进行。
  • Azure API 管理充当网关并使用策略来引导和管理流量。
  • Azure Monitor 记录所有请求以供进一步分析。
授权流程

让我们更详细地看一下授权流程:

MCP授权规范

了解有关MCP 授权规范的更多信息

将远程 MCP 服务器部署到 Azure

我们看看能否部署前面提到的样本:

  1. 克隆 repo

    git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git
    cd remote-mcp-apim-functions-python
  2. 注册Microsoft.App资源提供者。

    • 如果您使用的是 Azure CLI,请运行 az provider register --namespace Microsoft.App --wait
    • 如果您使用的是 Azure PowerShell,请运行 Register-AzResourceProvider -ProviderNamespace Microsoft.App
    • 然后(Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationState过一段时间再运行以检查注册是否完成。
  3. 运行此azd命令来配置 api 管理服务、函数应用程序(带代码)和所有其他所需的 Azure 资源

    azd up

    此命令应部署 Azure 上的所有云资源

使用 MCP Inspector 测试您的服务器

如果所有步骤都成功,您现在应该已连接到 MCP 服务器并能够调用工具。

适用于 Azure 的 MCP 服务器

Remote-mcp-functions:这组存储库是使用 Azure Functions 和 Python、C# .NET 或 Node/TypeScript 构建和部署自定义远程 MCP(模型上下文协议)服务器的快速入门模板。

该示例提供了完整的解决方案,允许开发人员:

主要特点:

该存储库包含所有必要的配置文件、源代码和基础设施定义,以便快速开始投入生产的 MCP 服务器实施。

关键要点

练习:

设计一个实用的 MCP 工作流程来解决您所在领域的实际问题:

  1. 在新的终端窗口中,安装并运行 MCP Inspector

    npx @modelcontextprotocol/inspector

    您应该会看到类似以下内容的界面:

  2. 按住 CTRL 键并单击,从应用程序显示的 URL 加载 MCP Inspector Web 应用程序(例如http://127.0.0.1:6274/#resources

  3. 将传输类型设置为SSE

  4. 将 URL 设置为在连接后显示的正在运行的 API 管理azd upSSE端点

    https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
  5. 列出工具。单击某个工具并运行工具

  6. 本地构建并运行:在本地机器上开发和调试 MCP 服务器
  7. 部署到 Azure:使用简单的 azd up 命令轻松部署到云
  8. 从客户端连接:从各种客户端连接到 MCP 服务器,包括 VS Code 的 Copilot 代理模式和 MCP Inspector 工具
  9. 安全设计:MCP 服务器使用密钥和 HTTPS 进行保护
  10. 身份验证选项:支持使用内置身份验证和/或 API 管理的 OAuth
  11. Azure 远程 MCP 函数 Python - 使用 Azure 函数和 Python 实现 MCP 的示例

  12. Azure 远程 MCP 函数 .NET - 使用 Azure Functions 和 C# .NET 实现 MCP 的示例

  13. Azure 远程 MCP 函数 Node/Typescript - 使用带有 Node/TypeScript 的 Azure 函数实现 MCP 的示例。

  14. MCP SDK 提供特定语言的工具来实现强大的 MCP 解决方案
  15. 调试和测试过程对于可靠的 MCP 应用至关重要
  16. 可重复使用的提示模板可实现一致的 AI 交互
  17. 精心设计的工作流程可以使用多种工具来协调复杂的任务
  18. 实施 MCP 解决方案需要考虑安全性、性能和错误处理
  19. 确定 3-4 种有助于解决此问题的工具
  20. 创建一个工作流程图来展示这些工具如何交互
  21. 使用您喜欢的语言实现其中一个工具的基本版本
  22. 创建一个提示模板,帮助模型有效地使用你的工具
    • 网络隔离:允许使用 Azure 虚拟网络 (VNET) 进行网络隔离
    • 无服务器架构:利用 Azure Functions 实现可扩展的事件驱动执行
    • 本地开发:全面的本地开发和调试支持
    • 简单部署:简化 Azure 部署流程
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐