Cloudflare MCP服务器

一个实现Cloudflare模型上下文协议(MCP)的服务器,用于与Cloudflare的GraphQL分析API和Logpush API交互,提供查询分析数据和管理Logpush作业的工具。

  • by Ibrahim-sec
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Ibrahim-sec/Cloudflare-MCP-Server

使用说明

Cloudflare MCP 服务器

项目描述

该项目实现了一个Cloudflare模型上下文协议(MCP)服务器,该服务器允许与Cloudflare的GraphQL分析API和Logpush API进行交互。它提供了一组通过MCP服务器暴露的工具,用于查询分析数据和管理Cloudflare区域的Logpush作业。服务器是使用 fastmcp 并且 requests 库,并从一个(配置文件)加载配置 config.yaml 文件或环境变量。

安装

要设置并运行Cloudflare MCP服务器,请按照以下步骤操作:

1. 克隆仓库(如适用)

如果你是从一个仓库中获取的这些文件,请先克隆该仓库:

git clone https://github.com/Ibrahim-sec/Cloudflare-MCP-Server
cd Cloudflare-MCP-Server

2. 创建一个Python虚拟环境

强烈建议使用虚拟环境来管理项目依赖,这样可以避免与其他Python项目发生冲突。

python3 -m venv venv
source venv/bin/activate  # On Windows, use `venv\Scripts\activate`

3. 安装依赖项

使用以下命令安装所需的Python包: pip:

pip install -r requirements.txt

配置

服务器需要Cloudflare API凭据,以及一个可选的区域ID。这些可以通过一个 config.yaml 作为文件或环境变量。

1. config.yaml

创建一个 config.yaml 在项目根目录中创建文件(如果尚未存在),文件结构如下:

cloudflare_api:
  api_token: "YOUR_CLOUDFLARE_API_TOKEN"  # Replace with your Cloudflare API Token
  account_id: "YOUR_CLOUDFLARE_ACCOUNT_ID" # Replace with your Cloudflare Account ID
  zone_id: "YOUR_CLOUDFLARE_ZONE_ID"    # Replace with your Cloudflare Zone ID (optional for zone-level operations)
  timeout: 30

logging:
  level: "INFO"

注: 确保您将占位符值替换为您实际的Cloudflare API令牌、帐户ID和区域ID zone_id 如果你只打算使用账户级别的分析查询,则此步骤为可选。

2. 环境变量

或者,您可以设置以下环境变量:

  • CLOUDFLARE_API_TOKEN
  • CLOUDFLARE_ACCOUNT_ID
  • CLOUDFLARE_ZONE_ID (可选)

示例:

export CLOUDFLARE_API_TOKEN="YOUR_CLOUDFLARE_API_TOKEN"
export CLOUDFLARE_ACCOUNT_ID="YOUR_CLOUDFLARE_ACCOUNT_ID"
export CLOUDFLARE_ZONE_ID="YOUR_CLOUDFLARE_ZONE_ID"

环境变量将覆盖(或替换)中的值 config.yaml 如果两者都提供的话。

用法

要启动MCP服务器,请运行 mcp_server_cloudflare.py 脚本:

python mcp_server_cloudflare.py

默认情况下,服务器将监听在 0.0.0.0:5000您可以指定不同的配置文件、主机或端口:

python mcp_server_cloudflare.py --config my_custom_config.yaml --host 127.0.0.1 --port 8000

一旦服务器运行起来,它将把Cloudflare API函数作为工具暴露出来,供MCP客户端使用。

Claude 桌面配置

要将此Cloudflare MCP服务器与Claude Desktop集成,您需要配置Claude Desktop以运行您的MCP服务器实例。这通常涉及在(相关配置或设置中)添加一个新的条目 mcpServers 在你的(某部分/区域) claude_desktop_config.json 文件。

以下是一个基于所提供信息的示例配置: claude_desktop_config.json:

{
  "mcpServers": {
    "CLOUDFLAREMCP": {
      "command": "python3", // Or "python" depending on your system
      "args": [
        "C:\\Users\\User\\Desktop\\MCP\\cloudflare-mcp\\mcp_server_cloudflare.py",
        "--config",
        "C:\\Users\\User\\Desktop\\MCP\\cloudflare-mcp\\config.yaml"
      ],
      "type": "local",
      "approvalPolicy": "always"
    }
    // ... other MCP server configurations
  }
}

字段解释:

  • "CLOUDFLAREMCP"这是您在 Claude Desktop 中用于标识 Cloudflare MCP 服务器的唯一标识符。
  • "command"这指定了用于运行服务器的可执行文件。默认情况下,它设置为 "python3" 用于在Windows、macOS或Linux上直接执行。
    • 对于WSL用户: 如果你是在 Windows 子系统 for Linux (WSL) 中运行服务器,请更改 "command": "python3" 到 "command": "wsl"您还需要调整路径中的设置 args 使用WSL风格的路径(例如。, /mnt/c/Users/User/Desktop/MCP/cloudflare-mcp/venv/bin/python 对于口译员来说,以及 /mnt/c/Users/User/Desktop/MCP/cloudflare-mcp/mcp_server_cloudflare.py 并且 /mnt/c/Users/User/Desktop/MCP/cloudflare-mcp/config.yaml (用于脚本和配置)。
  • "args"这个数组包含了执行您的服务器脚本所需的命令行参数。您需要根据您的虚拟环境,调整Python解释器的路径, mcp_server_cloudflare.py,以及 config.yaml 以匹配它们在系统中的实际位置。
    • 对于Windows用户: 确保路径使用反斜杠(\\) 作为分隔符,并指向正确的位置(例如。, C:\\Users\\YourUser\\...)。 Python解释器路径应指向 python.exe 或者 python 在你的虚拟环境里 Scripts 目录(例如。, C:\\Path\\To\\Your\\Project\\venv\\Scripts\\python)。
    • 对于WSL用户: 确保路径使用正斜杠(/)/) 并正确映射到您的Windows驱动器(例如。, /mnt/c/Users/YourUser/...)。 Python 解释器路径应指向 python 在你的虚拟环境中的 bin 目录(例如。, /mnt/c/Path/To/Your/Project/venv/bin/python)。
    • 第一个参数是您在虚拟环境中的Python解释器的路径。
    • 第二个参数是你的路径 mcp_server_cloudflare.py 脚本。
    • "--config" 并且后续的路径指定了要使用的配置文件。
  • "type": "local"指定这是一个本地运行的MCP服务器。
  • "approvalPolicy": "always"为这台服务器设置审批策略。

配置步骤:

  1. 定位 claude_desktop_config.json: 这个文件通常位于Claude Desktop的应用程序数据目录中。确切位置可能因操作系统而异。
  2. 编辑文件: 开放 claude_desktop_config.json 使用文本编辑器。
  3. 添加/更新 CLOUDFLAREMCP 条目: 加上 CLOUDFLAREMCP 如上例所示输入条目,或如果条目已存在则进行修改。
  4. 调整路径: 关键的是,更新路径内的(内容/设置/信息等,具体根据上下文确定) args 数组以反映您实际的位置 venv/bin/python, mcp_server_cloudflare.py,和 config.yaml 系统上的文件。
  5. 保存并重启Claude桌面版: 拯救 claude_desktop_config.json 保存文件并重启 Claude Desktop 以使更改生效。

配置完成后,Claude Desktop 应该能够自动启动并与您的 Cloudflare MCP 服务器进行交互,从而允许您调用其暴露的工具。