Connect your AI Agents to AWS Redshift in minutes

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

Available tools

list_databases

List the databases in a Redshift cluster or serverless workgroup through the Redshift Data API. Use listclusters or listworkgroups to pick a target. Returns database names to pass to listschemas, listtables and the query tools.

list_schemas

List the schemas in a database through the Redshift Data API, optionally filtered by a name pattern. Use listdatabases to find the database first. Returns schema names to pass to listtables.

list_tables

List tables, views and external tables in a database through the Redshift Data API, optionally filtered by schema and table name patterns. Use listschemas to find schema names. Use describetable for a table's columns.

describe_table

Describe a table's columns (name, data type, nullability, precision/scale) through the Redshift Data API. Use list_tables to find the table and schema first. This is the Redshift Data API equivalent of listing a table's columns.

list_clusters

List provisioned Amazon Redshift clusters in the account and region. For Redshift Serverless, use listworkgroups instead. Pass clusteridentifier to fetch one cluster. Returns cluster ids, endpoints and status for use with the data-catalog and query tools.

list_workgroups

List Amazon Redshift Serverless workgroups in the account and region. For provisioned clusters, use listclusters instead. Returns workgroup names, namespaces, endpoints and status. Use getworkgroup for one workgroup's full config.

get_workgroup

Get one Amazon Redshift Serverless workgroup's full configuration by name, including its namespace, endpoint and capacity. Use list_workgroups to find workgroup names first.

review_cluster

Run a read-only diagnostic review of a Redshift cluster or serverless workgroup: a bounded set of health-check queries over Redshift system views (distribution skew, unsorted rows, disk usage, stale statistics), returning findings and recommendations. Use listclusters/listworkgroups and listdatabases to set the target. The total wait budget for all diagnostics and the visibility precheck is capped at 45 seconds. svvtable_info shows all tables only to a database superuser or a user granted SYS:MONITOR / ACCESS SYSTEM TABLE; other users may receive incomplete visibility. Read-only: it runs only SELECTs.

execute_statement

Submit a single SQL statement to a Redshift cluster or workgroup via the Redshift Data API and return its statement id immediately WITHOUT waiting for it to finish. Poll describestatement until FINISHED, then fetch rows with getstatementresult. To submit and block until results are ready in one call, use runquery instead. Use listclusters/listworkgroups and list_databases to set the target.

batch_execute_statement

Submit multiple SQL statements as one serialized batch via the Redshift Data API and return the batch statement id immediately. The statements run in order. Poll describestatement with the returned id to see per-statement status (SubStatements); fetch each statement's rows with getstatementresult using the id plus a ':n' suffix. Use executestatement for a single statement. Use listclusters/listworkgroups and list_databases to set the target.

describe_statement

Get the status and metadata of a submitted statement (status, row count, error, run time) via the Redshift Data API. Poll this after executestatement or batchexecutestatement until status is FINISHED, then call getstatementresult. Use liststatements to find statement ids.

get_statement_result

Fetch one page of a FINISHED statement's result set via the Redshift Data API. Call describestatement first to confirm status is FINISHED and hasresultset is true. Returns column metadata and rows of Field objects; pass pageinfo.nexttoken back for more pages. Rows trimmed by maxrows are not reachable through nexttoken; raise maxrows or narrow the query with LIMIT/WHERE to see more. For a one-shot query, use run_query.

list_statements

List SQL statements submitted via the Redshift Data API, filtered by status and/or name, so an agent can find a prior statement's id. Use describestatement for one statement's full status and getstatement_result for its rows.

cancel_statement

Cancel a running SQL statement by id via the Redshift Data API. This is the inverse of executestatement/runquery for a long-running query. A statement that has already finished cannot be cancelled. Use list_statements to find running statement ids.

run_query

Run a single SQL statement and BLOCK until it finishes, then return the first page of rows in one call — the convenient path for interactive queries. Submits via the Redshift Data API, polls to completion, and fetches results. The default wait is 30 seconds, capped at 45 seconds below the platform's approximately 55-second request timeout. For longer queries, use executestatement followed by describestatement. If a timeout returns a non-terminal status and statementid, poll that same statementid with describestatement instead of resubmitting the SQL. Use listclusters/listworkgroups and listdatabases to set the target. The first page is capped by maxrows; rows trimmed from it are not reachable through nexttoken, so raise max_rows or narrow the query with LIMIT/WHERE to see more.

validate_credential

Verify AWS IAM credentials with minimal read-only access checks: first DescribeClusters, then ListWorkgroups and ListStatements if the prior check is permission-denied. Returns success when any probe is accessible; if all three are denied, reports valid credentials without Redshift read permissions.

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 AWS Redshift  MCP server

FAQs on using Merge's AWS Redshift  MCP server

Explore other MCP servers built and managed by Merge

avalara-mcp-server
Avalara MCP Server
aviationstack
Aviationstack
aws_partner_central_selling
AWS Partner Central Selling
axiom
Axiom
axiom-co-mcp-server
Axiom MCP Server
bamboohr
BambooHR
basecamp
Basecamp
baseten-mcp-server
Baseten
better-stack-mcp-server
Better Stack
biorxiv
bioRxiv
bird-mcp-server
Bird
bitbucket
Bitbucket
bitly
Bitly
box
Box
braintrust-mcp-server
Braintrust
brevo-mcp-server
Brevo
brex
Brex
brex-mcp-server
Brex MCP Server
browserbase
Browserbase
bugsnag-mcp-server
Bugsnag
builder-io-mcp-server
Builder.io
buildkite-mcp-server
Buildkite
cal-com-mcp-server
Cal.com
calendly
Calendly

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