项目简介
ThoughtSpot MCP 服务器是基于 Model Context Protocol (MCP) 构建的应用后端,用于连接 ThoughtSpot 商业智能和数据分析平台。它使得支持 MCP 协议的 LLM 客户端(如 Claude Desktop, Windsurf 等)能够通过标准化的方式访问 ThoughtSpot 中的数据资源并调用其数据分析功能。
主要功能点
该 MCP 服务器通过 MCP 协议向 LLM 提供以下能力:
- 数据资源 (Resources) 访问: 允许 LLM 发现并访问用户在 ThoughtSpot 中有权限的数据模型(Worksheets)。LLM 可以通过资源描述了解数据模型的概况。
- 工具 (Tools) 调用: 提供一套工具供 LLM 使用,包括:
- 'ping': 测试服务器连接和认证状态。
- 'getRelevantQuestions': 根据用户的自然语言查询,从 ThoughtSpot 中获取相关的数据分析问题建议。
- 'getAnswer': 获取针对特定数据分析问题的答案(通常以 CSV 格式返回数据),并提供创建 Liveboard 所需的信息。
- 'createLiveboard': 根据 LLM 获取的一个或多个答案信息,在 ThoughtSpot 中创建一个 Liveboard(仪表盘)。
- 认证: 使用 OAuth 实现安全认证,确保 LLM 客户端以用户的身份访问 ThoughtSpot 数据。
- 多种传输协议: 支持通过 Streamed HTTP 和 Server-Sent Events (SSE) 进行远程连接,同时也提供基于 Stdio 的本地连接作为备选。
安装步骤
该项目可以部署为 Cloudflare Worker (远程服务) 或作为 Node.js 应用 (本地服务) 运行。
- 作为 Cloudflare Worker 部署: 这是 ThoughtSpot 推荐的部署方式,服务器托管在 Cloudflare 上。具体部署过程通常涉及 Cloudflare Wrangler CLI 工具,配置相关的环境变量和绑定。详情请参考 ThoughtSpot 官方文档或仓库的贡献指南。
- 作为本地 Node.js 应用运行 (Stdio 模式): 这种模式适合在无法直接访问远程服务器的环境中使用。
- 安装 Node.js 和 npm。
- 安装 ThoughtSpot MCP Server npm 包(如果尚未安装):
npm install -g @thoughtspot/mcp-server - 配置 ThoughtSpot 实例 URL 和认证 Token: 需要设置两个环境变量:'TS_INSTANCE' 为你的 ThoughtSpot 实例完整 URL(例如 'https://your-instance.thoughtspot.cloud'),'TS_AUTH_TOKEN' 为你的 ThoughtSpot 访问令牌。
服务器配置 (为 MCP 客户端准备)
MCP 客户端需要知道如何连接到 ThoughtSpot MCP 服务器。以下是典型的配置方式,具体格式请参考你的 MCP 客户端说明:
-
远程连接 (Cloudflare Workers 部署): 通常客户端会通过 HTTP/SSE 连接到部署在 Cloudflare Workers 上的远程服务器。你需要配置服务器的启动命令和参数。
- 'server name': ThoughtSpot (或你给该连接起的名字)
- 'command': 'npx'
- 'args': '["mcp-remote", "https://agent.thoughtspot.app/sse"]'
- 'mcp-remote': 这是一个辅助命令,用于连接到远程 MCP 服务器。
- 'https://agent.thoughtspot.app/sse': 这是远程 ThoughtSpot MCP 服务器的 SSE 端点 URL。
-
本地连接 (Stdio 模式): 如果使用本地运行的 Node.js 应用,客户端通过 Stdio 连接。你需要配置服务器的启动命令、参数和必要的环境变量。
- 'server name': ThoughtSpot (或你给该连接起的名字)
- 'command': 'npx'
- 'args': '["@thoughtspot/mcp-server"]'
- '@thoughtspot/mcp-server': 这是本地安装的 ThoughtSpot MCP 服务器 npm 包的启动命令。
- 'env': 需要设置的环境变量,包括:
- 'TS_INSTANCE': 你的 ThoughtSpot 实例 URL (例如 'https://your-instance.thoughtspot.cloud')。
- 'TS_AUTH_TOKEN': 你的 ThoughtSpot 访问令牌。
如何获取 'TS_AUTH_TOKEN': 登录你的 ThoughtSpot 实例,导航到 "Develop" -> "Rest Playground v2.0"。在 "Authentication" 部分找到 "Get Full access token",输入你的 ThoughtSpot 用户名和密码,设置令牌有效期,然后点击 "Try it out"。响应中会包含 Bearer Token,即 'TS_AUTH_TOKEN'。
基本使用方法
一旦 ThoughtSpot MCP 服务器在你的 MCP 客户端中配置并连接成功,LLM 就可以开始与其交互:
- 发现数据源: LLM 可以通过 MCP 的 Resource Listing 功能获取 ThoughtSpot 中可用的数据模型列表(Resource)。
- 查询数据: LLM 可以利用 'getRelevantQuestions' 工具,结合用户的自然语言查询和已发现的数据源 ID,获取 ThoughtSpot 建议的相关分析问题。
- 获取答案: LLM 可以选择一个建议的问题,调用 'getAnswer' 工具获取该问题的分析结果数据。
- 创建 Liveboard: 如果用户需要将分析结果可视化,LLM 可以调用 'createLiveboard' 工具,将获取的答案整合成一个 Liveboard,并获取其 URL。
- 交互: LLM 将从服务器获取的数据(如 CSV 答案数据)或 Liveboard URL 呈现给用户,或进一步基于数据进行分析和回答。
信息
分类
商业系统