关于 test-tableau-mcp
test-tableau-mcp 是一个原型项目,通过 MCP 服务暴露 Tableau VDS 端点,供 Claude Desktop 接入;需要配置端点信息、数据源 LUID 和会话令牌。
主要功能
- 01暴露 Tableau VDS 端点
- 02连接 Claude Desktop
- 03配置数据源与会话令牌
适用场景
- 01在 Claude Desktop 中查询 Tableau VDS 数据源
- 02原型验证通过 MCP 访问 VDS 端点
MCP 相关
作为 MCP 服务向 Claude Desktop 提供 Tableau VDS 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
test-tableau-mcp
该项目是一个快速原型,可通过 MCP 服务公开 Tableau VDS 端点,并将其与 Claude Desktop 客户端集成。
如需运行此 MCP 服务并将其连接到 Claude Desktop,请按照以下步骤操作。这些说明改编自 MCP 操作指南。这些说明假定你使用的是 MacOS/Linux。如果你使用 Windows,请参阅上面链接的操作指南。
系统要求
已安装 Python 3.10 或更高版本。 必须使用 Python MCP SDK 1.2.0 或更高版本。
设置环境
如果尚未安装 UV,请先安装。
curl -LsSf https://astral.sh/uv/install.sh | sh
之后请务必重启终端,以确保能够识别 uv 命令。
现在,创建并设置虚拟环境:
# Create virtual environment and activate it
uv venv
source .venv/bin/activate
# Install dependencies
uv add "mcp[cli]" httpx
硬编码所需的环境变量
这个简单的原型要求你在 vds.py 文件中硬编码 4 个变量:
- 在
VIZQL_API_BASE中填写你的服务端 URL - 在
METADATA_GRAPHQL中填写你的服务端 URL - 在
DS_LUID中填写你要查询的数据源的 LUID - 在
AUTH_TOKEN中填写有效的会话令牌
运行服务
uv --directory <ABSOLUTE PATH TO PROJECT> run vds.py
使用 Claude for Desktop 测试服务
首先,确保已安装 Claude for Desktop。你可以在此处安装最新版本。如果已经安装 Claude for Desktop,请确保已更新到最新版本。
我们需要为要使用的 MCP 服务配置 Claude for Desktop。为此,请在文本编辑器中打开 Claude for Desktop 应用配置文件 ~/Library/Application Support/Claude/claude_desktop_config.json。如果该文件不存在,请先创建。
例如,如果已安装 VS Code:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
然后,在 mcpServers 键中添加服务。只有至少正确配置了一个服务,MCP UI 元素才会显示在 Claude for Desktop 中。
在本例中,我们将按如下方式添加单个 vds 服务:
{
"mcpServers": {
"vds": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/test-tableau-mcp/",
"run",
"vds.py"
]
}
}
}
你可能需要在 command 字段中填写 uv 可执行文件的完整路径。你可以在 MacOS/Linux 上运行 which uv,或在 Windows 上运行 where uv 来获取该路径。
这会告诉 Claude for Desktop:
有一个名为“vds”的 MCP 服务。运行 uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/ run vds.py 来启动它。保存文件,然后重启 Claude for Desktop。
在 Claude 中运行查询以触发工具
MCP 工具不会明确传递 VDS API 语法,因此请在会话开始时传入一些上下文示例,向 Claude 展示如何正确格式化 Query 对象。你可以复制 samples.py 中的字典数组。向 Claude 发送如下初始消息:
请确保根据以下语法生成负载:
in_context_samples = [
{
"fields": [
{ "fieldCaption": "Segment" },
{ "fieldCaption": "Sales", "function": "SUM" }
]
},
{
"fields": [
{ "fieldCaption": "Category" },
{ "fieldCaption": "Profit", "function": "SUM", "sortDirection": "DESC" }
]
},
{
"fields": [
{ "fieldCaption": "State/Province" },
{ "fieldCaption": "Sales", "function": "SUM", "sortDirection": "DESC" }
],
"filters": [
{
"field": { "fieldCaption": "Segment" },
"filterType": "SET",
"values": ["Consumer"],
"exclude": false
},
{
"field": { "fieldCaption": "Order Date" },
"filterType": "RANGE",
"min": "2021-01-01",
"max": "2021-12-31"
}
],
"limit": 5
}
]
do the states with the most sales also have the most profit?
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。