本项目 SevillaDotNet MCP 服务器示例 是一个基于 C# 和 .NET 实现的 MCP 服务器项目。它旨在作为 Model Context Protocol (MCP) 的一个功能示例,展示如何在 .NET 生态系统中构建 MCP 服务器以向大型语言模型 (LLM) 客户端提供上下文信息和服务。这个仓库包含了服务器的完整实现代码,可以被兼容的 MCP 客户端连接和使用。

主要功能点

  • 资源管理: 服务器托管并提供多种类型的上下文资源,客户端可以通过标准 URI 访问这些数据。
  • 工具注册与调用: 定义并注册了多种示例工具(如回显、与 LLM 交互、获取图片 Logo、获取事件列表),客户端可以通过 MCP 协议远程调用这些工具来执行特定任务或访问外部能力。
  • Prompt 模板定义: 定义了不同结构的 Prompt 模板,支持客户端根据预定义格式快速构建用于 LLM 交互的输入内容。
  • 订阅与通知: 支持客户端订阅感兴趣的资源更新,当资源状态发生变化时,服务器会发送异步通知给客户端。
  • 自动完成: 为客户端在调用工具或使用 Prompt 时提供参数的自动完成建议,提升用户体验。
  • 配置管理: 支持动态调整服务器的一些运行时配置,例如日志输出级别。
  • 传输协议: 使用标准输入/输出 (Stdio) 作为与客户端通信的传输协议,方便集成。

安装步骤

  1. 克隆或下载本 GitHub 仓库到你的本地文件系统。
  2. 确保你的计算机上安装了兼容的 .NET SDK(推荐 .NET 8 或更高版本)。
  3. 打开终端或命令提示符,导航到服务器项目的根目录,即仓库中的 'src/SevillaDotNetMCPServer' 文件夹。
  4. 首次运行前,需要构建项目。在服务器项目目录中运行命令:'dotnet build'。

服务器配置 (供 MCP 客户端参考)

MCP 服务器通常作为 MCP 客户端的一个子进程启动并通过标准输入/输出进行通信。MCP 客户端需要配置启动服务器的命令及参数。对于本示例服务器,MCP 客户端通常需要以下配置信息:

  • 服务器名称: 'SevillaDotNet MCP Server' (这是一个用于标识服务器的友好名称)
  • 启动命令 (command): 'dotnet' (这是用于运行 .NET 应用程序的命令行工具)
  • 启动参数 (args): '["run", "--project", "<服务器项目路径>", "--no-build"]' (这是一系列传递给 'dotnet' 命令的参数,其中 '<服务器项目路径>' 需要替换为你本地仓库中 'src/SevillaDotNetMCPServer' 文件夹的绝对或相对路径。'--no-build' 参数用于跳过构建步骤,加快启动速度)
  • 传输协议 (transport): 'stdio' (表示使用标准输入/输出进行通信)
  • 描述信息 (description): 'Example MCP Server demonstrating Resources, Tools, and Prompts.' (服务器的简要说明)

MCP 客户端框架会使用这些信息来自动启动服务器并建立连接。

基本使用方法

  1. 完成上述安装步骤,确保项目已成功构建。
  2. 使用一个兼容的 MCP 客户端应用程序。
  3. 在 MCP 客户端中配置连接本服务器示例所需的启动命令和参数(参考上面的“服务器配置”部分,正确指定 '<服务器项目路径>')。
  4. 通过 MCP 客户端连接到服务器。客户端会自动启动服务器进程。
  5. 连接成功后,你可以通过客户端探索服务器的能力,例如:
    • 列出服务器可用的工具。
    • 调用 'echoSevillaDotNet' 工具并发送一条消息。
    • 列出服务器提供的资源。
    • 阅读某个资源的具体内容。
    • 使用服务器定义的 Prompt 模板。

信息

分类

AI与计算