使用说明
项目简介
本项目是一个基于 Azure Functions 实现的 MCP 服务器,旨在为 L2C CTFs (Learn to Cloud Capture the Flags) 实验环境提供必要的上下文服务和工具功能。它允许 CTF 实验环境通过标准的 MCP 协议与服务器通信,调用预定义的工具,例如验证 Flag。
主要功能点
- 工具注册与执行: 通过 Azure Functions 注册和暴露工具,例如 'hello_ctf_user' 用于连接测试,'verify_flag' 用于验证用户提交的 Flag 是否正确。
- 基于 HTTP 的 MCP 协议支持: 使用 Azure Functions 的 HTTP 触发器处理 MCP 客户端的请求,并返回符合 MCP 协议的响应。
- 简单的资源管理: 虽然当前版本未显式展示资源管理功能,但框架具备扩展资源管理能力的基础。
- 客户端示例: 提供了一个 Python 客户端库 ('client/l2c_ctf_client.py'),演示如何连接到 MCP 服务器并调用工具。
安装步骤
- 克隆代码: 从 GitHub 仓库克隆代码到本地。
git clone https://github.com/madebygps/l2c-ctfs-mcp.git cd l2c-ctfs-mcp - 安装 UV: 确保已安装 UV 包管理器 (如果未安装,请参考 UV 官方文档进行安装)。
- 创建并激活虚拟环境: 使用 UV 创建并激活 Python 虚拟环境。
uv venv source .venv/bin/activate # 或 .venv\Scripts\activate for Windows - 安装依赖: 使用 UV 安装项目依赖。
uv sync - 部署 Azure Function:
- 你需要将 'src/function_app.py' 部署到 Azure Functions。这通常涉及创建 Azure Function App 服务,并使用 Azure Functions Core Tools 或 Azure CLI 将代码部署上去。
- 注意: 'src/function_app.py' 中定义的 Azure Functions 默认需要 Function 级别的身份验证。你需要在 Azure Function App 的 "Function keys" 中获取或创建一个 Function Key,并在客户端配置中使用。
服务器配置
MCP 客户端需要配置以下信息才能连接到此 MCP 服务器。配置信息通常以 JSON 格式提供给客户端:
{ "server name": "l2c-ctfs-mcp-server", "command": "<Azure Function URL>", // 替换为你的 Azure Function App 的 URL,通常可以在 Azure 门户中找到 "args": [ "-k", "<Function Key>" // 如果你的 Azure Function App 启用了 Function 级别身份验证,请替换为你的 Function Key,否则可以省略此参数 ] }
参数说明:
- '"server name"': 服务器的名称,可以自定义,用于客户端识别。
- '"command"': 必须替换为 你部署的 Azure Function App 的 URL。这是 MCP 客户端连接服务器的入口点。
- '"args"': 参数列表,用于传递额外的配置信息。
- '"-k"': 表示使用 Function Key 进行身份验证。
- '"<Function Key>"': 如果需要身份验证,必须替换为 你在 Azure Function App 中获取的 Function Key。如果你的 Function App 设置为允许匿名访问,则可以省略 '"-k"' 和 Function Key。
基本使用方法
- 部署服务器: 按照 "安装步骤" 中的说明将 'src/function_app.py' 部署到 Azure Functions。
- 配置客户端: 在 MCP 客户端中,配置服务器连接信息,包括 Azure Function URL 和可能的 Function Key。例如,使用提供的 'client/l2c_ctf_client.py' 示例客户端,你需要设置环境变量 'FUNCTION_URL' 和 'FUNCTION_KEY' (如果需要)。
- 运行客户端: 运行客户端代码 ('client/l2c_ctf_client.py'),客户端将连接到 MCP 服务器并列出可用的工具。
确保在运行客户端之前,已经设置了 'FUNCTION_URL' 和 'FUNCTION_KEY' 环境变量 (例如,通过 '.env' 文件或直接在终端中设置)。cd client python l2c_ctf_client.py
通过以上步骤,你就可以搭建并使用这个基于 Azure Functions 的 L2C CTFs MCP 服务器,为你的 CTF 实验环境提供基础的上下文服务和工具调用能力。
信息
分类
开发者工具