使用说明
项目简介
该项目 '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 服务器的会话管理。
安装步骤
- 克隆仓库:
git clone https://github.com/PrathameshSystenics/AIML_Tutorial cd AIML_Tutorial/Classification - 安装 .NET SDK: 确保您的开发环境已安装 .NET SDK (建议使用 .NET 6 或更高版本)。您可以从 https://dotnet.microsoft.com/download 下载并安装。
- 构建项目:
在 'Classification' 目录下,使用 .NET CLI 构建项目:
dotnet build - 运行服务器:
构建成功后,运行 MCP 服务器:
服务器默认监听 HTTP 请求,您将在控制台看到服务器启动信息和访问地址,例如 'https://localhost:xxxx'。dotnet run
服务器配置
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' 配置。
基本使用方法
- 启动 MCP 服务器: 按照上述安装步骤运行 MCP 服务器。
- 配置 MCP 客户端: 在 MCP 客户端中,配置上述 '服务器配置' 信息,确保客户端能够连接到正在运行的 MCP 服务器。
- 客户端请求: MCP 客户端可以使用 JSON-RPC 协议向 MCP 服务器发送请求,例如:
- 请求读取资源
- 请求调用已注册的工具
- 请求获取 Prompt 模板
- 服务器响应: MCP 服务器接收客户端请求后,根据请求类型进行处理,并返回 JSON-RPC 响应或通过 SSE 发送通知。
示例功能: 仓库中的 'EvaluateController' 演示了如何使用 SSE 获取模型评估结果。您可以访问 '/Evaluate/EvalResult' 接口(GET 请求)来体验 SSE 功能。在实际 MCP 应用中,您可以根据 MCP 协议定义更丰富的请求和响应类型,实现更复杂的功能。
信息
分类
开发者工具