domo-mcp-readonly
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@domo-mcp-readonlyquery the sales dataset for top 10 customers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
domo-mcp-readonly (Nsight fork)
Read-only build of BFullenkampDomo/CommunityDomoMCPHelix, maintained by the Nsight Automation team for the faster.nsightcare.com /adp/ installer.
Base: upstream commit
9fc6e5e272717473a7a965356e9aa6ce6493ed67, byte-for-byte (see this repo's first commit).Change: a default-deny allowlist in
src/tools/registry.tspermits only the 23 query/get/list tools to register. The 17 write/execute tools (create, update, upload,etl_run,code_engine_run, layout lock/unlock,app_add_view) and anything a future upstream merge might add cannot register, so this build structurally cannot change anything in Domo regardless of token permissions.package.jsonandpackage-lock.jsonare untouched from upstream; install withnpm ciso the lockfile's integrity checksums are enforced.Review the full delta:
git diff <first-commit> HEAD.
Upstream README follows.
Helix — Domo MCP Server
A native-first MCP server that gives AI agents full control of the Domo BI platform. Build analytics experiences end-to-end — from raw data to polished App Studio dashboards — without leaving your AI coding environment.
Built for Claude Code, compatible with any MCP client, and designed for future Claude Managed Agents.
Quick Start
One command to install:
claude mcp add --transport stdio domo -- npx -y community-domo-mcp-helixOr if running from source:
git clone https://github.com/BFullenkampDomo/CommunityDomoMCPHelix.git
cd CommunityDomoMCPHelix
npm install && npm run build
claude mcp add --transport stdio domo -- node $(pwd)/dist/index.jsPrerequisites:
Node.js 18+
An active
domo loginsession (via the Domo CLI) or aDOMO_TOKENenvironment variable
That's it. The server auto-detects your most recent Domo login and handles authentication transparently.
Related MCP server: starrocks-mcp
Authentication
Helix resolves credentials automatically in this order:
Priority | Source | How |
1 | Explicit config |
|
2 | Ryuu CLI | Reads |
3 | Auto-detect | Picks the most recently used instance if multiple logins exist |
Under the hood:
Refresh token → access token (/api/oauth2/token) → session ID (/api/oauth2/sid) → X-Domo-Authentication header. SIDs are cached for 55 minutes and auto-refresh. Developer tokens (X-Domo-Developer-Token) are used directly when provided via env var.
Philosophy: Native First
Domo has two ways to build analytics:
Native (preferred) | Custom Apps (supplement) | |
What | Cards, BeastModes, App Studio pages | React/JS apps in iframes |
When | Bar charts, KPIs, tables, trend lines — anything Domo's 207 chart types can handle | Complex interactivity, custom UI, data entry forms |
Tool |
|
|
Helix encodes this preference in every tool description. An AI agent using these tools will always reach for native Domo capabilities first and only suggest custom apps when native cards genuinely can't do the job.
Tools (36)
Data Layer
Discover, query, and transform data.
Tool | Description |
| Search datasets by name ( |
| Full dataset metadata — schema, row count, owner, cloud info |
| Column names, types, and AI metadata |
| Run SQL against any dataset ( |
| Create an empty dataset with a defined schema |
| Cross-entity keyword search (datasets, cards, pages) |
Magic ETL
Build and run data pipelines. Always prefer Magic ETL over custom code.
Tool | Description |
| List all dataflows |
| Full dataflow definition (actions, DAG, canvas layout) |
| Create a dataflow with full DAG definition (joins, aggregations, formulas) |
| Update a dataflow definition (PUT replaces entire definition) |
| Trigger execution |
| Poll execution state until SUCCESS or FAILED |
Snowflake native? When input datasets come from a Snowflake integration, set
computeCloudon the dataflow to the input datasets'cloudId. Check dataset metadata first — mismatched clouds cause indexing failures.
Analytics — Cards & BeastModes
Create native visualizations. Always create BeastModes on the dataset (persisted) for reuse across cards.
Tool | Description |
| List all cards on a page/view |
| Column definitions, dataset binding, BeastMode references |
| Rendered data with chart role mappings (ITEM, VALUE, TARGET, SERIES) |
| Create a native card (207 chart types) on a page |
| Update a card definition (full replacement) |
| Pre-flight formula validation — checks syntax and column references |
| Create a persisted calculated field on a dataset |
Analytics — App Studio
Build multi-page analytics applications. App Studio is the preferred delivery method — not classic Domo pages.
Tool | Description |
| List all App Studio apps |
| Create a new app with a default landing view |
| Full app structure (views, navigation, theme) |
| Update app config (nav orientation, theme, title) |
| Add a page/view to an app |
| Reorder, rename, and set icons for nav items |
| Full page structure including layout grid and card positions |
| Acquire write lock (required before layout edits) |
| Position cards on the canvas grid |
| Release write lock |
| List classic pages (legacy — use |
Administration
Tool | Description |
| List users |
| User details |
| List groups |
| Personalized Data Permission policies for a dataset |
| Current authenticated user |
Custom App Platform
Only use when native cards are insufficient.
Tool | Description |
| List published custom apps |
| Query an AppDB collection |
| Invoke a Code Engine function |
End-to-End Workflow
The typical demo build follows this sequence:
1. Explore domo_dataset_list → domo_dataset_query
Find and understand the source data
2. Transform domo_etl_create → domo_etl_run
Join, aggregate, compute — output a gold dataset
3. BeastModes domo_beastmode_validate → domo_beastmode_create
Build reusable calculated fields on the dataset
4. App Studio domo_app_create → domo_app_add_view
Create the container and pages
5. Cards domo_card_create (repeat per card)
Build native charts on each view
6. Layout domo_stack_get → domo_layout_lock →
domo_layout_update → domo_layout_unlock
Position cards on the canvas grid
7. Polish domo_app_update → domo_app_navigation_update
Set nav orientation, icons, themeApp Studio vs Classic Pages
These are completely separate systems with different APIs:
Classic Pages (legacy) | App Studio Apps (preferred) | |
Create |
|
|
Layout API | None | Full canvas grid (v4 write locks) |
Navigation | Domo global nav | Custom per-app (LEFT / TOP / BOTTOM) |
Theming | Instance defaults | Custom themes, colors, icons |
Multi-page | Flat hierarchy | Views with parent/child structure |
Use for | Discovery / listing only | All new work |
Layout Grid Reference
App Studio uses a unit-based grid system:
Property | Desktop ( | Mobile ( |
Grid width | 60 units | 12 units |
Aspect ratio | 1.67 | 1.0 |
Frame margin | 4 | 4 |
Frame padding | 8 | 8 |
Content types: CARD, HEADER, SEPARATOR, PAGE_BREAK
Key rule: Every contentKey in the content[] array must appear in both standard.template and compact.template. Missing entries cause 400 Bad Request.
Cards on the main canvas: virtual: false, virtualAppendix: false
Cards in the appendix: virtual: true, virtualAppendix: true
Cards created via the API land in the appendix by default. Use
domo_layout_updateto move them to the main canvas.
Magic ETL Reference
Action Types
Type | Description | Key Fields |
| Input dataset |
|
| Join two streams |
|
| Aggregation |
|
| Computed columns |
|
| Rank, lag/lead |
|
| Pick/rename columns |
|
| Conditional branches |
|
| Append rows |
|
| Output dataset |
|
Canvas Sections
Organize tiles into colored zones for readability:
Color Variable | Suggested Use |
| Input / staging |
| Transforms / enrichment |
| Validation / aggregation |
| Output / publishing |
Join Types
|
|
|
|
|
|
|
|
|
|
Architecture
Claude Code / Claude Managed Agent
|
MCP Protocol (stdio or HTTP)
|
Helix MCP Server (Node.js / TypeScript)
|
+----+----+
| |
Auth Tools
| |
| +----+--------+----------+----------+
| | Data | Analytics | Admin | Custom App
| | datasets | cards | users | appdb
| | etl | beastmode | groups | code engine
| | search | app studio| pdp |
| | | layout | |
| +----+--------+----------+----------+
| |
+----+----+
|
Domo REST APIs
(X-Domo-Authentication: {SID})Auth resolution: Ryuu CLI configstore → env var fallback → helpful error message.
SID caching: 55-minute TTL, auto-refresh on expiry.
Multi-instance: Supports all instances from domo login — auto-selects most recent.
Development
npm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Watch mode
npm start # Run the MCP server
npx tsx src/test-auth.ts [instance] # Smoke test authenticationProject Structure
src/
index.ts MCP server entry point (stdio transport)
auth/
domo-auth.ts Unified auth class (resolve, cache, fetch)
ryuu-store.ts Read ryuu CLI credentials
token-exchange.ts Refresh token -> access token -> SID
types.ts Type definitions
tools/
registry.ts Registers all tool groups
data/index.ts Dataset, ETL, and search tools
analytics/index.ts Cards, BeastMode, App Studio, layout tools
admin/index.ts User, group, PDP tools
custom-app/index.ts AppDB, Code Engine toolsRelated Projects
domo-ai-vibe-rules — Community AI skills and rules for the Domo platform
Ryuu CLI — Official Domo developer CLI (
domo login,domo publish)MCP Specification — Model Context Protocol standard
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceA read-only PostgreSQL MCP server that enables AI agents to perform schema introspection and execute SELECT-only queries. It supports secure database connections through SSL and SSH tunnels while offering a structure-only mode to restrict query access.Last updated10MIT
- AlicenseAqualityDmaintenanceA read-only MCP server that enables users to query and explore StarRocks databases through AI assistants like Claude. It supports SQL execution, schema discovery, and secure LDAP authentication for data analysis and metadata exploration.Last updated41MIT
- AlicenseAqualityCmaintenanceA read-only MCP server for Imply Cloud/Druid databases, enabling AI assistants to execute SQL queries, list tables, and explore dashboards and data cubes.Last updated121MIT
- AlicenseAqualityCmaintenanceA read-only MCP server that provides AI coding tools with database schema structure (tables, columns, keys, relationships) without exposing row data.Last updated3Apache 2.0
Related MCP Connectors
Read-only MCP server for wafergraph.com's semiconductor & AI supply-chain data: 30 tools, no auth.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jphilip-png/domo-mcp-readonly'
If you have feedback or need assistance with the MCP directory API, please join our Discord server