ThoughtSpot
STREAMABLE HTTPHTTP-SSEOfficialThoughtSpot数据分析查询MCP服务器
ThoughtSpot数据分析查询MCP服务器
The ThoughtSpot MCP Server provides secure OAuth-based authentication and a set of tools for querying and retrieving relevant data from your ThoughtSpot instance. It's a remote server hosted on Cloudflare.
If you do not have a Thoughtspot account, create one for free here.
Learn more about ThoughtSpot.
Join our Discord to get support.
If using a client which supports remote MCPs natively (Claude.ai etc) then just enter:
MCP Server URL:
https://agent.thoughtspot.app/mcp
Preferred Auth method: Oauth
https://agent.thoughtspot.app/openai/mcp
To configure this MCP server in your MCP client (such as Claude Desktop, Windsurf, Cursor, etc.) which do not support remote MCPs, add the following configuration to your MCP client settings:
{ "mcpServers": { "ThoughtSpot": { "command": "npx", "args": [ "mcp-remote", "https://agent.thoughtspot.app/mcp" ] } } }
See the Troubleshooting section for any errors / more details.
See the video below for a complete demo.
Here is a demo video using Claude Desktop.
https://github.com/user-attachments/assets/72a5383a-7b2a-4987-857a-b6218d7eea22
Watch on Loom
ThoughtSpot's remote MCP server can be used in LLM APIs which support calling MCP tools.
Here are examples with the common LLM providers:
curl https://api.openai.com/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-4.1", "tools": [ { "type": "mcp", "server_label": "thoughtspot", "server_url": "https://agent.thoughtspot.app/bearer/mcp", "headers": { "Authorization": "Bearer $TS_AUTH_TOKEN", "x-ts-host": "my-thoughtspot-instance.thoughtspot.cloud" } } ], "input": "How can I increase my sales ?" }'
More details on how can you use OpenAI API with MCP tool calling can be found here.
curl https://api.anthropic.com/v1/messages \ -H "Content-Type: application/json" \ -H "X-API-Key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "anthropic-beta: mcp-client-2025-04-04" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 1000, "messages": [{ "role": "user", "content": "How do I increase my sales ?" }], "mcp_servers": [ { "type": "url", "url": "https://agent.thoughtspot.app/bearer/mcp", "name": "thoughtspot", "authorization_token": "[email protected]" } ] }'
Note: In the authorization_token field we have suffixed the ThoughtSpot instance host as well with the @ symbol to the TS_AUTH_TOKEN.
More details on Claude MCP connector here.
MCP tools can be used with the Gemini Python/Typescript SDK. Here is an example using typescript:
import { GoogleGenAI, FunctionCallingConfigMode , mcpToTool} from '@google/genai'; import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"; // Create server parameters for stdio connection const serverParams = new StreamableHTTPClientTransport(new URL("https://agent.thoughtspot.app/bearer/mcp"), { requestInit: { headers: { "Authorization": "Bearer $TS_AUTH_TOKEN", // Read below how to get the $TS_AUTH_TOKEN "x-ts-host": "my-thoughtspot-instance.thoughtspot.cloud" }, } }); const client = new Client( { name: "example-client", version: "1.0.0" } ); // Configure the client const ai = new GoogleGenAI({}); // Initialize the connection between client and server await client.connect(serverParams); // Send request to the model with MCP tools const response = await ai.models.generateContent({ model: "gemini-2.5-flash", contents: `What is the weather in London in ${new Date().toLocaleDateString()}?`, config: { tools: [mcpToTool(client)], // uses the session, will automatically call the tool // Uncomment if you **don't** want the sdk to automatically call the tool // automaticFunctionCalling: { // disable: true, // }, }, }); console.log(response.text) // Close the connection await client.close();
Read this, for more details on Gemini API MCP tool calling.
An example using Google ADK + Python can be found here.
ThoughtSpot MCP server can also be installed as a Gemini CLI extension.
gemini extensions install https://github.com/thoughtspot/mcp-server
Read more about Gemini CLI here.
For API usage, you would the token endpoints with a secret_key to generate the API_TOKEN for a specific user/role, more details here.
ping: Test connectivity and authentication.getRelevantQuestions: Get relevant data questions from ThoughtSpot analytics based on a user query.getAnswer: Get the answer to a specific question from ThoughtSpot analytics.createLiveboard: Create a liveboard from a list of answers.getDataSourceSuggestions: Get datasource suggestions for a given query.datasources: List of ThoughtSpot Data models the user has access to.For MCP hosts which do not(yet) support Dynamic client registration, or they require statically adding Oauth Client Id etc. Go to this page, to register a new client and copy the details over. The most relevant values are Oauth Client Id and Oauth Client Secret which should be added when adding ThoughtSpot as an MCP connector in the MCP client (ChatGPT/Claude etc). The generated client details are only available when they are generated and are NOT available later for reference.
Manual client registration also allows to associate with a specific ThoughtSpot instance, so that your users do not have to enter the Thoughtspot instance URL when doing the authorization flow. While registering the Oauth client add ThoughtSpot URL to the appropriate value.
Use the published docker image to deploy the MCP server in your own environment.
See this for details.
If you are unable to use the remote MCP server due to connectivity restrictions on your Thoughtspot instance. You could use the stdio local transport using the npm package.
Here is how to configure stdio with MCP Client:
{ "mcpServers": { "ThoughtSpot": { "command": "npx", "args": [ "@thoughtspot/mcp-server" ], "env": { "TS_INSTANCE": "<your Thoughtspot Instance URL>", "TS_AUTH_TOKEN": "<ThoughtSpot Access Token>" } } } }
TS_AUTH_TOKEN ?TS_AUTH_TOKENOauth errors due to CORS/SAML.
Make sure to add the following entries in your ThoughtSpot instance:
CORS
SAML (need to be Admin)
MCP server install error due to node issues
node -v500 error from MCP server
Stale MCP auth
rm -rf ~/.mcp-auth.npm install
.dev.vars and fill in your ThoughtSpot instance URL and access token.npm run dev
/mcp: MCP HTTP Streaming endpoint/sse: Server-sent events for MCP/api: MCP tools exposed as HTTP endpoints/authorize, /token, /register: OAuth endpoints/bearer/mcp, /bearer/sse: MCP endpoints as bearer auth instead of Oauth, mainly for use in APIs or in cases where Oauth is not working.MCP Server, © ThoughtSpot, Inc. 2025