项目简介

该项目是GitHub Copilot demo仓库中的一个组成部分,专门实现了一个基于Model Context Protocol (MCP) 的服务器。它的主要功能是提供两个简单的工具:生成随机字符串和生成基于种子的唯一字符串,供支持MCP的LLM客户端调用。

主要功能点

  • 随机字符串生成工具 ('random_string'): 根据指定的长度以及是否包含小写字母、大写字母、数字或特殊字符来生成完全随机的字符串。
  • 唯一字符串生成工具 ('unique_string'): 根据一个种子文本(seed text)和指定的字符类型、长度,生成一个具有确定性的“唯一”字符串。同一个种子文本总是会产生相同的输出。

安装步骤

  1. 克隆仓库: 使用 Git 克隆整个 GitHub 仓库到本地。
    git clone https://github.com/tkubica12/gh-copilot-demo.git
    cd gh-copilot-demo
  2. 进入MCP目录: 切换到包含MCP服务器代码的目录。
    cd random_string_mcp
  3. 安装依赖: 需要 Python 环境。MCP服务器部分依赖于 'fastmcp' 库。请确保您的 Python 环境已安装必要的库。通常可以通过 'pip' 安装。
    # 根据需要创建并激活虚拟环境
    # python -m venv .venv
    # source .venv/bin/activate # Linux/macOS
    # .venv\Scripts\activate # Windows
    pip install mcp-server fastmcp
  4. 运行服务器: 执行主脚本启动MCP服务器。
    python src/main.py
    服务器将启动并在本地监听连接。

服务器配置

MCP客户端(如GitHub Copilot Agent)需要知道如何启动和连接到此服务器。通常通过一个 JSON 配置文件来描述。以下是根据此项目结构和代码生成的一个示例配置信息:

{
  "name": "Random string", // 服务器名称,与FastMCP实例化时一致
  "command": "python",    // 用于启动服务器的可执行命令
  "args": [               // 传递给命令的参数,这里是MCP服务器脚本的路径
    "random_string_mcp/src/main.py" 
  ],
  "cwd": "gh-copilot-demo", // 工作目录,通常是仓库的根目录,以便正确找到脚本
  "transport": "sse"      // 服务器使用的传输协议,此处代码硬编码为SSE
  // 可能还会有其他配置项,如 env 环境变量等
}

用户需要将此类配置添加到其MCP客户端的相应配置文件(例如 GitHub Copilot Workspace 中的 'mcp.json')中,指向本地克隆的仓库路径。

基本使用方法

一旦MCP服务器正在本地运行并通过客户端配置正确连接,LLM客户端(如支持工具调用的AI代理)就可以通过MCP协议发现并调用服务器提供的工具。

例如,客户端可能会通过发送一个请求来调用 'random_string' 工具,参数可能包括长度、字符类型等。LLM用户则通过自然语言提示触发此调用。

如项目 README 中所示的例子:

Generate names for 10 containers in format app1-xxxxxx where xxxxxx is random suffix consisting of lowercase letters and numbers

这个用户提示会被AI代理解析,识别出需要一个随机字符串,然后通过配置好的MCP连接调用本服务器的 'random_string' 工具,指定长度为6、包含小写字母和数字,最终将工具返回的随机字符串用于生成容器名称。

服务器接收到客户端的 JSON-RPC 请求后,会执行相应的 Python 函数('random_string' 或 'unique_string'),并将函数的返回值通过 JSON-RPC 响应返回给客户端。

信息

分类

开发者工具