Connect your AI Agents to Domo in minutes

Merge lets you securely connect your agents to Domo and thousands of tools instantly

Available tools

list_accounts

List data-source accounts (connections) in the Domo instance. Supports offset pagination. Returns account IDs for getaccount, updateaccount, deleteaccount, and shareaccount.

get_account

Retrieve a single data-source account by ID. Use list_accounts to find account IDs.

create_account

Create a new data-source account (connection). Use listaccounttypes to find valid type IDs for the type field.

update_account

Update a data-source account's name or credentials. Use list_accounts to find account IDs.

delete_account

Permanently delete a data-source account by ID. Use list_accounts to find account IDs.

list_account_types

List available account (data-source) types. Returns type IDs used by createaccount and getaccount_type.

get_account_type

Retrieve a single account type by ID, including its credential templates. Use listaccounttypes to find type IDs.

share_account

Share a data-source account with a user. Use listaccounts to find account IDs and listusers to find user IDs.

list_activity_logs

Retrieve audit/activity log entries within a time window. 'start' (epoch ms) is required. Filter to a single user with the user param (use list_users to find user IDs). Supports offset pagination.

list_cards

List cards in the Domo instance. Supports offset pagination. Returns card URNs for getcard, getchartcarddefinition, and updatechartcard_definition.

get_card

Retrieve a single card by URN. Use list_cards to find card URNs.

create_chart_card

Create a new chart card. Use listpages to find the pageid to place it on, and list_datasets to find the dataSetId referenced inside the definition.

get_chart_card_definition

Retrieve the full chart definition for a chart card. Use list_cards to find card URNs.

update_chart_card_definition

Update the definition of a chart card (title, description, or chart config). Use list_cards to find card URNs.

add_drill_view

Add a drill-down view to a chart card. Use list_cards to find card URNs.

get_drill_properties

Retrieve the drill-down path/properties for a chart card. Use list_cards to find card URNs.

list_datasets

List datasets. Filter by name substring with namelike and sort server-side with sort. Supports offset pagination. Returns dataset IDs for getdataset, updatedataset, deletedataset, and query_dataset.

get_dataset

Retrieve a dataset's details (schema, row/column counts, owner) by ID. Use list_datasets to find IDs.

create_dataset

Create a new dataset with a schema. 'name' and 'schema' (columns with name+type) are required.

update_dataset

Update a dataset's name, description, PDP flag, or schema. Use list_datasets to find dataset IDs.

delete_dataset

Permanently delete a dataset by ID. Use list_datasets to find dataset IDs.

query_dataset

Run a SQL query against a dataset (reference it as 'table' in the SQL). Use list_datasets to find dataset IDs. Returns columns and rows.

import_dataset_data

Import CSV data into a dataset, replacing or appending rows. Provide CSV as a string with no header row, columns in schema order. Use list_datasets to find dataset IDs.

export_dataset_data

Export a dataset's data as CSV text, capped at maxchars (up to 2,000,000; truncated=true when cut). Larger exports can't be returned in full through this connector: use querydataset with a WHERE or LIMIT to fetch the rows you need. Use list_datasets to find dataset IDs.

list_dataset_policies

List the Personalized Data Permission (PDP) policies on a dataset. Returns policy IDs for getdatasetpolicy, updatedatasetpolicy, and deletedatasetpolicy. Use list_datasets to find dataset IDs.

create_dataset_policy

Create a PDP (row-level security) policy on a dataset. 'name' and 'filters' are required. Use listusers and listgroups to find user/group IDs. Use list_datasets to find the dataset ID.

get_dataset_policy

Retrieve a single PDP policy by ID. Use listdatasetpolicies to find policy IDs.

update_dataset_policy

Update a PDP policy (name, filters, users, groups). 'name' and 'filters' are required. Use listdatasetpolicies to find policy IDs.

delete_dataset_policy

Delete a PDP policy by ID. Use listdatasetpolicies to find policy IDs.

create_card_embed_token

Create a short-lived embed authentication token for embedding Domo cards in an external app.

create_dashboard_embed_token

Create a short-lived embed authentication token for embedding Domo dashboards (stories) in an external app.

list_groups

List groups in the Domo instance. Supports offset pagination. Returns group IDs for getgroup, updategroup, delete_group, and the membership tools.

get_group

Retrieve a single group by ID. Use list_groups to find group IDs.

create_group

Create a new group. 'name' is required.

update_group

Update a group's name or active state. Use list_groups to find group IDs.

delete_group

Delete a group by ID. Use list_groups to find group IDs.

add_user_to_group

Add a user to a group. Use listgroups to find group IDs and listusers to find user IDs.

remove_user_from_group

Remove a user from a group. Use listgroupusers to find the member user IDs.

list_group_users

List the user IDs that are members of a group. Supports offset pagination. Use list_groups to find group IDs.

list_pages

List pages (dashboards) in the Domo instance. Supports offset pagination. Returns page IDs for getpage, updatepage, delete_page, and the collection tools.

get_page

Retrieve a single page by ID. Use list_pages to find page IDs.

create_page

Create a new page (dashboard). 'name' is required. Use listpages to find a parentid and list_cards to find card IDs.

update_page

Update a page's name, parent, cards, owners, or visibility. Use list_pages to find page IDs.

delete_page

Delete a page by ID. Use list_pages to find page IDs.

list_page_collections

List the card collections on a page. Returns collection IDs for updatepagecollection and deletepagecollection. Use list_pages to find page IDs.

create_page_collection

Create a card collection on a page. Use listpages to find page IDs and listcards to find card IDs.

update_page_collection

Update a page's card collection (title, description, cards). Use listpagecollections to find collection IDs.

delete_page_collection

