open-index/open-npm huggingface dataset:
npm package: @mob999/cube_mcp
Description: An official semantic layer MCP server for Cube.js
Author: Your Name
Latest version: 1.0.7

# Cube.js TypeScript MCP Server

This is a standalone Model Context Protocol (MCP) server for [Cube.js](https://cube.dev/), written in TypeScript using the official `@cubejs-client/core` SDK. 

It provides advanced AI assistants (like Claude, Cursor, etc.) with semantic layer visibility and multi-dimensional querying capabilities over your data.

## Features
- **`discover_entities`**: Introspects the Cube.js metadata (`/meta`) and explains the available Cubes, Dimensions, and Measures to the LLM.
- **`execute_query`**: Executes semantic queries (`/load`) with support for Cube query fields like filters, sorting, time dimensions, pagination, timezone, and result truncation.

## Prerequisites
- Node.js (v18 or higher recommended)
- A running instance of Cube.js

## Quick Start

You can run the published MCP server directly without installing it manually:
```bash
npx -y @mob999/cube_mcp
```

## Local Development & Build

1. **Install dependencies:**
   ```bash
   npm install
   ```

2. **Build the TypeScript source:**
   ```bash
   npm run build
   ```
   *This compiles the TypeScript code into the `dist/` directory.*

## Development & Testing
- **Run Tests:** `npm test`
- **Lint Code:** `npm run lint`

## Query Features

`execute_query` supports:

- `measures`
- `dimensions`
- `filters`
- `timeDimensions`
- `segments`
- `limit`
- `rowLimit`
- `offset`
- `order`
- `timezone`
- `renewQuery`
- `ungrouped`
- `responseFormat`
- `total`

Example:

```json
{
  "entity_name": "Components",
  "measures": ["Components.count"],
  "dimensions": ["Components.id"],
  "timeDimensions": [
    {
      "dimension": "Components.createdAt",
      "granularity": "day",
      "dateRange": ["2026-01-01", "2026-01-31"]
    }
  ],
  "order": [
    { "member": "Components.count", "direction": "desc" },
    { "member": "Components.id", "direction": "asc" }
  ],
  "limit": 100,
  "rowLimit": 500,
  "offset": 0,
  "timezone": "UTC",
  "responseFormat": "compact",
  "total": true
}
```

## Configuration

By default, the server expects your Cube.js API to be available at `http://localhost:4000/cubejs-api/v1`. 

You can override this by setting the `CUBEJS_API_URL` environment variable.

To integrate this semantic layer into Cursor or any other MCP-compatible IDE/Agent, configure it as a **stdio** tool.

**Example `mcp.json` / Client Configuration:**

```json
{
  "mcpServers": {
    "CubeSemanticLayer": {
      "command": "npx",
      "args": ["-y", "@mob999/cube_mcp"],
      "env": {
        "CUBEJS_API_URL": "http://localhost:4000/cubejs-api/v1"
      }
    }
  }
}
```

*Note: The `-y` flag allows `npx` to automatically download and run the package without prompting for confirmation.*
npm package: @mobajl/eslint-config
Description: ESLint configuration for Mobajl
Author: johan.kanefur@mybonus.com
Latest version: 1.2.1

# @mobajl/eslint-config

ESLint configuration for Mobajl.

## Usage

```sh
$ yarn add -D @mobajl/eslint-config
```

Add `.eslintrc.js`:

```js
module.exports = {
	extends: ['@mobajl/eslint-config'],
	// Project specific configuration...
}
```
npm package: @mobajl/prettier-config
Description: Prettier configuration for Mobajl
Author: Johan Kanefur
Latest version: 1.0.1

# @mobajl/prettier-config

Prettier configuration for Mobajl.

## Usage

```sh
$ yarn add -D @mobajl/prettier-config
```

In `package.json` add:

```js
{
	"prettier": "@mobajl/prettier-config"
}
```

Or if you don't want it in your `package.json`:

```sh
$ echo '"@mobajl/prettier-config"' > .prettierrc.json
```

Or if you need to extend it, add `.prettierrc.js`:

```js
module.exports = {
	...require("@mobajl/prettier-config"),
	// Do your thing...
	semi: false,
};
```