Tableau自然语言查询工具

通过集成MCP和LangChain,为Tableau Server或Tableau Cloud提供自然语言查询功能,支持通过Web界面或仪表板扩展与数据进行交互。

  • by TheInformationLab
  • Python
  • 本地部署
  • 29 星标
  • 更新于
在 GitHub 查看 TheInformationLab/tableau_mcp_starter_kit

使用说明

Tableau MCP入门套件

一个强大的集成,使用MCP和LangChain将AI功能带到Tableau Server或Tableau Cloud,实现与您在Tableau中信任的数据的自然语言交互。

此repo是 mcp表 在LangChain的基础上使用MCP工具 tableau-langchain-starter-kit.

🚀 特性

  • Tableau数据的自然语言查询
  • 可通过Web界面或仪表板扩展程序使用
  • 同时支持Tableau Server和Tableau Cloud

📋 先决条件

在开始之前,请确保您拥有以下内容:

⚠️ 警告

使用此代码时,Tableau中的数据将被发送到外部AI模型(默认情况下为OpenAI)。对于学习和测试,强烈建议使用Tableau附带的Superstore数据集。

如果您需要处理敏感或专有信息,请考虑将该工具配置为使用本地AI模型而不是外部服务。这种方法可确保您的数据保留在组织的基础设施中,并降低数据暴露的风险。

📺 Tableau MCP快速入门指南

如果您还没有尝试Tableau MCP,我建议您使用Claude desktop和VSCode等桌面应用程序进行测试。你可以在下面找到我的快速入门教程的链接。

📺 升级指南

🛠️ 安装

1.安装Tableau MCP

git clone https://github.com/tableau/tableau-mcp.git
cd tableau-mcp

从 安装指南

安装Node.js(使用22.15.0 LTS测试)

npm install
npm run build

2.克隆初学者工具包库

git clone https://github.com/TheInformationLab/tableau_mcp_starter_kit.git
cd tableau_mcp_starter_kit

3.创建虚拟环境

创建虚拟环境有助于隔离项目依赖关系:

python -m venv .venv

4.激活虚拟环境

窗户:

.venv\Scripts\activate

macOS/Linux:

source .venv/bin/activate

💡 提示: 你应该看看 (.venv) 当虚拟环境处于活动状态时,在命令提示符的开头。

5.安装依赖项

pip install -r requirements.txt

如果您遇到任何安装问题,请先尝试升级pip:

pip install --upgrade pip

⚙️ 配置

环境变量设置

  1. 复制模板环境文件:
cp .env_template .env
  1. 打开 .env 在首选文本编辑器中创建文件,并配置以下变量:
# Tableau MCP Server Config
TRANSPORT='stdio'
SERVER='https://my-tableau-server.com'
SITE_NAME='TableauSiteName'
PAT_NAME='Tableau Personal Access Token (PAT) Name'
PAT_VALUE='Tableau Personal Access Token (PAT) Secret Key'

# Tableau MCP Server Optional Configs
DATASOURCE_CREDENTIALS=''
DEFAULT_LOG_LEVEL='debug'
INCLUDE_TOOLS=''
EXCLUDE_TOOLS=''
MAX_RESULT_LIMIT=''
DISABLE_QUERY_DATASOURCE_FILTER_VALIDATION=''

# Local Filepath Config
TABLEAU_MCP_FILEPATH='your/local/filepath/to/tableau-mcp/build/index.js'

# Model Providers
OPENAI_API_KEY='from OpenAI developer portal'

# Langfuse 
LANGFUSE_PUBLIC_KEY = 'Public key from https://langfuse.com/'
LANGFUSE_SECRET_KEY = 'Secret key from https://langfuse.com/'
LANGFUSE_HOST = 'https://cloud.langfuse.com'

# Custom MCP Tool Extra Configs
# from: https://github.com/wjsutton/tableau-mcp-experimental
FIXED_DATASOURCE_LUID='unique identifier for a data source found via the graphql metadata API'

⚠️ 安全说明: 永远不要承诺你的 .env 文件到版本控制。它已经包含在 .gitignore.

🏃‍♂️ 运行应用程序

Web界面模式

启动具有仪表板扩展支持的完整web应用程序:

python web_app.py

运行后,打开浏览器并导航到:

  • 地方发展: http://localhost:8000
  • 应用程序将在终端中显示正确的URL

您现在可以用自然语言提问:

  • “客户满意度的趋势是什么?”
  • “比较第一季度和第二季度的收入”
  • “显示销售数据中的异常值”

您还可以使用仪表板扩展支持运行此web应用程序。

运行后,打开Tableau工作簿,或 超市仪表盘

在仪表板页面的左下角菜单中,拖动仪表板扩展、本地扩展,然后选择 tableau@langchain.trex 从dashboard_exxtension文件夹中。

自定义仪表板扩展

脚本 dashboard_app.py 配置为仅使用单个数据源,使用来自的自定义工具 https://github.com/wjsutton/tableau-mcp-experimental.

着手做

  1. 安装自定义工具:
git clone https://github.com/wjsutton/tableau-mcp-experimental.git
cd tableau-mcp-experimental
  1. 使用Node.js(使用22.15.0 LTS测试)执行:
npm install
npm run build
  1. 返回Tableau MCP入门套件:
cd ..
cd tableau_mcp_starter_kit
  1. 在dashboard_app.py中,更新: Line 36: mcp_location tableau-mcp实验的本地文件路径

  2. 找到你的数据源流体,你可以使用 实用程序/find_datasource_luid.gql 以查询您的Tableau服务器/云的元数据API。

  3. 在.env中,将数据源luid添加到FIXED_datasource_luid环境变量中。

  4. 运行dashboard_app脚本

python dashboard_app.py

验证应用程序是否正在运行,打开浏览器并导航到:

  • 地方发展: http://localhost:8000
  • 应用程序将在终端中显示正确的URL

运行后,打开Tableau工作簿,或 超市仪表盘

在仪表板页面的左下角菜单中,拖动仪表板扩展、本地扩展,然后选择 tableau@langchain.trex 从dashboard_exxtension文件夹中。

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🤝 参与

🙏 致谢


⭐ 如果你觉得这个项目有帮助,请考虑给它一颗星!