Skip to main content
Glama
richardggxcp

hex-dashboard-mcp

by richardggxcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HEX_API_KEYYesYour Hex API token for authentication
HEX_API_URLYesThe base URL of the Hex API (e.g., https://app.hex.tech/api/v1)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_projectsA

List Hex projects in the workspace. Optionally filter by name substring. Returns project IDs, names, and app URLs needed for other tools.

get_projectA

Get full details of a Hex project including all cells with their type, source, and position. Use this before editing to understand the current notebook structure.

get_cell_sourceA

Read the full source code of a specific cell (Python, SQL, or HTML). Use this before updating to understand what's already there.

update_cell_sourceA

Write new source code to a cell (Python, SQL, or Markdown). cell_type: CODE | SQL | MARKDOWN (default CODE). Used to wrap source in the correct API structure. After updating cells, call run_and_wait to push changes to the app view. The published app refreshes automatically when a run completes — no manual page refresh needed.

create_cellA

Create a new cell in a Hex project.

cell_type: CODE | SQL | MARKDOWN source: the cell's source code / SQL / markdown content label: optional display label for the cell insert_after_cell_id: optional cell ID to insert after (otherwise appends to end) data_connection_id: required for SQL cells — the Hex data connection UUID

delete_cellA

Delete a cell from a Hex project. Use with caution — this is irreversible. Always get_project() first to confirm the cell ID and contents before deleting.

run_projectA

Trigger a Hex project run. Returns a run_id for status polling. Use run_and_wait instead if you want to block until completion.

get_run_statusA

Poll the status of a project run. Status values: PENDING, RUNNING, COMPLETED, ERRORED, KILLED, UNABLE_TO_ALLOCATE_KERNEL. Check elapsedTime and any trace/error details on ERRORED runs.

run_and_waitA

Run a Hex project and poll until it completes or errors. This is the primary tool for pushing notebook changes to the app view — after updating cells, call this and the published app will reflect the new results automatically without any manual refresh.

Returns the final run status with error details if it failed.

cancel_runB

Cancel a running Hex project run.

get_run_historyB

Get recent run history for a project. Useful for spotting patterns in recurring failures (specific filters, specific times, etc).

diagnose_notebookA

Full diagnostic sweep of a Hex notebook.

  • Reads all cell sources

  • Pulls the most recent (or specified) run's error details

  • Identifies which cells failed and surfaces the error trace

  • Flags common issues: filter edge cases, missing variables, data type mismatches, empty dataframes, schema drift

Use this whenever a notebook fails to load, shows blank charts, or behaves incorrectly when filters are applied.

inspect_filter_behaviorA

Trigger a run with specific filter input values to diagnose why a particular filter combination causes incorrect data or blank charts.

Pass the filter widget names and values as filter_inputs dict. Example: {"date_range": "2024-01-01,2024-03-31", "region": "EMEA"}

The tool runs the project, waits for completion, and surfaces any errors specific to those inputs.

inject_plotly_chartA

Write a fully styled Plotly chart into a Hex Python cell. Design system (dark theme, color palette, typography) is applied automatically.

chart_type: line | bar | scatter | area | histogram | box | heatmap | funnel | treemap dataframe_var: name of the DataFrame variable already defined in the notebook x_col / y_col: column names for axes color_col: optional column for series coloring extra_kwargs: any additional px.chart() keyword args as a string, e.g. 'barmode="group"' auto_run: if True, immediately triggers run_and_wait to push to app view

inject_pydeck_mapA

Write a styled PyDeck map into a Hex Python cell using the dark map style.

layer_type: ScatterplotLayer | HexagonLayer | H3HexagonLayer | ColumnLayer | ArcLayer | PathLayer | GeoJsonLayer color_col: column with pre-computed [R, G, B] or [R, G, B, A] values. If omitted, uses accent color. elevation_col: column for 3D height (ColumnLayer / HexagonLayer) auto_run: if True, triggers run_and_wait to push to app view

inject_html_componentA

Write a styled HTML component into a Hex HTML cell. These render in the published app with no Python needed.

component_type: kpi_row — row of metric cards (props: metrics=[{label, value, delta, delta_type}]) section_header — section title + subtitle (props: title, subtitle) data_table — styled HTML table (props: dataframe_var, max_rows) alert_banner — info/warning/error banner (props: message, level) divider — styled horizontal rule (props: label)

get_design_systemA

Return the active design system tokens (colors, fonts, chart defaults). Use this to stay consistent when writing custom chart code.

apply_workspace_paletteA

Apply the design system color palette to the Hex workspace custom styling. This sets the active chart color palette for all Chart cells in the workspace. Requires admin permissions.

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/richardggxcp/hex-dashboard-mcp'

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