使用说明
项目简介
这是一个基于 .NET 的 Model Context Protocol (MCP) 服务器模板,旨在帮助开发者快速搭建符合 MCP 协议的应用后端。它提供了一个基础框架,用于管理资源、注册工具和定义 Prompt 模板,从而实现 LLM 应用与外部数据源和功能的无缝集成。
主要功能点
- MCP 服务器基础框架:提供 .NET 环境下构建 MCP 服务器的基本结构和组件。
- 工具注册:支持通过特性 (Attribute) 轻松注册和暴露 .NET 方法作为 MCP 工具,供 LLM 客户端调用。
- Stdio 和 SSE 传输:内置支持 Stdio (标准输入输出) 和 SSE (Server-Sent Events) 两种 MCP 服务器传输协议。
- Aspire 集成:提供与 Microsoft Aspire 的集成方案,方便在 Aspire 应用程序中部署和管理 MCP 服务器。
- 示例工具:包含简单的 Echo 工具示例,帮助用户快速上手并理解工具的实现方式。
安装步骤
-
安装模板
打开命令行终端,运行以下命令安装 MCP 服务器模板:
dotnet new install Nall.ModelContextProtocol.Template -
创建项目
使用已安装的模板创建新的 MCP 服务器项目。例如,创建名为 'MyAwesomeMCPServer' 的 Stdio 服务器项目:
dotnet new mcp-server -o MyAwesomeMCPServer -n MyAwesomeMCPServer或者创建 SSE 服务器项目:
dotnet new mcp-server-sse -o MyAwesomeMCPServerSSE -n MyAwesomeMCPServerSSE
服务器配置
MCP 服务器是为 MCP 客户端提供服务的后端应用。客户端需要配置连接信息才能与服务器通信。以下是 MCP 客户端连接 Stdio 服务器时需要配置的服务器信息(JSON 格式):
{ "serverName": "MyAwesomeMCPServer", "command": "dotnet", "args": [ "run", "--project", "MyAwesomeMCPServer/MyAwesomeMCPServer.csproj" ] // "serverName": 服务器名称,可自定义 // "command": 启动服务器的命令,这里使用 dotnet 运行 .NET 项目 // "args": 命令参数,包括 run 命令和项目文件路径 // 请确保 "MyAwesomeMCPServer/MyAwesomeMCPServer.csproj" // 指向您创建的 Stdio MCP 服务器项目文件 }
注意:
- 如果您创建的是 SSE 服务器项目 ('mcp-server-sse' 模板),客户端通常需要配置服务器的 URL 地址,而不是命令行启动参数。SSE 服务器的 URL 会在服务器启动后显示。
- 上述 'args' 中的项目文件路径 '"MyAwesomeMCPServer/MyAwesomeMCPServer.csproj"' 是相对于 MCP 客户端启动命令执行目录的 相对路径。请根据您的实际项目结构进行调整。
基本使用方法
-
构建服务器
进入项目目录 'MyAwesomeMCPServer' (或 'MyAwesomeMCPServerSSE'),运行以下命令构建服务器程序:
dotnet build -
运行服务器
- Stdio 服务器:客户端通过配置的 'command' 和 'args' 启动服务器进程并建立连接。例如,使用上述配置,客户端会执行 'dotnet run --project MyAwesomeMCPServer/MyAwesomeMCPServer.csproj' 命令来启动服务器。
- SSE 服务器:在项目目录 'MyAwesomeMCPServerSSE' 中运行 'dotnet run' 命令启动服务器。服务器启动后会显示监听地址,客户端需要配置该地址进行连接。
-
实现工具
在服务器项目中,您可以创建带有 '[McpServerToolType]' 特性的静态类,并在其中定义带有 '[McpServerTool]' 特性的静态方法作为 MCP 工具。模板中已包含一个 'EchoTool' 示例,您可以参考该示例添加更多工具。
-
客户端连接和调用
使用 MCP 客户端(例如 '@modelcontextprotocol/inspector' 或其他 MCP 客户端库)配置服务器连接信息,并按照 MCP 协议规范调用服务器提供的工具。
信息
分类
开发者工具