Cube MCP Server 使用说明

项目简介

Cube MCP Server 是一个 MCP (Model Context Protocol) 服务器实现,它允许 LLM (大型语言模型) 客户端通过标准化的 MCP 协议与 Cube 语义层进行交互。该服务器提供资源和工具,使得 LLM 能够查询 Cube 中的数据,并获取关于可用数据的描述信息。

主要功能点

  • 数据描述资源 (context://data_description): 提供对 Cube 部署中可用数据的结构化描述,帮助 LLM 理解可以查询的数据内容。
  • 数据资源 (data://{data_id}): 允许客户端以 JSON 格式访问 'read_data' 工具调用返回的数据结果。
  • 读取数据工具 (read_data): 接受 Cube REST API 查询,返回 YAML 格式的数据,并提供数据 ID 以便通过数据资源获取 JSON 格式的数据。
  • 描述数据工具 (describe_data): 提供对 Cube 部署中可用数据的描述,是 'context://data_description' 资源的工具化版本。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/isaacwasserman/mcp_cube_server
    cd mcp_cube_server
  2. 安装依赖: 建议使用虚拟环境。
    pip install .
    # 或者
    pip install -e . # 如果您想在本地修改代码并立即生效
  3. 配置环境变量: 创建 '.env' 文件,并根据您的 Cube 环境配置以下环境变量:
    CUBE_ENDPOINT=<YOUR_CUBE_ENDPOINT>  # Cube API 端点 URL
    CUBE_API_SECRET=<YOUR_CUBE_API_SECRET> # Cube API Secret
    # CUBE_TOKEN_PAYLOAD={} # 可选: JWT Payload,默认为空 JSON 对象
    如果您不想使用 '.env' 文件,也可以通过命令行参数配置 'endpoint' 和 'api_secret'。

服务器配置

以下 JSON 配置信息可用于 MCP 客户端连接 Cube MCP Server。请根据您的实际环境修改 '<YOUR_CUBE_ENDPOINT>' 和 '<YOUR_CUBE_API_SECRET>'。

{
  "serverName": "Cube MCP Server",
  "command": "python -m mcp_cube_server",
  "args": [
    "--endpoint", "<YOUR_CUBE_ENDPOINT>",  // 替换为您的 Cube API 端点 URL
    "--api_secret", "<YOUR_CUBE_API_SECRET>", // 替换为您的 Cube API Secret
    "--log_level", "INFO"                     // 可选: 设置日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  ],
  "description": "MCP server for accessing Cube Semantic Layer data."
}

基本使用方法

  1. 启动服务器: 在项目根目录下运行以下命令启动 Cube MCP Server:

    python -m mcp_cube_server

    或者,如果您直接运行 'init.py' 文件:

    python src/mcp_cube_server/__init__.py

    您也可以根据需要添加额外的命令行参数,例如 '--log_dir <log_目录>' 指定日志文件输出目录。

  2. 配置 MCP 客户端: 将上述服务器配置 JSON 添加到您的 MCP 客户端配置中。

  3. 通过 MCP 客户端与 Cube 交互: 使用 MCP 客户端发送请求到 Cube MCP Server,例如:

    • 请求 'context://data_description' 资源以获取数据描述。
    • 调用 'read_data' 工具并提供查询参数,以读取 Cube 中的数据。
    • 通过 'read_data' 工具返回的 'data_id' 访问 'data://{data_id}' 资源以获取 JSON 格式的数据。
    • 调用 'describe_data' 工具以获取数据描述。

注意: 确保 Cube API 服务可访问,并且您提供的 'CUBE_ENDPOINT' 和 'CUBE_API_SECRET' 是正确的。

信息

分类

商业系统