使用说明

项目简介

该项目 'AIML_Tutorial' 仓库旨在通过教程形式,展示如何使用 C# .NET 构建一个基于 Model Context Protocol (MCP) 的服务器。本仓库的 Model Context Protocol 章节,重点演示了 MCP 服务器的创建过程,包括使用 SSE/STDIO 进行通信,以及如何将 MCP 服务器工具与 Semantic Kernel 集成。虽然仓库名为 "Tutorial",但 Model Context Protocol 章节的代码构成了一个可运行的基础 MCP 服务器实现,能够作为学习和实验 MCP 协议的参考。

请注意: 本仓库主要为教学目的,代码可能不适用于生产环境,但可以作为理解 MCP 服务器原理和实现的起点。

主要功能点

  • 资源 (Resources) 托管与访问: 虽然示例代码中没有显式展示资源管理功能,但 MCP 服务器的架构设计支持资源托管和数据访问,可以通过扩展代码实现。
  • 工具 (Tools) 注册与执行: 演示了如何将 Semantic Kernel 插件作为 MCP 服务器的工具进行集成,允许 LLM 客户端通过 MCP 服务器调用 Semantic Kernel 插件功能。
  • Prompt 模板 (Prompts) 定义与渲染: 代码中通过 Semantic Kernel 的 Prompt Function间接体现 Prompt 模板的概念,MCP 服务器可以根据客户端请求,选择和渲染不同的 Prompt 模板。
  • 基于 SSE/STDIO 的传输协议: 实现了基于 Server-Sent Events (SSE) 和标准输入输出 (STDIO) 的 MCP 服务器,支持与 MCP 客户端进行实时通信和事件推送。
  • 能力声明: MCP 服务器可以声明其支持的资源和工具,客户端可以根据服务器声明的能力进行请求。
  • 会话管理: 虽然代码中没有显式实现复杂的会话管理,但 ASP.NET Core 框架本身具备会话管理能力,可以通过扩展代码实现 MCP 服务器的会话管理。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/PrathameshSystenics/AIML_Tutorial
    cd AIML_Tutorial/Classification
  2. 安装 .NET SDK: 确保您的开发环境已安装 .NET SDK (建议使用 .NET 6 或更高版本)。您可以从 https://dotnet.microsoft.com/download 下载并安装。
  3. 构建项目: 在 'Classification' 目录下,使用 .NET CLI 构建项目:
    dotnet build
  4. 运行服务器: 构建成功后,运行 MCP 服务器:
    dotnet run
    服务器默认监听 HTTP 请求,您将在控制台看到服务器启动信息和访问地址,例如 'https://localhost:xxxx'。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与之建立连接。以下是基于此仓库信息生成的 MCP 服务器配置信息(JSON 格式),请根据您的实际部署环境进行调整:

{
  "serverName": "AIML_Tutorial_MCP_Server",
  "command": "dotnet",
  "args": [
    "run",
    "--project",
    "Classification.csproj"
  ],
  "transport": "SSE",
  "description": "AIML Tutorial MCP Server using ASP.NET Core and SSE/STDIO"
}

参数注释:

  • 'serverName': MCP 服务器的名称,您可以自定义。
  • 'command': 启动 MCP 服务器的可执行命令,这里使用 'dotnet' 运行 .NET 应用。
  • 'args': 启动命令的参数列表:
    • '"run"': .NET CLI 的 'run' 命令,用于运行项目。
    • '"--project"': 指定要运行的项目文件。
    • '"Classification.csproj"': 指定 'Classification.csproj' 项目文件。
  • 'transport': MCP 服务器使用的传输协议,这里示例配置为 'SSE' (Server-Sent Events)。仓库也支持 'STDIO',您可以根据需要修改代码和配置。
  • 'description': MCP 服务器的描述信息,您可以自定义。

注意: MCP 客户端需要能够执行 'dotnet' 命令并访问到 'Classification.csproj' 文件所在的目录。实际部署时,您可能需要将服务器发布为独立的可执行文件或 Docker 镜像,并相应调整 'command' 和 'args' 配置。

基本使用方法

  1. 启动 MCP 服务器: 按照上述安装步骤运行 MCP 服务器。
  2. 配置 MCP 客户端: 在 MCP 客户端中,配置上述 '服务器配置' 信息,确保客户端能够连接到正在运行的 MCP 服务器。
  3. 客户端请求: MCP 客户端可以使用 JSON-RPC 协议向 MCP 服务器发送请求,例如:
    • 请求读取资源
    • 请求调用已注册的工具
    • 请求获取 Prompt 模板
  4. 服务器响应: MCP 服务器接收客户端请求后,根据请求类型进行处理,并返回 JSON-RPC 响应或通过 SSE 发送通知。

示例功能: 仓库中的 'EvaluateController' 演示了如何使用 SSE 获取模型评估结果。您可以访问 '/Evaluate/EvalResult' 接口(GET 请求)来体验 SSE 功能。在实际 MCP 应用中,您可以根据 MCP 协议定义更丰富的请求和响应类型,实现更复杂的功能。

信息

分类

开发者工具