项目简介
该项目是一个简单的 MCP 服务器实现,用于将 Tableau 的 VizQL Data Service (VDS) 和 Metadata API 功能封装并通过 MCP 协议暴露给大型语言模型 (LLM) 客户端(如 Claude Desktop)使用。它允许 LLM 通过调用服务器提供的工具来查询 Tableau 数据源或获取字段元数据。
主要功能点
- 连接 Tableau VDS: 能够调用 Tableau VizQL Data Service 接口执行数据查询。
- 连接 Tableau Metadata API: 能够调用 Tableau Metadata API 获取数据源的字段信息。
- MCP 工具封装: 将 Tableau 的数据查询和字段列表功能封装成两个 MCP 工具 ('query_datasource' 和 'list_fields'),供 LLM 客户端调用。
- Stdio 传输支持: 通过标准输入输出 (Stdio) 协议与 MCP 客户端通信。
安装步骤
- 克隆仓库:
git clone https://github.com/joeconstantino/test-tableau-mcp.git cd test-tableau-mcp - 安装依赖: 项目使用了 'uv' 包管理器。如果未安装 'uv',请先安装:'pip install uv'。然后使用 'uv' 安装项目依赖:
(注意:'.' 代表当前目录,即 'test-tableau-mcp' 仓库根目录)uv run --directory . install . - 配置 Tableau 信息: 编辑 'vds.py' 文件,填写以下常量为你自己的 Tableau 环境信息:
- 'VIZQL_API_BASE':Tableau 服务器的 VizQL Data Service 基础 URL。
- 'METADATA_GRAPHQL':Tableau 服务器的 Metadata API 基础 URL。
- 'DS_LUID':要操作的 Tableau 数据源的 LUID。
- 'AUTH_TOKEN':用于身份验证的 Tableau 会话令牌。
服务器配置 (供 MCP 客户端使用)
MCP 客户端(如 Claude Desktop)需要配置如何启动并连接到这个 MCP 服务器。你需要将以下信息添加到客户端的服务器配置中(通常是一个 JSON 配置文件,例如 'settings.json'):
- 'name': 服务器名称,可以设置为 '"vizql-data-service"'。
- 'command': 用于启动服务器进程的命令。如果安装了 'uv' 并且它在你的系统 PATH 中,通常是 '"uv"'。如果不在 PATH 中,需要填写 'uv' 可执行文件的完整路径。
- 'args': 传递给 'command' 的参数列表。对于本项目,参数应为 '["run", "--directory", "/你的项目绝对路径", "vds.py"]'。请将 '/你的项目绝对路径' 替换为你克隆 'test-tableau-mcp' 仓库的绝对文件系统路径。
例如,在 Claude Desktop 的 'settings.json' 中,你可能需要添加一个类似以下的服务器条目(注意,客户端配置格式可能不同,这里只是示意你需要提供的核心信息):
{ // ... 其他配置 "servers": [ { "name": "vizql-data-service", "command": "uv", // 或 "/path/to/uv" "args": ["run", "--directory", "/home/user/test-tableau-mcp", "vds.py"] // 将此路径替换为你的实际路径 } // ... 其他服务器 ] }
配置完成后,MCP 客户端应该能够启动并连接到此服务器。
基本使用方法
配置并在 MCP 客户端中启用此服务器后,你可以通过 LLM 客户端与服务器提供的工具进行交互:
- 查询数据: 通过与 LLM 对话,让其调用 'query_datasource' 工具,并提供 Tableau VizQL Data Service 所需的查询参数(通常是包含 'fields' 和可选 'filters' 的字典)。服务器将执行查询并返回结果。
- 列出字段: 通过与 LLM 对话,让其调用 'list_fields' 工具。服务器将获取配置的数据源字段元数据并返回。
具体的 LLM 交互方式取决于你使用的 MCP 客户端和 LLM 模型。
信息
分类
商业系统