Cube MCP Server
# Deprecation notice
> ⚠️ **This package is deprecated.**
>
> The local MCP server has been deprecated in favor of the [Cube Remote MCP Server](https://docs.cube.dev/reference/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](https://docs.cube.dev/reference/embed-apis/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)
## MCP Client Configuration
### Cursor or Claude Desktop Configuration
For Cursor and Claude Desktop, add this to your MCP settings:
#### For Internal Cube Users
```json
{
"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
```json
{
"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.
TDQS
Scored across 1 tool
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.