使用说明

项目简介

这是一个基于 .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 工具示例,帮助用户快速上手并理解工具的实现方式。

安装步骤

  1. 安装模板

    打开命令行终端,运行以下命令安装 MCP 服务器模板:

    dotnet new install Nall.ModelContextProtocol.Template
  2. 创建项目

    使用已安装的模板创建新的 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 客户端启动命令执行目录的 相对路径。请根据您的实际项目结构进行调整。

基本使用方法

  1. 构建服务器

    进入项目目录 'MyAwesomeMCPServer' (或 'MyAwesomeMCPServerSSE'),运行以下命令构建服务器程序:

    dotnet build
  2. 运行服务器

    • Stdio 服务器:客户端通过配置的 'command' 和 'args' 启动服务器进程并建立连接。例如,使用上述配置,客户端会执行 'dotnet run --project MyAwesomeMCPServer/MyAwesomeMCPServer.csproj' 命令来启动服务器。
    • SSE 服务器:在项目目录 'MyAwesomeMCPServerSSE' 中运行 'dotnet run' 命令启动服务器。服务器启动后会显示监听地址,客户端需要配置该地址进行连接。
  3. 实现工具

    在服务器项目中,您可以创建带有 '[McpServerToolType]' 特性的静态类,并在其中定义带有 '[McpServerTool]' 特性的静态方法作为 MCP 工具。模板中已包含一个 'EchoTool' 示例,您可以参考该示例添加更多工具。

  4. 客户端连接和调用

    使用 MCP 客户端(例如 '@modelcontextprotocol/inspector' 或其他 MCP 客户端库)配置服务器连接信息,并按照 MCP 协议规范调用服务器提供的工具。

信息

分类

开发者工具