使用说明

项目简介

本仓库 'mpc-csharp-semantickernel' 提供了一个使用 C# 和 Microsoft Semantic Kernel 构建的 Model Context Protocol (MCP) 服务器示例。 该示例展示了如何使用官方 C# MCP SDK ('McpDotNet') 创建一个 MCP 服务器,并注册和提供工具 (Tools) 给 MCP 客户端调用。 请注意,该仓库只是一个快速示例,不会进行维护。

主要功能点

  • 工具注册与调用: 实现了 MCP 服务器的核心功能,可以注册和提供工具供客户端调用。
  • 示例工具: 包含两个示例工具:
    • 'EmailTool': 发送电子邮件的工具,演示了如何集成外部服务。
    • 'EchoTool': 简单的回声工具,用于测试服务器连通性。
  • Stdio 传输: 使用 Stdio (标准输入输出) 作为 MCP 服务器的传输协议。
  • 配置灵活: 通过 'appsettings.json' 文件进行配置,例如 SMTP 服务器设置。

安装步骤

  1. 克隆仓库: 将 'mpc-csharp-semantickernel' 仓库克隆到本地。
  2. 检查 Prerequisites: 确保已安装 .NET SDK,并且拥有 OpenAI API Key 和 SMTP 邮件服务器。
  3. 配置 'appsettings.json':
    • 在 'src/MCPServer/appsettings.json' 中配置 'EmailSettings' 节点下的 SMTP 服务器信息 ( 'MailServer', 'MailPort', 'Sender', 'SenderName', 'Username', 'Password')。
    • 在 'src/WebAppMCPPoc/appsettings.json' 中配置 'OpenAI:ApiKey' 和 'OpenAI:ChatModelId' (虽然 MCP 服务器本身不直接使用 OpenAI,但客户端 'WebAppMCPPoc' 使用了)。
  4. 运行 MCP 服务器: 打开终端,导航到 'src/MCPServer' 目录,运行命令 'dotnet run' 启动 MCP 服务器。 默认情况下,服务器监听 'http://localhost:5109' (虽然该服务器示例使用 StdIO 传输,但可能配置了 ASP.NET Core 的默认端口).

服务器配置

以下是 MCP 客户端 (例如 'WebAppMCPPoc' 项目) 连接到此 MCP 服务器所需的配置信息。客户端需要配置 'McpServerConfig' 对象,指定服务器的启动命令和参数。

{
  "id": "mcp-server",
  "name": "MCP Server",
  "transportType": "Stdio",
  "transportOptions": {
    "command": "dotnet run",
    "arguments": "--verbosity m --project ../MCPServer"
  }
}

配置参数说明:

  • 'id': 服务器的唯一标识符,客户端用此 ID 引用服务器。例如: 'mcp-server'。
  • 'name': 服务器的名称,用于描述服务器功能。例如: 'MCP Server'。
  • 'transportType': MCP 服务器使用的传输协议,这里是 'Stdio',表示使用标准输入输出进行通信。
  • 'transportOptions': 传输协议的配置选项,对于 'Stdio' 传输,需要配置以下参数:
    • 'command': 启动 MCP 服务器的命令。 例如: '"dotnet run"' (假设从客户端的角度,当前工作目录是 'WebAppMCPPoc' 项目的根目录,'../MCPServer' 指向 MCP 服务器项目目录)。
    • 'arguments': 传递给启动命令的参数。 例如: '" --verbosity m --project ../MCPServer"' (指定详细程度和 MCP 服务器项目路径)。

重要提示:

  • 客户端需要根据实际的项目目录结构和 .NET 运行环境调整 'command' 和 'arguments' 的值,确保能够正确启动 MCP 服务器。
  • 上述配置示例假设客户端和服务器在相对路径 '../MCPServer' 中。 如果实际部署环境不同,请修改路径。

基本使用方法

  1. 启动 MCP 服务器 (按照 "安装步骤" 中的说明)。

  2. 运行 MCP 客户端 (例如仓库中的 'WebAppMCPPoc' 项目)。 'WebAppMCPPoc' 项目本身是一个 ASP.NET Core Web API 应用,需要单独运行。

  3. 发送请求到客户端: 使用 Postman 或 curl 等工具,向 'WebAppMCPPoc' 客户端的 '/chat' 接口发送 POST 请求。 请求体 (Body) 使用 JSON 格式,包含 'text' 字段,例如:

    { "text": "send and email to aFriend and tell him hello" }
    • 请确保 'EmailTool.cs' 中 'emails' 字典里配置了 '"aFriend"' 对应的邮箱地址。
    • 客户端会将请求转发给 MCP 服务器,调用相应的工具,并返回结果。
    • 示例请求 URL (假设 'WebAppMCPPoc' 运行在默认端口): 'https://localhost:7113/chat'

注意: 'WebAppMCPPoc' 项目本身是一个使用了 Semantic Kernel 的 Web 应用,它通过 MCP 客户端连接到 'MCPServer',并将 MCP 服务器提供的工具集成到 Semantic Kernel 中。 用户实际是与 'WebAppMCPPoc' 客户端进行交互,通过客户端间接使用 MCP 服务器的功能。

信息

分类

开发者工具