项目简介
该项目是GitHub Copilot demo仓库中的一个组成部分,专门实现了一个基于Model Context Protocol (MCP) 的服务器。它的主要功能是提供两个简单的工具:生成随机字符串和生成基于种子的唯一字符串,供支持MCP的LLM客户端调用。
主要功能点
- 随机字符串生成工具 ('random_string'): 根据指定的长度以及是否包含小写字母、大写字母、数字或特殊字符来生成完全随机的字符串。
- 唯一字符串生成工具 ('unique_string'): 根据一个种子文本(seed text)和指定的字符类型、长度,生成一个具有确定性的“唯一”字符串。同一个种子文本总是会产生相同的输出。
安装步骤
- 克隆仓库: 使用 Git 克隆整个 GitHub 仓库到本地。
git clone https://github.com/tkubica12/gh-copilot-demo.git cd gh-copilot-demo - 进入MCP目录: 切换到包含MCP服务器代码的目录。
cd random_string_mcp - 安装依赖: 需要 Python 环境。MCP服务器部分依赖于 'fastmcp' 库。请确保您的 Python 环境已安装必要的库。通常可以通过 'pip' 安装。
# 根据需要创建并激活虚拟环境 # python -m venv .venv # source .venv/bin/activate # Linux/macOS # .venv\Scripts\activate # Windows pip install mcp-server fastmcp - 运行服务器: 执行主脚本启动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 响应返回给客户端。
信息
分类
开发者工具