一个强大的集成方案,通过MCP和LangChain将AI功能引入Tableau Server或Tableau Cloud,使您能够以自然语言与信任的数据进行交互。
此仓库是使用MCP工具和LangChain实现的tableau-mcp,基于Tableau LangChain 起始工具包。
在开始之前,请确保您拥有以下内容:
使用此代码时,Tableau中的数据将发送到外部AI模型(默认为OpenAI)。为了学习和测试,强烈建议使用随Tableau附带的Superstore数据集。
如果您需要处理敏感或专有信息,请考虑将工具配置为使用本地AI模型而不是外部服务。这种方法确保您的数据保留在组织的基础设施内,并减少数据暴露的风险。
如果您尚未尝试过Tableau MCP,我推荐您使用桌面应用程序如Claude Desktop和VSCode进行测试。您可以在下方找到我的快速入门教程链接。
<div align="center"> <a href="https://www.youtube.com/watch?v=hmdzDlMBraw"> <img src="https://img.youtube.com/vi/hmdzDlMBraw/maxresdefault.jpg" width ="48%"> </a> <a href="https://www.youtube.com/watch?v=opbXLGZDKdU"> <img src="https://img.youtube.com/vi/opbXLGZDKdU/maxresdefault.jpg" width ="48%"> </a> </div>git clone https://github.com/tableau/tableau-mcp.git
cd tableau-mcp
从安装指南
安装Node.js(已测试版本22.15.0 LTS)
npm install
npm run build
git clone https://github.com/TheInformationLab/tableau_mcp_starter_kit.git
cd tableau_mcp_starter_kit
创建虚拟环境有助于隔离项目依赖项:
python -m venv .venv
Windows:
.venv\Scripts\activate
macOS/Linux:
source .venv/bin/activate
💡 提示: 当虚拟环境激活时,您应该会在命令提示符的开头看到 (.venv)。
pip install -r requirements.txt
如果遇到任何安装问题,请先升级pip:
pip install --upgrade pip
cp .env_template .env
.env文件并配置以下变量:# Tableau MCP 服务器配置
TRANSPORT='stdio'
SERVER='https://my-tableau-server.com'
SITE_NAME='TableauSiteName'
PAT_NAME='Tableau 个人访问令牌 (PAT) 名称'
PAT_VALUE='Tableau 个人访问令牌 (PAT) 密钥'
# Tableau MCP 服务器可选配置
DATASOURCE_CREDENTIALS=''
DEFAULT_LOG_LEVEL='debug'
INCLUDE_TOOLS=''
EXCLUDE_TOOLS=''
MAX_RESULT_LIMIT=''
DISABLE_QUERY_DATASOURCE_FILTER_VALIDATION=''
# 本地文件路径配置
TABLEAU_MCP_FILEPATH='your/local/filepath/to/tableau-mcp/build/index.js'
# 模型提供商
OPENAI_API_KEY='来自 OpenAI 开发者门户'
# Langfuse
LANGFUSE_PUBLIC_KEY = '来自 https://langfuse.com/ 的公共密钥'
LANGFUSE_SECRET_KEY = '来自 https://langfuse.com/ 的私有密钥'
LANGFUSE_HOST = 'https://cloud.langfuse.com'
# 自定义 MCP 工具额外配置
# 来自: https://github.com/wjsutton/tableau-mcp-experimental
FIXED_DATASOURCE_LUID='通过 GraphQL 元数据 API 找到的数据源唯一标识符'
⚠️ 安全提示: 切勿将您的.env文件提交到版本控制中。它已经包含在.gitignore中。
启动带有仪表板扩展支持的完整Web应用程序:
python web_app.py
运行后,在浏览器中导航至:
http://localhost:8000现在您可以使用自然语言提问:
您也可以使用带有仪表板扩展支持的Web应用程序。
运行后,打开您的Tableau工作簿,或Superstore仪表板
在仪表板页面上,在左下角菜单中拖动仪表板扩展,本地扩展,并从dashboard_extension文件夹中选择tableau_langchain.trex。
脚本dashboard_app.py配置为仅使用单个数据源,使用来自https://github.com/wjsutton/tableau-mcp-experimental的自定义工具。
要执行
git clone https://github.com/wjsutton/tableau-mcp-experimental.git
cd tableau-mcp-experimental
npm install
npm run build
cd ..
cd tableau_mcp_starter_kit
在dashboard_app.py中更新:第36行: mcp_location为tableau-mcp-experimental的本地文件路径。
查找您的数据源luid,您可以使用utilities/find_datasource_luid.gql查询您的Tableau Server / Cloud的元数据API。
在.env中添加您的数据源luid到FIXED_DATASOURCE_LUID环境变量。
运行dashboard_app脚本
python dashboard_app.py
验证应用是否正在运行,在浏览器中导航至:
http://localhost:8000运行后,打开您的Tableau工作簿,或Superstore仪表板
在仪表板页面上,在左下角菜单中拖动仪表板扩展,本地扩展,并从dashboard_extension文件夹中选择tableau_langchain.trex。
本项目采用MIT许可证 - 详情见LICENSE文件。
⭐ 如果您发现这个项目有用,请考虑给它一个星!