Domo MCP server
Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Domo, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.
Overview
This tool pack exposes the Domo API across four areas: managing DataSets, querying and loading data, governing users and groups, and browsing dashboards and the activity log. The typical pattern is to discover a dataset by name, inspect its schema, then run a SQL question against it.
For setup instructions, see SnapLogic MCP Server quickstart.
Example Prompts
- Create a dataset called Q3 Forecast with columns region (string) and amount (decimal)
- Set up a new dataset for the survey results
- Make me a dataset with a date column and two numeric columns, then tell me its id
- Create an empty 'Headcount Plan' dataset I can load a CSV into
- Create a group called Sales EMEA
- Set up a new group for the analytics team
- Make a 'Finance Reporting' group and add users 1234 and 5678 to it
- Create a group for the Q3 project with a description explaining what it's for
- Add [email protected] as a Privileged user
- Create a new Participant user named John Smith
Tools
| Tool Name | Functions |
|---|---|
| DomoCreateDataset | Create an empty DataSet with a defined column schema. |
| DomoCreateGroup | Create a new Domo group. |
| DomoCreateUser | Create a new Domo user, optionally sending an invite. |
| DomoDeleteDataset | Permanently delete a DataSet by id. |
| DomoExportData | Export a DataSet's rows as CSV text. |
| DomoGetDataset | Get a single DataSet's schema, row count, and metadata. |
| DomoGetPage | Get one Domo page's cards, owner, and visibility. |
| DomoGetUser | Get one Domo user's full profile by id. |
| DomoImportData | Load CSV rows into a DataSet, replacing or appending. |
| DomoListAccounts | List the data connections configured in Domo. |
| DomoListDatasets | Discover DataSets and resolve a dataset name to its id. |
| DomoListGroupMembers | List the user ids belonging to a Domo group. |
| DomoListGroups | List Domo groups and resolve a group name to its id. |
| DomoListPages | List Domo pages (dashboards) and find a page id. |
| DomoListUsers | List Domo users and resolve names or emails to user ids. |
| DomoManageGroupMembers | Add or remove a user from a Domo group. |
| DomoQueryActivityLog | Query the Domo audit log over a time window. |
| DomoQueryDataset | Run a SQL query against a Domo DataSet and get result rows. |
| DomoUpdateDataset | Rename a DataSet or change its description or schema. |
| DomoUpdateUser | Update a Domo user's name, email, role, or title. |
Set up the MCP Server tools
- Download domo_tools.zip.
- In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded domo_tools.zip. Designer unpacks each pipeline into the project.
- Attach the required account to the connectivity snaps (see Connection Setup).
- Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.
Configure account
Attach an API Suite account (OAuth 2.0 or Bearer token) to the HTTP Client snap in Designer after import.
These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.
See the SnapLogic account documentation for this connector: API Suite Account Configuration.
DomoCreateDataset
Creates a new, empty Domo DataSet with a defined column schema and returns the dataset id. Use the returned id with DomoImportData to load rows into it.
| Parameter | Type | Default | Description |
|---|---|---|---|
| name* | string | — | Name for the new dataset. |
| description | string | — | Description of the dataset. |
| columns* | array | — | Schema columns as {type, name} objects; types are STRING, LONG, DECIMAL, DOUBLE, DATE, DATETIME. |
* Required parameter.
Try asking:
- Create a dataset called Q3 Forecast with columns region (string) and amount (decimal)
- Set up a new dataset for the survey results
- Make me a dataset with a date column and two numeric columns, then tell me its id
- Create an empty 'Headcount Plan' dataset I can load a CSV into
DomoCreateGroup
Creates a new Domo group from a name and optional description, returning the group id. Add members separately using DomoManageGroupMembers.
| Parameter | Type | Default | Description |
|---|---|---|---|
| name* | string | — | Name for the new group. |
| description | string | — | Description of the group. |
* Required parameter.
Try asking:
- Create a group called Sales EMEA
- Set up a new group for the analytics team
- Make a 'Finance Reporting' group and add users 1234 and 5678 to it
- Create a group for the Q3 project with a description explaining what it's for
DomoCreateUser
Creates a new Domo user with a display name, email, and role, optionally sending an invitation. Use it to provision accounts silently or onboard users immediately.
| Parameter | Type | Default | Description |
|---|---|---|---|
| name* | string | — | Display name of the new user. |
| email* | string | — | Email address, which becomes the login. |
| role* | string | — | Domo role: Admin, Privileged, Participant, or a custom role name. |
| send_invite | string | true |
"true" (default) or "false" — whether Domo emails an invitation. |
* Required parameter.
Try asking:
- Add [email protected] as a Privileged user
- Create a new Participant user named John Smith
- Provision an Admin account for our new analytics lead but don't email them yet
- Onboard these three people as Participants and invite them
DomoDeleteDataset
Permanently deletes a DataSet by id and returns a confirmation. Use it only on an explicit user instruction, after confirming the target with DomoListDatasets or DomoGetDataset.
| Parameter | Type | Default | Description |
|---|---|---|---|
| dataset_id* | string | — | Domo DataSet GUID to delete. |
* Required parameter.
Try asking:
- Delete the test dataset abc-123
- Remove this duplicate dataset
- Find the dataset called 'scratch import' and delete it
- Clean up the dataset I created by mistake
DomoExportData
Exports a DataSet's contents as CSV text and returns the payload as a string. Use it when the user wants the raw rows to sample or pass to another tool, rather than an answer computed from the data.
| Parameter | Type | Default | Description |
|---|---|---|---|
| dataset_id* | string | — | Domo DataSet GUID to export. |
| include_header | string | true |
"true" (default) or "false" — whether the CSV includes a header row. |
* Required parameter.
Try asking:
- Export dataset abc-123 as CSV
- Give me the rows of the forecast dataset so I can look at them
- Dump the survey dataset without the header row
- Pull the raw CSV for this dataset and summarise what's in it
DomoGetDataset
Retrieves a DataSet's metadata, including its schema, row count, owner, and timestamps. Use it before querying to confirm column names and structure.
| Parameter | Type | Default | Description |
|---|---|---|---|
| dataset_id* | string | — | Domo DataSet GUID to describe. |
* Required parameter.
Try asking:
- What columns does dataset abc-123 have?
- How many rows are in the sales dataset?
- Describe this dataset before I query it
- Who owns dataset abc-123 and when was it last updated?
DomoGetPage
Retrieves a Domo page by id, including its name, owner, cards, and visibility settings. Use it to find out what a specific dashboard contains or who can see it.
| Parameter | Type | Default | Description |
|---|---|---|---|
| page_id* | string | — | Domo page id to retrieve. |
* Required parameter.
Try asking:
- What cards are on page 123?
- Show details for the Executive Overview dashboard
- Who owns this dashboard and is it locked?
- Which collections does page 123 have?
DomoGetUser
Retrieves the full profile for a single Domo user by id. Use it when the user asks about a specific person's role, email, or account details.
| Parameter | Type | Default | Description |
|---|---|---|---|
| user_id* | string | — | Domo user id (numeric). |
* Required parameter.
Try asking:
- Show me details for user 1234
- What role and email does this user have?
- Look up [email protected] and tell me her Domo role
- When was user 1234's account created?
DomoImportData
Loads CSV rows into an existing DataSet, either replacing the current contents or appending to them. Use it after DomoCreateDataset to populate a new dataset, or to refresh an existing one.
| Parameter | Type | Default | Description |
|---|---|---|---|
| dataset_id* | string | — | Domo DataSet GUID to load into. |
| csv_data* | string | — | Raw CSV text, no header row, columns in the dataset's schema order. |
| update_method | string | REPLACE |
"REPLACE" (default, overwrite) or "APPEND" (add rows). |
* Required parameter.
Try asking:
- Load this CSV into dataset abc-123
- Append these rows to the forecast dataset
- Replace the data in the survey dataset with the numbers I just gave you
- Create a dataset for Q3 targets and load these rows into it
DomoListAccounts
Lists the data connection accounts configured in the Domo instance, returning each account's id, name, type, and validity status. Use it to see what the instance is connected to or to find a specific connector's account id.
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | string | 50 |
Maximum accounts to return (default 50). |
| offset | string | 0 |
Pagination offset (default 0). |
Try asking:
- What accounts are set up in Domo?
- List our Domo data connections
- Find the Snowflake account id in Domo
- Are any of our Domo connections currently invalid?
DomoListDatasets
Lists the DataSets in the Domo instance and resolves a dataset name to the id that other data tools require. Use it first whenever the user refers to a dataset by name rather than by id.
| Parameter | Type | Default | Description |
|---|---|---|---|
| name_like | string | — | Return only datasets whose name contains this text. |
| sort | string | — | Field to sort the results by, e.g. name or lastTouched. |
| limit | string | 50 |
Maximum datasets to return (default 50). |
| offset | string | 0 |
Pagination offset (default 0). |
Try asking:
- What datasets do we have in Domo?
- Find the sales dataset and give me its id
- List Domo datasets with 'forecast' in the name
- Show me our datasets sorted by name, 20 at a time
- Page through the next 50 datasets after the first batch
DomoListGroupMembers
Lists the user ids belonging to a Domo group, with pagination support. Use it to find out who is in a group; pair it with DomoGetUser or DomoListUsers to get names and emails.
| Parameter | Type | Default | Description |
|---|---|---|---|
| group_id* | string | — | Domo group id whose members are listed. |
| limit | string | 50 |
Maximum members to return (default 50). |
| offset | string | 0 |
Pagination offset (default 0). |
* Required parameter.
Try asking:
- Who is in the Sales group?
- List the members of group 123
- How many people are in the analytics group?
- Show me who's in the Finance group with their names and emails
DomoListGroups
Lists Domo groups with their id, name, and member count, so the agent can survey access or resolve a group name to the id needed by other group tools. Results are paginated.
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | string | 50 |
Maximum groups to return (default 50). |
| offset | string | 0 |
Pagination offset (default 0). |
Try asking:
- List all Domo groups
- Find the id for the Sales group
- How many groups do we have and how big are they?
- Show me the next 50 groups
DomoListPages
Lists Domo pages (dashboards) with their id, name, owner, and visibility, so you can survey what dashboards exist or find a page id before calling DomoGetPage.
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | string | 50 |
Maximum pages to return (default 50). |
| offset | string | 0 |
Pagination offset (default 0). |
Try asking:
- What dashboards do we have in Domo?
- List our Domo pages
- Find the page id for the Executive Overview dashboard
- Show me the dashboards and who owns them
DomoListUsers
Lists Domo users with their id, name, email, and role, for access audits or to resolve a user's email to the id needed by other user tools. Results are paginated.
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | string | 50 |
Maximum users to return (default 50). |
| offset | string | 0 |
Pagination offset (default 0). |
Try asking:
- List all Domo users
- Find the user id for [email protected]
- Who has access to our Domo instance?
- Show me the first 100 users so I can check their roles
- Give me the next page of users after the first 50
DomoManageGroupMembers
Adds or removes a user from a Domo group in a single call, selected by the action parameter. Resolve the group id and user id first using DomoListGroups and DomoListUsers.
| Parameter | Type | Default | Description |
|---|---|---|---|
| group_id* | string | — | Domo group id to modify. |
| user_id* | string | — | Domo user id to add or remove. |
| action* | string | add |
"add" or "remove" (default "add"). |
* Required parameter.
Try asking:
- Add user 1234 to the Sales group
- Remove user 9876 from group 555
- Put [email protected] in the analytics group
- Take the contractors out of the Finance Reporting group
DomoQueryActivityLog
Queries the Domo audit log over a time window and returns entries showing who acted, what they did, and which object was affected. Use it for access reviews or to answer 'who touched this' questions.
| Parameter | Type | Default | Description |
|---|---|---|---|
| start* | string | — | Window start as epoch milliseconds. |
| end | string | — | Window end as epoch milliseconds; defaults to now when omitted. |
| limit | string | 50 |
Maximum entries to return (default 50). |
| offset | string | 0 |
Pagination offset (default 0). |
* Required parameter.
Try asking:
- Who viewed the sales dashboard last week?
- Show admin activity in Domo for the last 24 hours
- What did user 1234 do recently?
- List everything that happened in Domo between Monday and Friday
- Pull the next 100 audit entries for that window
DomoQueryDataset
Runs a SQL statement against a Domo DataSet and returns the result rows, columns, and count. Use it for analytical questions including aggregation, filtering, and ranking.
| Parameter | Type | Default | Description |
|---|---|---|---|
| dataset_id* | string | — | Domo DataSet GUID to query. |
| sql* | string | — | SQL statement to execute; refer to the dataset as the table name 'dataset'. |
* Required parameter.
Try asking:
- What was total revenue by region last quarter in dataset abc-123?
- Show the top 10 customers by spend in the sales dataset
- How many orders in this dataset shipped late?
- Count rows per status in dataset abc-123
- Give me the monthly average deal size from the pipeline dataset
DomoUpdateDataset
Edits a DataSet's name, description, or column schema without touching the rows. Use it for renames, description updates, or schema changes before a data load.
| Parameter | Type | Default | Description |
|---|---|---|---|
| dataset_id* | string | — | Domo DataSet GUID to update. |
| name | string | — | New name for the dataset. |
| description | string | — | New description. |
| columns | array | — | Replacement schema columns, same {type, name} shape as create. |
* Required parameter.
Try asking:
- Rename dataset abc-123 to 'Archived Sales'
- Update the description of the forecast dataset to say it's refreshed nightly
- Add a 'segment' string column to this dataset's schema
- Fix the name on that dataset I created earlier
DomoUpdateUser
Updates a Domo user's name, email, role, or title. Read the profile with DomoGetUser first and carry forward all fields, changing only what the user specifies.
| Parameter | Type | Default | Description |
|---|---|---|---|
| user_id* | string | — | Domo user id to update. |
| name | string | — | New display name. |
| string | — | New email address. |
|
| role | string | — | New role: Admin, Privileged, or Participant. |
| title | string | — | New job title. |
* Required parameter.
Try asking:
- Promote user 1234 to Admin
- Change this user's title to Director of Analytics
- Update jane's email address to [email protected]
- Downgrade the contractor accounts to Participant