使用说明

项目简介

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 等。

安装步骤

  1. 克隆仓库: 首先,你需要克隆 'csharp-sdk' GitHub 仓库到本地:
    git clone https://github.com/modelcontextprotocol/csharp-sdk
  2. 导航到服务器目录: 进入 TestSseServer 项目的目录:
    cd csharp-sdk/tests/ModelContextProtocol.TestSseServer
  3. 构建项目: 使用 .NET SDK 构建项目:
    dotnet build
    构建成功后,可执行文件将在 'bin/Debug/net8.0' (或 Release 版本) 目录下生成。

服务器配置

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 可执行文件时的情况。

基本使用方法

  1. 启动服务器: 在 'csharp-sdk/tests/ModelContextProtocol.TestSseServer' 目录下,使用命令行运行服务器:

    dotnet run --project ModelContextProtocol.TestSseServer.csproj

    服务器成功启动后,将在控制台输出 "Server started." 等信息。

  2. 配置 MCP 客户端: 根据 MCP 客户端的具体使用方式,配置连接到 TestServer 的服务器信息(参考上面的服务器配置示例)。

  3. 使用 MCP 客户端与服务器交互: 通过 MCP 客户端发送请求,例如:

    • 列出资源列表 (ListResources)
    • 读取指定资源 (ReadResource)
    • 列出工具列表 (ListTools)
    • 调用工具 (CallTool)
    • 获取 Prompt 模板 (GetPrompt)

    客户端将通过 MCP 协议与 Test SSE Server 进行通信,并接收服务器返回的响应。

信息

分类

开发者工具