Skip to main content
Glama
emilabd247

Jedox MCP Server

by emilabd247

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JEDOX_URLYese.g. http://localhost or your tunnel URL
JEDOX_PASSWORDYesPlain text or MD5 hash
JEDOX_USERNAMEYesJedox login user
JEDOX_TIMEOUT_MSNoPer-request timeout15000
JEDOX_PASSWORD_HASHEDNoSet true if password is MD5-hashedfalse

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
jedox_list_databasesA

List all databases (models) in the Jedox instance.

Returns an array of databases with their IDs, names, and structure counts. Use the returned 'id' field in all subsequent database operations.

By default, hides Jedox internal system databases. Set include_system=true to see them.

Returns: Array of { id, name, numberOfDimensions, numberOfCubes, status, typeLabel }

Example: Use this first to find the database_id before calling jedox_list_dimensions.

jedox_get_databaseA

Get detailed information about a specific Jedox database.

Args:

  • database_id: Numeric ID from jedox_list_databases

Returns: { id, name, numberOfDimensions, numberOfCubes, status, typeLabel }

jedox_create_databaseA

Create a new database (model) in Jedox.

Args:

  • name: Name for the new database

Returns: { id, name } of the created database.

After creation, use jedox_create_dimension to add dimensions, then jedox_create_cube to create cubes. Call jedox_save_database after structural changes to persist them to disk.

jedox_save_databaseA

Persist a Jedox database to disk.

IMPORTANT: Call this after making structural changes (creating/deleting dimensions or cubes) to ensure changes survive a server restart. Cell value writes do NOT require a save call.

Args:

  • database_id: Numeric ID of the database to save

Returns: { success: true }

jedox_delete_databaseA

Permanently delete a Jedox database and all its dimensions, cubes, and data.

WARNING: This is irreversible. All data in the database will be lost.

Args:

  • database_id: Numeric ID of the database to delete

Returns: { success: true }

jedox_list_dimensionsA

List all dimensions in a Jedox database.

Args:

  • database_id: Numeric ID of the database (from jedox_list_databases)

Returns: Array of { id, name, numberOfElements, numberOfLevels, numberOfBranches, status, type }

Use the returned 'id' field in element and cube operations.

jedox_get_dimensionA

Get detailed information about a specific Jedox dimension.

Args:

  • database_id: Numeric ID of the database

  • dimension_id: Numeric ID of the dimension (from jedox_list_dimensions)

Returns: { id, name, numberOfElements, numberOfLevels, numberOfBranches, status, type }

jedox_create_dimensionA

Create a new dimension in a Jedox database.

Args:

  • database_id: Numeric ID of the database

  • name: Name for the new dimension (e.g. "Accounts", "Periods", "Regions")

Returns: { id, name } of the created dimension.

After creating the dimension, use jedox_bulk_create_elements to add members. Call jedox_save_database afterwards to persist the structural change to disk.

jedox_delete_dimensionA

Delete a dimension from a Jedox database.

WARNING: Any cube that uses this dimension must be deleted first, or this will fail.

Args:

  • database_id: Numeric ID of the database

  • dimension_id: Numeric ID of the dimension to delete

Returns: { success: true } Call jedox_save_database afterwards to persist the change.

jedox_list_elementsA

List elements (members) in a Jedox dimension, with pagination.

Args:

  • database_id: Numeric ID of the database

  • dimension_id: Numeric ID of the dimension

  • limit: Max elements to return (1-1000, default 100)

  • offset: Skip N elements for pagination (default 0)

Returns: { items: [{ id, name, type, typeLabel, level, depth, numberOfChildren }], total, offset, limit, hasMore }

Element typeLabel values:

  • "numeric": leaf data element (holds numbers)

  • "string": leaf string element

  • "consolidated": parent/rollup node (has children, aggregates values)

jedox_get_elementA

Get detailed information about a specific dimension element.

Args:

  • database_id: Numeric ID of the database

  • dimension_id: Numeric ID of the dimension

  • element_id: Numeric ID of the element

Returns: { id, name, type, typeLabel, level, indent, depth, numberOfChildren, numberOfParents, position }

jedox_create_elementA

Create a single element (member) in a Jedox dimension.

Args:

  • database_id: Numeric ID of the database

  • dimension_id: Numeric ID of the dimension

  • name: Element name

  • type: "numeric" (default), "string", or "consolidated" (parent/rollup)

  • children: (consolidated only) Array of { element_id, weight }

    • weight=1.0 means add to rollup (default)

    • weight=-1.0 means subtract (e.g. Costs with -1 under Profit = Revenue - Costs)

    • Children must already exist; provide their numeric element_id values.

Returns: { id, name, typeLabel }

For creating many elements at once, use jedox_bulk_create_elements instead.

jedox_update_elementB

Rename an existing element in a Jedox dimension.

Args:

  • database_id: Numeric ID of the database

  • dimension_id: Numeric ID of the dimension

  • element_id: Numeric ID of the element to rename

  • new_name: The new name

Returns: { id, name, typeLabel }

jedox_delete_elementA

Delete an element from a Jedox dimension.

WARNING: Deleting a consolidated element does not delete its children, only the parent node. Deleting a base element that is a child of consolidations will remove it from those consolidations.

Args:

  • database_id: Numeric ID of the database

  • dimension_id: Numeric ID of the dimension

  • element_id: Numeric ID of the element to delete

Returns: { success: true }

jedox_bulk_create_elementsA

Create multiple elements in a Jedox dimension at once.