Delete a card collection from a page. Use listpagecollections to find collection IDs.

list_projects

List projects. Supports offset pagination. Returns project IDs for getproject, updateproject, delete_project, and the list/task tools.

create_project

Create a new project. 'name' is required. Use list_users to find member user IDs.

get_project

Retrieve a single project by ID. Use list_projects to find project IDs.

update_project

Update a project's name, description, visibility, or members. Use list_projects to find project IDs.

delete_project

Delete a project by ID. Use list_projects to find project IDs.

list_project_members

List the user IDs that are members of a project. Use list_projects to find project IDs.

update_project_members

Replace the full set of project members. Use listusers to find user IDs and listprojects to find project IDs.

list_project_lists

List the lists (board columns) in a project. Returns list IDs for the task and list tools. Use list_projects to find project IDs.

create_project_list

Create a new list (board column) in a project. 'name' is required. Use list_projects to find project IDs.

get_project_list

Retrieve a single project list by ID. Use listprojectlists to find list IDs.

update_project_list

Update a project list's name, type, or order index. Use listprojectlists to find list IDs.

delete_project_list

Delete a project list by ID. Use listprojectlists to find list IDs.

list_project_tasks

List all tasks in a project (across all lists). Returns task IDs for gettask and updatetask. Use list_projects to find project IDs.

list_list_tasks

List the tasks in a specific project list. Returns task IDs for gettask and updatetask. Use listprojectlists to find list IDs.

create_task

Create a task in a project list. 'taskname' is required. Use listprojectlists to find list IDs and listusers to find owner/contributor IDs.

get_task

Retrieve a single task by ID. Use listlisttasks or listprojecttasks to find task IDs.

update_task

Update a task's name, description, due date, priority, owner, contributors, or tags. Use listlisttasks to find task IDs.

list_task_attachments

List the attachments on a task. Returns attachment IDs for readtaskattachmenttext and deletetaskattachment. Use listlist_tasks to find task IDs.

add_task_attachment

Attach a staged file to a task. Use listlisttasks to find task IDs.

read_task_attachment_text

Read a task attachment as text. Parses PDF, DOCX, XLSX and text up to 25 MB. Use listtaskattachments to find attachment IDs. Branch on extraction_status: 'empty' = blank or image-only, do not retry or guess; 'unsupported'/'failed' = the file can't be read through this connector.

delete_task_attachment

Delete an attachment from a task. Use listtaskattachments to find attachment IDs.

create_simple_dataset

Create a dataset via the simple API (schema is inferred from the first data import). 'name' is required. Returns the dataset ID for importsimpledataset_data.

import_simple_dataset_data

Import CSV data into a simple dataset (replaces all rows). Provide CSV as a string with no header row. Use createsimpledataset to obtain the dataset ID.

list_streams

List data streams. Supports offset pagination. Returns stream IDs for getstream, updatestream, delete_stream, and the execution tools.

search_streams

Search streams by dataset name/owner (q is required, e.g. 'dataSource.name:Sales'). Use this when you have a query; use list_streams to browse all streams. Supports offset pagination.

get_stream

Retrieve a single stream by ID. Pass fields='all' to include the full dataset detail. Use list_streams to find stream IDs.

create_stream

Create a data stream that owns a new dataset. 'data_set' (with name and schema) is required. Streams are the recommended path for large/recurring CSV uploads.

update_stream

Update a stream's update method. Use list_streams to find stream IDs.

delete_stream

Delete a stream by ID (does not delete the underlying dataset). Use list_streams to find stream IDs.

list_stream_executions

List executions (upload runs) for a stream. Returns execution IDs for the upload/commit/abort tools. Use list_streams to find stream IDs.

create_stream_execution

Start a new execution (upload run) for a stream. Returns the execution ID to upload parts against. Use list_streams to find stream IDs.

get_stream_execution

Retrieve a single stream execution by ID. Use liststreamexecutions to find execution IDs.

upload_stream_data_part

Upload a CSV data part to an open stream execution. Provide CSV as a string (no header row), columns in schema order. Part numbers start at 1. Use createstreamexecution to start an execution.

commit_stream_execution

Commit an open stream execution, applying all uploaded parts to the dataset. Use createstreamexecution to start one.

abort_stream_execution

Abort an open stream execution, discarding uploaded parts. Use liststreamexecutions to find execution IDs.

list_users

List users in the Domo instance. Supports offset pagination. Returns user IDs for getuser, updateuser, and any tool that takes a user ID (group membership, project members, PDP policies).

get_user

Retrieve a single user by ID. Use list_users to find user IDs.

create_user

Create a new user. 'name', 'email', and 'role' are required. Role is one of 'Admin', 'Privileged', or 'Participant'.

update_user

Update a user's name, email, role, or profile fields. Use list_users to find user IDs.

delete_user

Permanently delete a user from the Domo instance. Use list_users to find user IDs.

validate_credential

Validate the configured Domo API client credentials by exchanging them for an access token. Returns success true/false with a message.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Domo  MCP server

FAQs on using Merge's Domo  MCP server

Explore other MCP servers built and managed by Merge

databricks
Databricks
datadog
Datadog
dealops
Dealops
deel
Deel
dialpad
Dialpad
discord
Discord
docrio
Docrio
docusign
DocuSign
doordash
DoorDash
dropbox
Dropbox
duffel
Duffel
dynamics365
Dynamics 365 Sales
exa
Exa
excel_gcc
Excel GCC High
expensify
Expensify
figma
Figma
firecrawl
Firecrawl
fireflies
Fireflies
firehydrant
FireHydrant
foursquare
Foursquare
frameio
Frame.io
freshbooks
FreshBooks
freshdesk
Freshdesk
freshservice
Freshservice

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now