
ThoughtSpot
OfficialConnect to your ThoughtSpot analytics instance via OAuth to query data and retrieve insights. Remote server hosted on Cloudflare with no local setup required.
OAuth-based analytics data querying from ThoughtSpot instances
What it does
- Query ThoughtSpot analytics data
- Retrieve insights from ThoughtSpot dashboards
- Authenticate via OAuth with ThoughtSpot instances
- Access ThoughtSpot data through secure API calls
Best for
About ThoughtSpot
ThoughtSpot is an official MCP server published by thoughtspot that provides AI assistants with tools and capabilities via the Model Context Protocol. Query and analyze ThoughtSpot data securely via OAuth-powered connections to ThoughtSpot instances for fast, governed in It is categorized under developer tools, analytics data.
How to install
You can install ThoughtSpot in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server supports remote connections over HTTP, so no local installation is required.
License
ThoughtSpot is released under the NOASSERTION license.
ThoughtSpot MCP Server
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.
Table of Contents
- Connect
- Usage
- Demo video
- Usage in APIs
- Features
- Manual client registration
- How to obtain a TS_AUTH_TOKEN
- Troubleshooting
- Contributing
Connect
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
- For OpenAI ChatGPT Deep Research, add the URL as:
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.
Usage
- Once the connection is done, ThoughtSpot datasources would show under the resources section.
- Select a datasource (resource), to set the context of your query.
- Now you could ask analytical questions, which claude can decide to use the relevant ThoughtSpot tools for.
See the video below for a complete demo.
Demo
Here is a demo video using Claude Desktop.
https://github.com/user-attachments/assets/72a5383a-7b2a-4987-857a-b6218d7eea22
Watch on Loom
Usage in APIs
ThoughtSpot's remote MCP server can be used in LLM APIs which support calling MCP tools.
Here are examples with the common LLM providers:
OpenAI Responses API
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.
Claude MCP Connector
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.
Gemini API
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.
Gemini CLI extenstions
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.
How to get TS_AUTH_TOKEN for APIs ?
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.
Features
- OAuth Authentication: Access your data, as yourself.
- Dynamic Client Registration (DCR) support.
- Any MCP host is allowed. Let's make the world fact driven.
- Tools:
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.
- MCP Resources:
datasources: List of ThoughtSpot Data models the user has access to.
Supported transports
- SSE https://agent.thoughtspot.app/sse
- Streamed HTTP https://agent.thoughtspot.app/mcp
Manual client registration
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.
Associate with a ThoughtSpot instance
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.
How to obtain a TS_AUTH_TOKEN ?
- Go to ThoughtSpot => Develop => Rest Playground v2.0
- Authentication => Get Full access token
- Scroll down and expand the "body"
- Add your "username" and "password".
- Put whatever "validity_time" you want the token to be.
- Click on "Try it out" on the bottom right.
- You should get a token in the response, thats the bearer token.
Alternative way to get TS_AUTH_TOKEN
- Login to the ThoughtSpot instance as you would normally.
- Opem in a new tab this URL:
- You will see a JSON response, copy the "token" value (without the quotes).
- This is the token you could use.
Troubleshooting
Oauth errors due to CO
README truncated. View full README on GitHub.
Alternatives
Related Skills
Browse all skillsExport OpenClaw usage data to CSV for analytics tools like Power BI. Hourly aggregates by activity type, model, and channel.
Use when building MCP servers or clients that connect AI systems with external tools and data sources. Invoke for MCP protocol compliance, TypeScript/Python SDKs, resource providers, tool functions.
CCXT cryptocurrency exchange library for TypeScript and JavaScript developers (Node.js and browser). Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors. Use when working with crypto exchanges in TypeScript/JavaScript projects, trading bots, arbitrage systems, or portfolio management tools. Includes both REST and WebSocket examples.
.NET/C# backend developer for ASP.NET Core APIs with Entity Framework Core. Builds REST APIs, minimal APIs, gRPC services, authentication with Identity/JWT, authorization, database operations, background services, SignalR real-time features. Activates for: .NET, C#, ASP.NET Core, Entity Framework Core, EF Core, .NET Core, minimal API, Web API, gRPC, authentication .NET, Identity, JWT .NET, authorization, LINQ, async/await C#, background service, IHostedService, SignalR, SQL Server, PostgreSQL .NET, dependency injection, middleware .NET.
Build full-stack applications with Supabase (PostgreSQL, Auth, Storage, Real-time, Edge Functions). Use when implementing authentication, database design with RLS, file storage, real-time features, or serverless functions.
Senior Python developer expertise for writing clean, efficient, and well-documented code. Use when: writing Python code, optimizing Python scripts, reviewing Python code for best practices, debugging Python issues, implementing type hints, or when user mentions Python, PEP 8, or needs help with Python data structures and algorithms.