项目简介

'UsingMcpServers' 仓库提供了一个演示应用,展示了如何使用 Model Context Protocol (MCP) 为 Azure OpenAI 驱动的聊天代理提供自定义工具。该仓库包含两个主要部分:

  1. TranslationAgent:一个控制台聊天客户端应用程序,负责与 Azure OpenAI 交互,并通过 MCP 客户端连接到 MCP 服务器获取工具。
  2. TranslationTools:一个 ASP.NET Core Web 应用程序,作为 MCP 服务器,托管并对外暴露自定义的文本转换工具。

本项目重点是 'TranslationTools' 部分,它是一个有效的 MCP 服务器实现。

主要功能点

本 MCP 服务器('TranslationTools')提供以下功能:

  • 自定义工具托管:作为基于 ASP.NET Core 的 MCP 服务器,托管并管理一系列自定义文本转换工具。
  • MCP 协议支持:通过 Model Context Protocol (MCP) 标准,允许外部 LLM 客户端发现、列举和调用这些工具。
  • Server-Sent Events (SSE) 传输:支持通过 SSE 协议进行通信,实现高效的数据流传输。
  • 预定义文本转换工具
    • LeetSpeakTool:将普通文本转换为“1337 语”(Leet Speak)格式,用数字和符号替换字母。
    • CodeSpeakTool:一种自定义编码方式,将单词的首字母移到末尾,加上“zx”,然后隔一个字符大写一次。
    • ReverseTool:将输入的字符串进行反转。

安装步骤

要运行此 MCP 服务器,您需要 .NET 8 SDK。

  1. 克隆仓库
    git clone https://github.com/bradygaster/UsingMcpServers.git
    cd UsingMcpServers
  2. 启动 MCP 服务器: 在项目根目录,运行以下命令启动 'TranslationTools' MCP 服务器:
    dotnet run --project TranslationTools
    服务器将在 'http://localhost:5106' 监听请求。

服务器配置

MCP 客户端需要知道如何连接到此 MCP 服务器。以下是一个典型的 MCP 客户端配置示例,用于连接本服务器:

{
  "serverName": "TranslationAgentToolsServer",
  "description": "提供文本转换功能的MCP服务器",
  "connection": {
    "type": "sse",
    "endpoint": "http://localhost:5106/sse",
    "description": "MCP服务器通过Server-Sent Events (SSE) 协议在本地端口5106提供服务。"
  },
  "startup": {
    "command": "dotnet",
    "args": [
      "run",
      "--project",
      "TranslationTools"
    ],
    "description": "启动MCP服务器的命令行指令及参数,需要在项目根目录执行。"
  }
}

注意:上述配置是提供给 MCP 客户端使用的,客户端将根据这些信息来连接和管理服务器。在实际使用时,您无需手动修改服务器代码来应用此配置。

基本使用方法

  1. 确保 Azure OpenAI 资源已配置: 项目需要一个 Azure OpenAI 资源,部署了 'gpt-4o-mini' 模型。您可以使用 'prompt.md' 文件配合 GitHub Copilot for Azure 来自动配置。配置完成后,确保 'TranslationAgent' 项目的 'AZURE_OPENAI_ENDPOINT' 用户秘密已正确设置。

  2. 启动 MCP 服务器: 按照安装步骤中说明,在项目根目录运行 'dotnet run --project TranslationTools'。

  3. 启动聊天代理客户端: 在另一个终端窗口中,在项目根目录运行以下命令启动 'TranslationAgent' 客户端:

    dotnet run --project TranslationAgent
  4. 与代理聊天: 客户端启动后,您可以在控制台中输入提示。聊天代理将根据对话内容,自动判断何时调用 MCP 服务器提供的文本转换工具来处理您的请求。例如,尝试输入一些需要转换的文本,代理将尝试使用 Leet Speak、Code Speak 或反转工具进行处理。

信息

分类

AI与计算