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

  1. Download domo_tools.zip.
  2. 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.
  3. Attach the required account to the connectivity snaps (see Connection Setup).
  4. 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.

Important: These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute. Credentials live in the SnapLogic account store, never in the pipeline JSON.

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.

email 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