使用说明
项目简介
Test SSE Server 是一个使用 C# 开发的、基于 Model Context Protocol (MCP) 协议的测试服务器,它实现了 MCP 服务器的核心功能,并通过 Server-Sent Events (SSE) 提供服务。该服务器旨在作为 MCP 客户端的测试和集成环境,验证客户端与 MCP 服务器之间的通信和功能交互。
主要功能点
- 资源管理: 提供静态资源列表和读取功能,支持文本和二进制资源。
- 工具执行: 注册和执行工具,包括回声工具 (echo) 和 LLM 采样工具 (sampleLLM),演示工具调用的基本流程。
- Prompt 模板: 支持 Prompt 模板的定义和获取,包括简单 Prompt 和带参数的复杂 Prompt。
- SSE 传输: 使用 Server-Sent Events (SSE) 作为传输协议,模拟 MCP 服务器与客户端的实时通信。
- 能力声明: 声明服务器支持的 Capabilities,例如 Tools, Resources, Prompts, Sampling 等。
安装步骤
- 克隆仓库: 首先,你需要克隆 'csharp-sdk' GitHub 仓库到本地:
git clone https://github.com/modelcontextprotocol/csharp-sdk - 导航到服务器目录: 进入 TestSseServer 项目的目录:
cd csharp-sdk/tests/ModelContextProtocol.TestSseServer - 构建项目: 使用 .NET SDK 构建项目:
构建成功后,可执行文件将在 'bin/Debug/net8.0' (或 Release 版本) 目录下生成。dotnet build
服务器配置
MCP 客户端需要配置 MCP 服务器的连接信息才能正常工作。以下是一个典型的 MCP 客户端 服务器配置 示例 (JSON 格式),用于连接到 Test SSE Server:
{ "server": { "name": "TestServer", "transport": "Stdio", "command": "path/to/TestSseServer.exe", "args": [] } }
配置参数说明:
- 'server name': '"TestServer"' - MCP 服务器的名称,用于客户端识别。
- 'transport': '"Stdio"' - 指定客户端与服务器通信的传输协议。虽然 TestSseServer 实际使用 SSE,但在客户端配置中,如果客户端与编译后的 TestSseServer 可执行文件直接交互,通常配置为 Stdio 进程模式。
- 'command': '"path/to/TestSseServer.exe"' - 启动 TestSseServer 的命令。需要将 'path/to/TestSseServer.exe' 替换为实际的 'TestSseServer.exe' 文件路径。如果使用 'dotnet TestSseServer.dll' 启动,则填写 'dotnet','args' 填写 '["TestSseServer.dll"]'。
- 'args': '[]' - 启动服务器时需要传递的命令行参数,本示例中为空。
注意: 实际使用 HTTP SSE 客户端连接时,客户端配置应使用 'Sse' 传输类型,并配置服务器的 SSE Endpoint URL ('http://localhost:3001/sse')。 但上述 Stdio 配置适用于客户端 SDK 在集成测试或直接运行编译后的 TestSseServer 可执行文件时的情况。
基本使用方法
-
启动服务器: 在 'csharp-sdk/tests/ModelContextProtocol.TestSseServer' 目录下,使用命令行运行服务器:
dotnet run --project ModelContextProtocol.TestSseServer.csproj服务器成功启动后,将在控制台输出 "Server started." 等信息。
-
配置 MCP 客户端: 根据 MCP 客户端的具体使用方式,配置连接到 TestServer 的服务器信息(参考上面的服务器配置示例)。
-
使用 MCP 客户端与服务器交互: 通过 MCP 客户端发送请求,例如:
- 列出资源列表 (ListResources)
- 读取指定资源 (ReadResource)
- 列出工具列表 (ListTools)
- 调用工具 (CallTool)
- 获取 Prompt 模板 (GetPrompt)
客户端将通过 MCP 协议与 Test SSE Server 进行通信,并接收服务器返回的响应。
信息
分类
开发者工具