Cube MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cube MCP ServerShow me revenue trends for the last quarter"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Deprecation notice
⚠️ This package is deprecated.
The local MCP server has been deprecated in favor of the Cube Remote MCP Server, which is the recommended way to connect MCP clients to Cube.
If you need to build a custom local MCP server, you can use the Cube Chat API to power it.
This repository will no longer receive updates.
Cube MCP Server
A Model Context Protocol (MCP) server that provides chat functionality with Cube's AI agent for analytics and data exploration.
Features
This MCP server provides:
Tools
chat: Chat with Cube AI agent for analytics and data exploration (streams real-time responses)
Related MCP server: TalkDB
MCP Client Configuration
Cursor or Claude Desktop Configuration
For Cursor and Claude Desktop, add this to your MCP settings:
For Internal Cube Users
{
"mcpServers": {
"cube-mcp-server": {
"command": "npx",
"args": ["@cube-dev/mcp-server"],
"env": {
"CUBE_CHAT_API_URL": "https://ai.{cloudRegion}.cubecloud.dev/api/v1/public/{accountName}/agents/{agentId}/chat/stream-chat-state",
"CUBE_API_KEY": "your_api_key_here",
"INTERNAL_USER_ID": "analyst@yourcompany.com"
}
}
}
}For External Users
{
"mcpServers": {
"cube-mcp-server": {
"command": "npx",
"args": ["@cube-dev/mcp-server"],
"env": {
"CUBE_CHAT_API_URL": "https://ai.{cloudRegion}.cubecloud.dev/api/v1/public/{accountName}/agents/{agentId}/chat/stream-chat-state",
"CUBE_API_KEY": "your_api_key_here",
"EXTERNAL_USER_ID": "user-123"
}
}
}
}Obtaining Credentials
CUBE_CHAT_API_URL - Copy the complete Chat API URL from Admin → Agents → Click on Agent → Chat API URL field. This is the full endpoint URL for your agent.
CUBE_API_KEY - Navigate to Admin → API Keys to obtain your API key.
User Identity (choose one):
INTERNAL_USER_ID - Email address of an existing Cube user. Use this for internal team members who already have Cube accounts. The user's existing permissions and settings will be used.
EXTERNAL_USER_ID - A unique identifier for external/third-party users (e.g., "user-123", "customer@external.com"). Use this when you need to provide custom user attributes, groups, or row-level security settings.
Cube Chat Examples
Ask questions like "Show me revenue trends" or "What are our top products?" to get real-time analytics responses with data visualizations and SQL queries.
Architecture
Standard MCP server with tools, resources, and stdio transport. Integrates with Cube's streaming chat API using API key authentication and supports two types of user authentication:
Internal Users: Existing Cube users authenticated by their email address. They use their configured permissions and settings from Cube.
External Users: Third-party users with custom identifiers, allowing for dynamic user attributes, groups, and row-level security configuration.
Built with @modelcontextprotocol/sdk. The Chat API URL should be copied from your agent settings in the Cube admin panel.
Available Tools
1 toolchatB
Chat with Cube AI agent for analytics and data exploration. Returns streaming response with AI insights, tool calls, and data visualizations. Supports both external users (with custom attributes) and internal Cube users (with existing permissions).
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Your question or request for the Cube AI agent (e.g., 'Show me revenue trends for the last 6 months') | |
| externalId | No | Optional: External user ID for third-party users. Allows custom userAttributes and groups. Cannot be used with internalId. | |
| internalId | No | Optional: Internal user ID (email address) for existing Cube users. Uses their existing permissions. Cannot be used with externalId or userAttributes. | |
| userAttributes | No | Optional: Array of user attributes for row-level security (only valid with externalId). Each attribute has 'name' and 'value' properties. | |
| groups | No | Optional: Array of group names for authorization (only valid with externalId) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool 'Returns streaming response with AI insights, tool calls, and data visualizations,' which adds useful context about output behavior. However, it omits details like rate limits, error handling, or authentication requirements, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences that are front-loaded with core functionality. Each sentence adds value: the first states the purpose, the second describes the response format, and the third clarifies user support. There is no wasted text, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 5-parameter tool with no annotations and no output schema, the description is moderately complete. It covers the tool's purpose and user types but lacks details on error cases, performance expectations, or example outputs. This leaves room for improvement in guiding an AI agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing detailed documentation for all parameters. The description adds minimal semantic value beyond the schema, only implying user type distinctions (external vs internal). This meets the baseline for high schema coverage but doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Chat with Cube AI agent for analytics and data exploration.' It specifies the verb ('Chat'), resource ('Cube AI agent'), and domain ('analytics and data exploration'). However, since there are no sibling tools mentioned, it cannot demonstrate differentiation from alternatives, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by mentioning support for 'both external users (with custom attributes) and internal Cube users (with existing permissions),' which hints at when to use externalId vs internalId. However, it lacks explicit instructions on when to choose this tool over other analytics methods or clear exclusions, resulting in a moderate score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'chat' has a clearly distinct and singular purpose, focused on interacting with an AI agent for analytics and data exploration.
A single tool inherently exhibits perfect naming consistency, as there are no other tools to compare against. The name 'chat' is straightforward and follows a simple verb pattern, with no deviations or mixed conventions present.
A single tool is too few for a server named 'Cube MCP Server', which suggests a broader analytics and data exploration domain. While the tool is versatile, the lack of complementary tools (e.g., for data querying, visualization management, or user management) makes the surface feel thin and incomplete for the implied scope.
The tool set is severely incomplete for analytics and data exploration. Although 'chat' provides AI-driven insights, there are obvious gaps such as direct data retrieval, visualization creation, user permission management, or data manipulation tools. This will likely cause agent failures when attempting comprehensive workflows beyond conversational interactions.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
Bring Kubit into your AI workflow — query your warehouse with natural language
Ask business questions in plain English. Get instant answers from your database, no SQL needed.
Your Databricks Lakehouse in natural language: run SQL on your SQL warehouses, track long-running qu
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query and analyze data from Cube.js analytics platforms, allowing natural language access to cubes, measures, dimensions, and complex analytics queries.9MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language querying of databases with multi-turn conversations, auto-generated charts, and proactive monitoring via scheduled queries and alerts.1MIT
- AlicenseNot gradedqualityBmaintenanceLet AI agents create interactive visualizations that render live inside your chat — no code required.1BSD 3-Clause
- AlicenseNot gradedqualityCmaintenanceProvides AI assistants with semantic layer visibility and multi-dimensional querying capabilities over Cube.js data.331MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cubedevinc/cube-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server