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' 资源的工具化版本。
安装步骤
- 克隆仓库:
git clone https://github.com/isaacwasserman/mcp_cube_server cd mcp_cube_server - 安装依赖:
建议使用虚拟环境。
pip install . # 或者 pip install -e . # 如果您想在本地修改代码并立即生效 - 配置环境变量:
创建 '.env' 文件,并根据您的 Cube 环境配置以下环境变量:
如果您不想使用 '.env' 文件,也可以通过命令行参数配置 'endpoint' 和 'api_secret'。CUBE_ENDPOINT=<YOUR_CUBE_ENDPOINT> # Cube API 端点 URL CUBE_API_SECRET=<YOUR_CUBE_API_SECRET> # Cube API Secret # CUBE_TOKEN_PAYLOAD={} # 可选: JWT Payload,默认为空 JSON 对象
服务器配置
以下 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." }
基本使用方法
-
启动服务器: 在项目根目录下运行以下命令启动 Cube MCP Server:
python -m mcp_cube_server或者,如果您直接运行 'init.py' 文件:
python src/mcp_cube_server/__init__.py您也可以根据需要添加额外的命令行参数,例如 '--log_dir <log_目录>' 指定日志文件输出目录。
-
配置 MCP 客户端: 将上述服务器配置 JSON 添加到您的 MCP 客户端配置中。
-
通过 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' 是正确的。
信息
分类
商业系统