项目简介

OpenOne 是一个功能强大的非官方 MCP 服务器和 Python API 客户端,专为 Alteryx Analytics Cloud Platform (AACP) 设计。它使得 LLM 客户端(如 Claude)能够无缝集成 Alteryx 平台,以程序化方式访问日程、数据集、计划、工作流和用户管理等功能。通过将复杂的 Alteryx API 抽象为易于理解和调用的 MCP 工具和资源,OpenOne 极大地简化了 LLM 应用与企业数据分析平台的交互,从而实现智能化的数据处理和自动化操作。

主要功能点

  • MCP 兼容服务器: OpenOne 提供了一个完全 MCP 兼容的后端服务,能够直接与 Claude 等遵循 Model Context Protocol 的 LLM 客户端进行通信,提供标准化的上下文信息和功能。
  • Alteryx 平台集成: 通过内置的 Alteryx API 客户端,OpenOne 实现了对 Alteryx Analytics Cloud Platform 的深度集成,支持对其核心功能的全面操作。
  • 日程管理: 轻松管理 Alteryx 工作流的执行日程,包括创建、获取详细信息、更新、删除、启用和禁用现有日程。
  • 计划管理: 允许用户创建、运行和管理 Alteryx 平台上的数据处理和分析计划。
  • 工作区与用户管理: 提供多工作区支持,能够列出工作区内的用户和管理员信息,并获取工作区配置。
  • 数据集管理: 方便地访问 Alteryx 平台上已导入和经过处理(wrangled)的数据集,获取数据集详情。
  • 工作流管理: 支持列出所有可访问的工作流,获取特定工作流的详细信息,并触发工作流的运行。
  • 任务管理: 监控 Alteryx 平台上任务组(job group)的执行状态,并获取任务的输入和输出数据集。
  • 多区域支持: 自动处理 Alteryx Analytics Cloud Platform 的多区域部署,确保全球用户都能正常使用。

安装步骤

  1. 前提条件:

    • Python 3.10 或更高版本。
    • 一个有效的 Alteryx Analytics Cloud Platform 账户。
    • 您的 OAuth2 凭证:Client ID、初始 Access Token 和 Refresh Token,这些是连接 Alteryx API 所必需的。
  2. 从 GitHub 安装 (推荐): 打开您的终端或命令行工具,执行以下命令克隆仓库并安装 OpenOne:

    git clone https://github.com/jupiterbak/OpenOne.git
    cd OpenOne
    pip install .

服务器配置

OpenOne MCP 服务器启动后,MCP 客户端需要通过配置其启动命令和参数来连接。以下是一个示例配置信息,用于指导 MCP 客户端(例如 Claude Desktop)如何与 OpenOne 服务器建立连接。此配置通常在您的 MCP 客户端的配置文件中进行设置:

{
  "mcpServers": {
    "aacp-mcp-server": {
      // 用于启动 OpenOne MCP 服务器的命令。
      "command": "uvx",
      // 传递给启动命令的参数。'openone' 是服务器模块名,'--transport stdio' 指定使用标准输入输出作为通信协议。
      "args": ["openone", "--transport", "stdio"],
      // 环境变量:配置 MCP 服务器与 Alteryx Analytics Cloud Platform 交互所需的凭证和设置。
      "env": {
        "OPENONE_API_BASE_URL": "https://api.eu1.alteryxcloud.com",       // Alteryx API 的基地址,请根据您的区域进行调整。
        "OPENONE_TOKEN_ENDPOINT": "https://pingauth-eu1.alteryxcloud.com/as", // OAuth2 令牌(Token)的获取端点。
        "OPENONE_CLIENT_ID": "your-client-id",                           // 您的 Alteryx OAuth2 客户端 ID。
        "OPENONE_ACCESS_TOKEN": "your-access-token",                     // 您的初始访问令牌。
        "OPENONE_REFRESH_TOKEN": "your-refresh-token",                   // 您的刷新令牌,用于自动续期访问令牌。
        "OPENONE_PERSISTENT_FOLDER": "~/.aacp"                           // 持久化文件存储路径,用于缓存令牌等信息。
      }
    }
  }
}

重要提示:

  • 请务必将上述配置中的 'your-client-id'、'your-access-token' 和 'your-refresh-token' 替换为您的实际 Alteryx 账户凭证。
  • 'OPENONE_API_BASE_URL' 和 'OPENONE_TOKEN_ENDPOINT' 可能需要根据您的 Alteryx Analytics Cloud Platform 实例所在的区域进行调整。
  • 为了安全和管理方便,您也可以选择在运行 OpenOne 服务器的环境中设置这些环境变量,而不是直接写入 MCP 客户端的配置文件。例如,在 '.env' 文件中定义:
    OPENONE_API_BASE_URL=https://api.eu1.alteryxcloud.com
    OPENONE_TOKEN_ENDPOINT=https://pingauth-eu1.alteryxcloud.com/as
    OPENONE_CLIENT_ID=your_client_id_here
    OPENONE_ACCESS_TOKEN=your_access_token_here
    OPENONE_REFRESH_TOKEN=your_refresh_token
    OPENONE_PERSISTENT_FOLDER=~/.openone
    OPENONE_VERIFY_SSL=1

基本使用方法 (LLM 客户端交互)

配置完成后,您可以通过 LLM 客户端(如 Claude)向 OpenOne 服务器发送自然语言指令,以执行 Alteryx Analytics Cloud Platform 上的各种操作。OpenOne 服务器会将这些指令翻译成对应的 Alteryx API 调用,并将结果返回给 LLM。以下是一些示例查询:

  • 日程管理:

    • "列出我所有的日程,并显示哪些是启用的。"
    • "获取日程 ID 为 12345 的详细信息,并告诉我它上次运行的时间。"
    • "临时禁用 ID 为 67890 的日程。"
    • "删除名为 'old-workflow-schedule' 的日程。"
  • 计划管理:

    • "展示我所有的计划及其当前状态。"
    • "运行计划 ID 为 abc123 的计划,并监控其进度。"
    • "获取与我的数据处理计划相关联的日程。"
  • 工作区与用户管理:

    • "列出所有我可访问的工作区。"
    • "显示工作区 ws-456 中的所有用户及其角色。"
    • "获取我当前的用户配置文件和权限。"
  • 数据管理:

    • "列出我所有的数据集并显示它们的大小。"
    • "显示我所有已处理的数据集及其输入源。"
    • "获取数据集 ds-456 的详细信息和元数据。"
  • 工作流与任务:

    • "列出我所有的工作流并显示哪些是活跃的。"
    • "运行工作流 wf-789 并监控其执行。"
    • "显示所有任务组及其当前状态。"
    • "获取任务 job-123 的输入和输出数据集。"

信息

分类

商业系统