使用说明
项目简介
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 协议进行客户端与服务器端的通信。
安装步骤
- 安装 .NET SDK: 确保您的开发环境中已安装 .NET SDK (建议使用较新版本,如 .NET 6 或以上)。您可以从 官方 .NET 下载页面 获取并安装。
- 克隆仓库: 使用 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 服务器。
基本使用方法
-
启动服务器:
- HTTP 服务器 (HttpMCP): 在 'MCPExperiment' 仓库根目录下,打开命令行工具,执行以下命令启动 HTTP MCP 服务器:
服务器默认监听 'http://localhost:5000'。您可以通过浏览器访问 'http://localhost:5000/sse-demo' 体验 SSE 功能演示页面。dotnet run --project src/tests/HttpMCP/HttpMCP.csproj - Stdio 服务器 (StdioMCP): 在 'MCPExperiment' 仓库根目录下,打开命令行工具,执行以下命令启动 Stdio MCP 服务器:
Stdio 服务器启动后,将在命令行等待接收来自客户端的 JSON-RPC 请求。dotnet run --project src/tests/StdioMCP/StdioMCP.csproj
- HTTP 服务器 (HttpMCP): 在 'MCPExperiment' 仓库根目录下,打开命令行工具,执行以下命令启动 HTTP MCP 服务器:
-
客户端连接: 使用 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与计算