mcp_cube_server
MCP Server for Interacting with Cube Semantic Layers
claude mcp add --transport stdio isaacwasserman-mcp_cube_server node server.js \ --env CUBE_API_BASE="https://your-cube-api-base-url" \ --env CUBE_API_TOKEN="YOUR_CUBE_API_TOKEN (if required)" \ --env DATASET_DEFAULT="default-dataset-name"
How to use
This MCP server exposes tools for interacting with a Cube Semantic Layer deployment. It provides two main tools: read_data and describe_data. The describe_data tool returns a description of the data available in the Cube deployment, acting as an agentic version of the context description. The read_data tool queries the Cube REST API and returns results in YAML along with a unique data identifier. Clients can reference that data_id to retrieve a JSON representation of the data via the data://{data_id} resource for downstream formatting or processing. To use, initialize the MCP client with the server and invoke describe_data to discover what data is available, then use read_data with appropriate query parameters to fetch the actual data.
How to install
Prerequisites:
- Node.js (LTS version) and npm installed
- Access to a Cube deployment and its REST API (or test endpoint)
Installation steps:
-
Clone the repository (or install the MCP server package if published): git clone https://github.com/isaacwasserman/mcp_cube_server.git cd mcp_cube_server
-
Install dependencies: npm install
-
Configure environment variables:
- Create a .env file or export variables: CUBE_API_BASE=https://your-cube-api-base-url CUBE_API_TOKEN=YOUR_CUBE_API_TOKEN (if required) DATASET_DEFAULT=default-dataset-name
-
Start the MCP server: npm start
or if using node directly:
node server.js
-
Verify startup logs indicate the MCP server is listening and ready to serve MCP tool calls.
Additional notes
Notes and tips:
- Ensure the Cube REST API base URL is reachable from where the MCP server runs.
- If the Cube API requires authentication, provide CUBE_API_TOKEN or corresponding auth headers as needed by your environment.
- The data results from read_data are provided in YAML with a data_id; use data://{data_id} to fetch the JSON representation when needed.
- If you run into port conflicts, adjust the server listening port in the server configuration or environment variables.
- When upgrading the server, re-install dependencies and re-run the server to pick up changes.
- For debugging, enable verbose logging if supported by the server to trace requests to the Cube API.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP