
List the warehouse connections configured in Sigma (Snowflake, BigQuery, Databricks, and so on). Filter server-side with 'search' on the connection name. Connection IDs feed getconnection, testconnection, and listconnectionpaths.
Get a warehouse connection by ID, including its type, host, and write-back setting. Use list_connections to find connection IDs.
Test whether Sigma can reach a warehouse connection. Use this to diagnose why a workbook fails to load data. Get connection IDs from list_connections.
List the browsable paths (databases, schemas, tables) available in warehouse connections. Pass connectionid to scope to one connection (from listconnections). Use this to discover warehouse tables Sigma can build on.
List the organization's version tags, used to pin published document versions (for example 'Production'). Filter server-side with 'search'. tag_workbook takes the 'name' from here, not the ID.
Create a version tag. Sigma requires both a unique name and a color (cyan, grass, violet, plum, amber, or bronze). Apply it to a workbook with tag_workbook.
Update a version tag's name, description, or color. Use list_tags to find tag IDs.
Delete a version tag. Documents tagged with it lose the pin to that version. Use list_tags to find tag IDs. This cannot be undone.
List the workbooks pinned to a version tag. Use this to see what is published to an environment like 'Production'. Get tag IDs from list_tags.
List workbook templates available in the organization, including Sigma's samples. Filter server-side with 'search'. Template IDs feed createworkbookfrom_template.
Get a workbook template by ID, including its name, path, and latest version. Use list_templates to find template IDs.
Create a workbook from a template and return its workbookid for the workbook tools. Both templateid (from listtemplates) and folderid are required — get folderid from listfiles with typefilters=['folder'], or a member's homefolderid from getmember.
List Sigma data models — the governed, reusable datasets that workbooks build on. Data model IDs feed the other data model tools. Use list_workbooks for workbooks instead.
Get a data model by ID, including its name, folder path, owner, and latest version. Use listdatamodels to find data model IDs.
List the elements (tables and joins) in a data model. Element IDs from here pair with listdatamodelcolumns. Use listdata_models for data model IDs.
List columns for every element in a data model, with labels, formulas, and data types. Use this to understand a data model's schema before building on it.
List the warehouse tables and other sources a data model reads from. Paginated — pass pageinfo.cursor back as 'cursor' to get the rest. Use listdatamodellineage for the full upstream graph.
List the lineage graph for a data model, tracing it back to warehouse tables. Use for impact analysis before changing an upstream table.
Browse the Sigma file tree: workspaces, folders, workbooks, data models, and reports. Filter server-side by name, inode type, or parent folder. Use typefilters=['folder'] to find folder IDs for createworkbook and createworkbookfrom_template.
Get a file (inode) by ID, including its type, folder path, owner, and the caller's permission on it. Use list_files to find inode IDs.
Create a workspace, folder, workbook, or report. Use type='folder' with parentid to build folder structure. parentid comes from listfiles with typefilters=['folder'], or a member's homefolderid from getmember. parentid is not used when type='workspace'.
Rename a file, change its description, move it to another folder via parentid, transfer ownership, or restore it from the archive with restore=true. Use listfiles to find inode IDs.
Archive a file (workbook, folder, data model, or report) by inode ID, moving it to the trash along with a folder's contents. Restore it with updatefile and restore=true; purging the trash is only possible in the Sigma UI. Use listfiles to find inode IDs, and delete_workspace for workspaces.
Favorite a document for a member. Both memberid (from getcurrentuser or listmembers) and inodeid (from listfiles or listworkbooks) are required. Use listmemberfavorites to review favorites and removefavorite to undo.
Remove a document from a member's favorites. Get memberid from getcurrentuser or listmembers, and inodeid from listmember_favorites.
List the organization's account types (license tiers), built-in and custom. Call this before createmember or updatemember to get valid membertype values — accounttype_name is the value those tools expect.
List the organization's user attributes, used to drive row-level security and dynamic content. Filter server-side by name. Use getuserattribute for one attribute's detail.
Get a user attribute by ID, including its type and default value. Use listuserattributes to find user attribute IDs.
Get the member the API credentials act as, returning userid and organizationid. Use the returned userid as the memberid argument for listmemberfiles, listmemberfavorites, and remove_favorite.
List members (users) in the Sigma organization. Filter server-side with 'search' for a name or email substring, or 'email' for an exact address. Archived and deactivated members are excluded unless you opt in. Member IDs feed the team, grant, and favorite tools.
Get a member by ID, including their account type and homefolderid. The homefolderid is a valid folderid for createworkbook and createworkbookfromtemplate. Use listmembers or getcurrentuser for member IDs.
Create a member in the Sigma organization. membertype is an account type name — call listaccounttypes first, since custom account types vary per organization. Set sendinvite=true to email an invitation. Requires admin credentials.
Update a member's name, email, or account type, or deactivate them with isarchived=true. Call listaccounttypes for valid membertype values. Use list_members for member IDs. Requires admin credentials.
Deactivate a member, revoking their access while preserving their content. Use listmembers for member IDs, or updatemember with is_archived=false to reactivate. Requires admin credentials.
List the teams a member belongs to. Use listteammembers for the reverse lookup, or list_teams for all teams in the organization.
List the files a member can access, filterable by name, inode type, or parent folder. Use listfiles to browse the whole organization instead. Get member IDs from listmembers or getcurrentuser.
List a member's recently viewed files, most recent first. Use this to answer 'what has this person been looking at'. Get member IDs from listmembers or getcurrent_user.
List the documents a member has favorited. Use addfavorite and removefavorite to change them. Get member IDs from listmembers or getcurrent_user.
List the scheduled exports owned by a member. Use listworkbookschedules to see schedules on a specific workbook instead.
List Sigma reports — the paginated, print-oriented documents. Set isarchived=true to browse the archive. Report IDs feed the other report tools. Use listworkbooks for interactive workbooks instead.
Get a report by ID, including its name, folder path, owner, and latest version. Use list_reports to find report IDs.
List the pages in a report. Page IDs from here feed exportreport's pageid argument. Use list_reports for report IDs.
List the elements in a report. Element IDs from here feed getreportelementquery. Use listreports for report IDs.
Get the warehouse SQL Sigma generates for one report element. Use listreportelements for element IDs.
List columns for every element in a report, each tagged with its elementid. Use listreports for report IDs.
List a report's controls (filters and parameters). Call this before export_report to discover valid keys for its 'parameters' map — each control's 'name' is the key.
List the data sources a report reads from. Use list_reports to find report IDs.
Start a PDF export of a report and return a queryid to pass to downloadquery. Reports export as PDF only, and layout is required. Omit pageid to export every page. Call listreport_controls for valid 'parameters' keys.
List teams in the Sigma organization. Filter server-side by name, description, or visibility (public or private). Team IDs feed listteammembers, the grant tools, and create_member.
Get a team by ID, including its description and visibility. Use list_teams to find team IDs.
Create a team, optionally seeding it with members and creating a shared team folder. Get member IDs from list_members. Teams default to private visibility.
Update a team's name, description, or visibility. Use updateteammembers to change membership instead. Get team IDs from list_teams.
Delete a team permanently. Members are not deleted, but they lose any access the team granted. Use list_teams to find team IDs. This cannot be undone.
List the members of a team. Use listmemberteams for the reverse lookup, and updateteammembers to add or remove members.
Add or remove members on a team in one call. Get member IDs from listmembers to add, or listteam_members to remove. Provide at least one of add or remove.
Validate the Sigma client ID, client secret, and API base URL by fetching the current member. Use this to confirm setup before calling other tools.
List Sigma workbooks the credentials can access, newest first. Use this to find workbook IDs for the other workbook tools. Set isarchived=true to browse the archive. Page forward by passing pageinfo.cursor back as 'cursor' — Sigma ignores page numbers.
Get a Sigma workbook by ID, including its name, folder path, owner, and latestversion. Use listworkbooks to find workbook IDs. latestversion is the value createworkbook_bookmark needs.
Get the full schema of a workbook: every element with its columns and types. Set includesql=true to also return each element's generated SQL. Large for big workbooks — prefer listworkbook_elements to just enumerate elements.
List the pages (tabs) in a workbook. Use listworkbooks for workbook IDs. Page IDs from here feed listworkbookpageelements and the pageid argument of exportworkbook.
List every element (table, chart, control, text, image) in a workbook, across all pages. Use listworkbookpageelements instead to scope to one page. Element IDs from here feed getelementquery, listelementcolumns, and exportworkbook.
List the elements on one workbook page. Use listworkbookpages for page IDs. Prefer this over listworkbookelements when you only care about a single page.
Get the warehouse SQL Sigma generates for one workbook element. Use listworkbookelements for element IDs. Use listworkbookqueries to get the SQL for every element in one call instead.
List the columns of one workbook element, with labels, formulas, and data types. Use listworkbookelements for element IDs, or listworkbookcolumns to get columns for every element at once.
List columns for every element in a workbook in one call, each tagged with its elementid. Use listelement_columns for a single element.
List the generated warehouse SQL for every element in a workbook. Use this to audit what Sigma runs against the warehouse. Use getelementquery for one element.
List a workbook's controls (filters and parameters). Call this before exportworkbook to discover valid keys for its 'parameters' map — each control's 'name' is the key, and valuetype shows what it accepts.
List the data sources a workbook reads from (tables, data models, other workbooks). Use listworkbooklineage for the full upstream graph.
List the lineage graph for a workbook: warehouse tables, data models, and elements with their upstream source IDs. Use for data-lineage and impact analysis. Use getelementlineage to trace a single element.
Get the lineage of one workbook element, tracing it back to its sources. Use listworkbookelements for element IDs, or listworkbooklineage for the whole workbook.
List a workbook's published version history with publish times and authors. The version numbers here are valid workbookversion values for createworkbookbookmark and tagworkbook.
Create an empty workbook in a folder. folderid is required — get one from listfiles with typefilters=['folder'], or a member's homefolderid from getmember. To start from a template instead, use createworkbookfrom_template.
Duplicate a workbook into a destination folder. Both name and destinationfolderid are required — use listfiles with typefilters=['folder'] for folder IDs. Set copy_bookmarks to also copy saved views.
Start an export of a workbook element or page and return a queryid. Pass that queryid to downloadquery to fetch the bytes. elementid (from listworkbookelements) is required for csv, jsonl, json, and xlsx; pageid (from listworkbookpages) is used for pdf and png. Call listworkbook_controls for valid 'parameters' keys.
List the saved views (bookmarks) on a workbook. Bookmark IDs feed deleteworkbookbookmark and the bookmarkid filter on listworkbookelements; explorekey values here are what createworkbookbookmark requires.
Create a saved view (bookmark) on a workbook, reusing the exploration of an existing one. Requires name, workbookversion, isshared, and explorekey. Get workbookversion from getworkbook (latestversion) and explorekey from listworkbookbookmarks. The API cannot create an exploration, so a workbook with no existing saved view has no usable explorekey.
Delete a saved view (bookmark) from a workbook. Use listworkbookbookmarks to find bookmark IDs. This cannot be undone.
List the version tags applied to a workbook. Use listtags for all tags in the organization, or tagworkbook to apply one.
Apply a version tag to a published workbook version. 'tag' is the tag NAME, not its ID — call listtags and use the 'name' field, or createtag to make a new one. Defaults to the latest published version.
List the scheduled exports configured on a workbook. Use listmemberschedules to see schedules owned by a specific member instead.
Grant a member or team access to a workbook at the view, explore, or edit level. Provide exactly one of memberid (from listmembers) or teamid (from listteams). Use list_grants to review existing access.
Download the result of an export started by exportworkbook or exportreport, using the queryid those tools return. Returns base64-encoded bytes, cut off at maxbytes (default 5 MB) with truncated=true. Sigma needs a few seconds to finish an export, so retry on a not-found error.
List workspaces in the Sigma organization. Filter server-side by name, and set exact_name=true to require an exact match. Workspace IDs feed the workspace grant tools.
Get a workspace by ID. Use list_workspaces to find workspace IDs.
Create a workspace to hold shared folders and documents. Set no_duplicates=true to fail rather than create a second workspace with the same name.
Rename a workspace. Use list_workspaces to find workspace IDs.
Delete a workspace permanently, along with the documents it contains. Use list_workspaces to find workspace IDs. This cannot be undone.
List the members and teams granted access to a workspace, with their permission levels. Use createworkspacegrant to add access and deleteworkspacegrant to remove it.
Grant a member or team access to a workspace at the view, explore, organize, or edit level. Provide exactly one of memberid (from listmembers) or teamid (from listteams).
Revoke a member's or team's access to a workspace. Use listworkspacegrants to find grant IDs. This cannot be undone.
List permission grants. Sigma requires at least one of inodeid (from listfiles or listworkbooks), teamid (from listteams), or memberid (from listmembers) — a call with none of them is rejected. Set directgrants_only=true to exclude inherited folder grants.
Get a permission grant by ID. Use list_grants to find grant IDs.
Grant a member or team access to any inode (folder, workbook, data model, table). Provide exactly one of memberid or teamid. Valid permission values depend on the inode type — see the permission field description. For workbooks and workspaces, createworkbookgrant and createworkspacegrant are simpler.
Revoke a permission grant. Use list_grants to find grant IDs. This cannot be undone.

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}
11Open 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}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 }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}It's an MCP server that lets your agents access data and functionality from Sigma Computing via tools. Your agents can invoke these tools to pull a workbook's latest results, list the datasets available in a workspace, check who has access to a given workspace, export a dashboard's underlying data, and more.
Sigma Computing also ships its own MCP server for natural-language search and analysis over workbooks and data models, but Merge Agent Handler lets you combine Sigma Computing tools with every other connector your agents use in one governed endpoint, with credential management, DLP, and audit logging built in.
The use cases naturally depend on the agent you've built, but here are a few common ones:
Here are some of the most commonly used tools:
list_workbooks: returns the workbooks a user or service account can see across workspaces. it's the starting point for most agents since almost every other call needs a workbook ID firstget_workbook_data: pulls the current query results from a specific workbook element. agents use it to answer questions about the latest numbers without re-running the underlying SQL themselveslist_datasets: lists the datasets and data models available in a workspace, including their descriptions. this is how an agent discovers what data exists before it tries to query anythingget_dataset_schema: returns column names, types, and definitions for a given dataset. agents rely on this to write accurate queries and explain what a field actually measureslist_workspace_members: lists who has access to a workspace and at what permission level. it's commonly used for access audits and provisioning checksget_embed_url: generates a signed embed URL for a workbook or dashboard. agents use it to hand off a live view of the data instead of describing it in textA few things set Merge Agent Handler's Sigma Computing MCP server apart from building your own or using a community alternative:
You can take the following steps:
1. Create or log into your Merge Agent Handler account.
2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.
3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.
4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Sigma Computing and complete the auth flow. Merge stores and manages the credentials going forward.
5. Open a Claude Code session and start querying Sigma Computing data directly. The first time you use a Sigma Computing tool, a Magic Link may appear to complete connector authentication.
If you want to connect Merge Agent Handler's Sigma Computing MCP with internal or customer-facing agentic products, you can follow the steps in our docs.
Yes, Merge for Workforce lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, Codex, and other MCP-compatible AI tools to Sigma Computing without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Merge and gets individual credentials tied to their identity. A data analyst can ask their AI to pull a workbook's latest numbers, summarize a dashboard, or check a metric trend, all within IT-defined permissions.
IT also provisions access by role or group via SCIM. A data analyst, for example, gets Sigma Computing access to query workbooks, Snowflake access to run ad hoc SQL, and Slack access to post dashboard summaries, while a sales manager gets Salesforce access to pull pipeline data, Sigma Computing access to check quota dashboards, and Gmail access to draft forecast updates.
Every tool call an employee's AI makes to Sigma Computing is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now