
List cells in a project with pagination. Use cursor from page_info for next page.
Get a cell by ID within a project.
Create a new cell in a project. Pass cell type and content in cell_data.
Update a cell's content or configuration within a project.
Delete a cell from a project permanently.
List collections in the workspace with pagination. Use cursor from page_info for next page.
Get a collection by ID including name, description, creator, and sharing settings.
Create a new collection to organize projects.
Update a collection's name or description.
List accessible data connections with pagination. Use cursor from page_info for next page.
Get a data connection by ID including configuration, sharing, and schema settings.
Create a new data connection. Requires name, type (e.g. snowflake, postgres, bigquery), and type-specific connection details.
Update a data connection's name, description, configuration, or sharing settings.
Update a data connection's schema filters to include or exclude databases, schemas, or tables. Each update: {"type": "DATABASE"|"SCHEMA"|"TABLE", "name": "<name>", "status": "INCLUDED"|"EXCLUDED"}.
List workspace groups with pagination. Sort by CREATEDAT or NAME. Use cursor from pageinfo for next page.
Get a group by ID including name and creation date.
Create a new workspace group with optional initial members. Use list_users to find user IDs for members.
Update a group's name and membership. Add or remove users by ID. Use list_users to find user IDs.
Delete a workspace group permanently. This cannot be undone.
List guide drafts with pagination. Use cursor from page_info for next page.
Create or update a guide draft. Pass guide data including title, content, and configuration.
Publish guide drafts. Optionally specify guide IDs, or omit to publish all drafts.
Delete a guide draft permanently. Use listguidedrafts to find IDs.
Get warehouse tables queried within a project. Enterprise plan only. Use list_projects to find project IDs.
List projects in the workspace. Filter by status, category, creator, owner, or collection. Supports sorting and pagination. Use cursor from page_info for next page.
Get metadata for a single project by ID. Optionally include sharing details.
Create a new project in the workspace with a title and optional description.
Update a project's status or endorsements.
Share a project with specific users. Set access level per user (CANVIEW, CANEDIT, FULLACCESS, NONE). Use listusers to find user IDs.
Share a project with groups. Set access level per group (CANVIEW, CANEDIT, FULLACCESS, NONE). Use listgroups to find group IDs.
Add a project to collections with specific access levels (APPONLY, CANVIEW, CANEDIT, FULLACCESS, NONE). Use list_collections to find collection IDs.
Update workspace-wide and public web sharing for a project. Access levels: NONE, APPONLY, CANVIEW, CANEDIT, FULLACCESS.
Trigger a run of a published project. Optionally pass input parameters, notification configs, and cache settings. Project must be published first.
List run history for a project. Filter by status (PENDING, RUNNING, ERRORED, COMPLETED, KILLED) or trigger type (API, SCHEDULED, APP_REFRESH). Uses offset pagination.
Get detailed status of a specific project run including timing, state events, and notifications.
Cancel an in-progress project run. Only works on runs with PENDING or RUNNING status.
Get a rendered PNG chart image from a completed project run. Returns base64-encoded image data. Requires the chart cell's static ID.
Get the authenticated user's profile including name, email, and workspace role.
List workspace users with pagination. Use cursor from page_info for next page.
Deactivate a workspace user. Use list_users to find user IDs. This action cannot be undone via API.
Validate Hex API token by retrieving the current user profile.

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}A Hex MCP is a server that connects your agents to Hex through a set of callable tools. Your agents can use those tools to run projects, check run status, manage data connections, and share projects with users or groups, and more.
Hex offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.
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:
run_project: triggers a Hex project to execute on demand, using the project's current logic and connected data sources. Use this when an agent needs to refresh an analysis in response to an upstream eventget_run_status: returns the current state of a project run, including whether it's running, completed, or failed. Useful for agents that need to wait for a run to finish before taking a downstream actionget_run_chart_image: fetches a rendered chart image from a completed project run. Good for workflows that need to attach a visual output to a report, email, or Slack messagelist_projects: retrieves all projects available in a Hex workspace, including metadata like owner and visibility. Call this when an agent needs to locate a specific project before running or sharing itshare_project_groups: grants a Hex group access to a specific project. Helpful when an agent handles onboarding or permissions changes across multiple workspace members at oncelist_data_connections: returns all data connections configured in the workspace, including type and connection details. Use this when an agent needs to verify that a data source is available before triggering a project run that depends on itSeveral things set Merge Agent Handler's Hex MCP server apart from building your own or using another:
run_project and get_run_status. A provisioning agent gets group and sharing tools. Neither can reach the other's operationsYou 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 Hex and complete the auth flow. Merge stores and manages the credentials going forward.
5. Open a Claude Code session and start querying Hex data directly. The first time you use a Hex tool, a Magic Link may appear to complete connector authentication.
If you want to connect Merge Agent Handler's Hex MCP with internal or customer-facing agentic products, you can follow the steps in our docs.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now