Use this for efficiently populating a dimension with many members. For consolidated elements with children, use jedox_create_element individually.

Args:

  • database_id: Numeric ID of the database

  • dimension_id: Numeric ID of the dimension

  • elements: Array of { name, type } — max 500 per call

    • type: "numeric" (default), "string", or "consolidated"

Returns: { created: N, failed: [{ name, error }], elements: [{ id, name, typeLabel }] }

For large lists (>500), call this tool multiple times with batches.

jedox_list_cubesA

List all cubes in a Jedox database.

Args:

  • database_id: Numeric ID of the database

Returns: Array of { id, name, numberOfDimensions, numberOfCells, numberOfFilledCells, dimensionIds, status, type }

'dimensionIds' lists the dimension IDs in order — this order is used when specifying cell paths.

jedox_get_cubeA

Get detailed information about a specific cube, including its dimension order.

IMPORTANT: Always call this before jedox_get_cell_value or jedox_set_cell_value to confirm the exact dimension order. The 'dimensionIds' array tells you which dimension is at each position. The cell 'path' array must have one element name per dimension in this exact order.

Args:

  • database_id: Numeric ID of the database

  • cube_id: Numeric ID of the cube

Returns: { id, name, numberOfDimensions, dimensionIds, numberOfFilledCells }

jedox_create_cubeA

Create a new cube in a Jedox database by specifying which dimensions it spans.

Args:

  • database_id: Numeric ID of the database

  • name: Name for the cube

  • dimension_ids: Ordered array of dimension IDs (from jedox_list_dimensions). IMPORTANT: The order you specify here is permanent and determines the axis sequence. When calling jedox_get_cell_value / jedox_set_cell_value, the 'path' array must follow this same dimension order.

Returns: { id, name, dimensionIds } Call jedox_save_database afterwards to persist the structural change.

jedox_delete_cubeA

Delete a cube and all its data from a Jedox database.

WARNING: This is irreversible. All cell data in the cube will be lost.

Args:

  • database_id: Numeric ID of the database

  • cube_id: Numeric ID of the cube to delete

Returns: { success: true } Call jedox_save_database afterwards to persist the change.

jedox_get_cell_valueA

Read a single cell value from a Jedox cube.

Args:

  • database_id: Numeric ID of the database

  • cube_id: Numeric ID of the cube

  • path: Array of element names, one per dimension in cube order. IMPORTANT: Use jedox_get_cube first to confirm dimension order. Example for a cube with dimensions [Accounts, Periods, Regions]: path = ["Revenue", "Jan 2025", "North"]

Returns: { path, value, type }

  • type: "numeric" or "string"

  • value: number or string

jedox_set_cell_valueA

Write a value to a cell in a Jedox cube.

Cell writes are persisted immediately — no need to call jedox_save_database.

Args:

  • database_id: Numeric ID of the database

  • cube_id: Numeric ID of the cube

  • path: Array of element names, one per dimension in cube order

  • value: The value to write (number or string)

  • splash_mode: How to handle writes to consolidated/parent elements:

    • "SET" (default): Direct write; for base elements this always works

    • "ADD": Adds to existing value

    • "ALLOCATE": Proportionally distributes value to base-level cells

Returns: { success: true, path, value }

jedox_get_cell_rangeA

Read multiple cells from a Jedox cube using dimension filters.

The tool builds a Cartesian product of your dimension filters to determine which cells to fetch. Keep filter arrays small to avoid exceeding max_cells.

Args:

  • database_id: Numeric ID of the database

  • cube_id: Numeric ID of the cube

  • dimension_filters: Array of arrays, one per dimension (in cube dimension order). Each inner array is the list of element names you want for that dimension. Example: [["Revenue","Cost","Profit"], ["Jan","Feb","Mar"], ["Total"]] → fetches 3 accounts × 3 months × 1 region = 9 cells

  • max_cells: Cap on total cells to return (default 1000, max 10000)

Returns: { cells: [{ path, value, type }], total }

Use jedox_get_cube first to confirm dimension order.

jedox_list_rulesA

List all calculation rules defined on a Jedox cube.

Args:

  • database_id: Numeric ID of the database

  • cube_id: Numeric ID of the cube

Returns: Array of { id, definition, comment, active, externalIdentifier }

Use the returned 'id' to delete a rule with jedox_delete_rule.

jedox_create_ruleA

Add a calculation rule to a Jedox cube.

Jedox rules use a special syntax with single-quoted element names: ['TargetElement'] = ['ElementA'] + ['ElementB'] ['Profit'] = ['Revenue'] - ['Cost'] ['Growth%'] = (['This Year'] / ['Last Year'] - 1) * 100

Multi-dimensional rules restrict which cells they apply to using dimension qualifiers: ['Profit']:['Jan'] = ['Revenue']:['Jan'] - ['Cost']:['Jan']

Rules take precedence over consolidation. Be careful not to create circular references.

Args:

  • database_id: Numeric ID of the database

  • cube_id: Numeric ID of the cube

  • definition: The rule formula (use single quotes around element names)

  • comment: Optional description (default: empty)

  • activate: Whether to activate the rule immediately (default: true)

Returns: { id, definition, active }

jedox_delete_ruleA

Delete a calculation rule from a Jedox cube.

Args:

  • database_id: Numeric ID of the database

  • cube_id: Numeric ID of the cube

  • rule_id: Numeric ID of the rule (from jedox_list_rules)

Returns: { success: true }

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/emilabd247/work-jedox-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server