使用说明

项目简介

MCP Experiment 是一个使用 .NET 开发的 Model Context Protocol (MCP) 服务器的实验性项目。它旨在演示如何构建一个符合 MCP 协议的服务端,为 AI 大语言模型 (LLM) 应用提供结构化的上下文信息和功能调用能力。虽然项目声明为实验性质,但代码具备 MCP 服务器的基本框架和功能。

主要功能点

  • 资源管理: 支持托管和管理各种类型的资源,并提供基于 URI 的数据访问能力。
  • 工具集成: 允许注册和执行外部工具,使 LLM 能够调用外部功能,例如天气查询、计算等。
  • Prompt 模板: 支持定义和管理 Prompt 模板,实现可定制的 LLM 交互模式。
  • 多种传输协议: 实现了 HTTP/REST API 和 Stdio (标准输入输出) 两种传输方式,方便不同场景的应用集成。
  • SSE实时通信: 支持 Server-Sent Events (SSE) 用于服务器向客户端推送实时更新和通知。
  • JSON-RPC 协议: 基于 JSON-RPC 2.0 协议进行客户端与服务器端的通信。

安装步骤

  1. 安装 .NET SDK: 确保您的开发环境中已安装 .NET SDK (建议使用较新版本,如 .NET 6 或以上)。您可以从 官方 .NET 下载页面 获取并安装。
  2. 克隆仓库: 使用 Git 工具克隆 MCPExperiment 仓库到本地:
    git clone https://github.com/artl93/MCPExperiment.git
    cd MCPExperiment

服务器配置

MCP 服务器可以通过 HTTP 或 Stdio 两种方式启动。MCP 客户端需要配置服务器的启动命令和参数才能连接。以下是两种服务器类型的配置示例(JSON 格式):

1. HTTP 服务器配置 (HttpMCP)

{
  "serverName": "HttpMCP Server",
  "command": "dotnet",
  "args": [
    "run",
    "--project",
    "src/tests/HttpMCP/HttpMCP.csproj"
  ],
  "description": "通过 HTTP 协议提供 MCP 服务,监听端口为 http://localhost:5000。客户端通过 POST 请求 /mcp 路径进行 JSON-RPC 通信,通过 /sse 路径建立 SSE 连接。"
}
  • 'serverName': 自定义服务器名称,用于客户端识别。
  • 'command': 启动服务器的命令,这里使用 'dotnet' 运行 .NET 项目。
  • 'args': 传递给 'dotnet' 命令的参数,指定运行 'HttpMCP.csproj' 项目。
  • 'description': 服务器的简要描述,方便用户理解服务器类型和连接方式。

2. Stdio 服务器配置 (StdioMCP)

{
  "serverName": "StdioMCP Server",
  "command": "dotnet",
  "args": [
    "run",
    "--project",
    "src/tests/StdioMCP/StdioMCP.csproj"
  ],
  "description": "通过标准输入输出 (Stdio) 协议提供 MCP 服务。客户端需要通过 Stdio 与服务器进程进行 JSON-RPC 通信。"
}
  • 'serverName': 自定义服务器名称,用于客户端识别。
  • 'command': 启动服务器的命令,同样使用 'dotnet'。
  • 'args': 传递给 'dotnet' 命令的参数,指定运行 'StdioMCP.csproj' 项目。
  • 'description': 服务器的简要描述,说明服务器使用 Stdio 协议。

注意: MCP 客户端需要根据选择的服务器类型(HttpMCP 或 StdioMCP)配置相应的 'command' 和 'args',以便正确启动并连接到 MCP 服务器。

基本使用方法

  1. 启动服务器:

    • HTTP 服务器 (HttpMCP): 在 'MCPExperiment' 仓库根目录下,打开命令行工具,执行以下命令启动 HTTP MCP 服务器:
      dotnet run --project src/tests/HttpMCP/HttpMCP.csproj
      服务器默认监听 'http://localhost:5000'。您可以通过浏览器访问 'http://localhost:5000/sse-demo' 体验 SSE 功能演示页面。
    • Stdio 服务器 (StdioMCP): 在 'MCPExperiment' 仓库根目录下,打开命令行工具,执行以下命令启动 Stdio MCP 服务器:
      dotnet run --project src/tests/StdioMCP/StdioMCP.csproj
      Stdio 服务器启动后,将在命令行等待接收来自客户端的 JSON-RPC 请求。
  2. 客户端连接: 使用 MCP 客户端(例如,根据 MCP 协议开发的 LLM 应用客户端)并根据您选择的服务器类型配置连接信息(如上述服务器配置示例)。客户端将通过 JSON-RPC 协议与 MCP 服务器进行通信,请求资源、调用工具或获取 Prompt。

示例操作:

  • HTTP 服务器: 客户端可以通过 HTTP POST 请求 '/mcp' 路径发送 JSON-RPC 请求,例如调用 'getWeather' 工具。可以通过浏览器访问 'http://localhost:5000/sse' 建立 SSE 连接,接收服务器推送的通知。
  • Stdio 服务器: 客户端需要通过标准输入向 Stdio 服务器发送符合 JSON-RPC 格式的请求,并通过标准输出接收服务器的响应。

调试和测试:

  • HTTP 服务器提供了 '/debug/mcp-status' 接口,可以查看服务器注册的工具和 Prompt 信息,方便调试。
  • HTTP 服务器的根路径 '/' 和 '/sse-demo' 提供了简单的状态页面和 SSE 功能演示,可以辅助测试服务器运行状态。

信息

分类

AI与计算