aws-samples/sample-amazon-redshift-MCP-server
If you are the rightful owner of sample-amazon-redshift-MCP-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Redshift MCP Server is a Python-based implementation of the Model Context Protocol that provides tools and resources for interacting with Amazon Redshift databases.
Notice
AWS has officially released the Amazon Redshift MCP Server. We recommend using the official implementation available at: https://github.com/aws-samples/sample-amazon-redshift-MCP-server.git. This repository will no longer be updated.
Redshift MCP Server
A Model Context Protocol (MCP) server for Amazon Redshift that enables AI assistants to interact with Redshift databases.
Introduction
Redshift MCP Server is a Python-based implementation of the Model Context Protocol that provides tools and resources for interacting with Amazon Redshift databases. It allows AI assistants to:
- List schemas and tables in a Redshift database
- Retrieve table DDL (Data Definition Language) scripts
- Get table statistics
- Execute SQL queries
- Analyze tables to collect statistics information
- Get execution plans for SQL queries
Installation
Prerequisites
- Python 3.13 or higher
- Amazon Redshift cluster
- Redshift credentials (host, port, username, password, database)
Install from source
# Clone the repository
git clone https://github.com/aws-samples/sample-amazon-redshift-MCP-server.git
cd sample-amazon-redshift-MCP-server
# Install dependencies
uv sync
Configuration
The server requires the following environment variables to connect to your Redshift cluster:
RS_HOST=your-redshift-cluster.region.redshift.amazonaws.com
RS_PORT=5439
RS_USER=your_username
RS_PASSWORD=your_password
RS_DATABASE=your_database
RS_SCHEMA=your_schema # Optional, defaults to "public"
Usage
Integrating with AI assistants
To use this server with an AI assistant that supports MCP, add the following configuration to your MCP settings:
{
"mcpServers": {
"redshift": {
"command": "uv",
"args": ["--directory", "src/redshift_mcp_server", "run", "server.py"],
"env": {
"RS_HOST": "your-redshift-cluster.region.redshift.amazonaws.com",
"RS_PORT": "5439",
"RS_USER": "your_username",
"RS_PASSWORD": "your_password",
"RS_DATABASE": "your_database",
"RS_SCHEMA": "your_schema"
}
}
}
}
Features
Resources
The server provides the following resources:
rs:///schemas
- Lists all schemas in the databasers:///{schema}/tables
- Lists all tables in a specific schemars:///{schema}/{table}/ddl
- Gets the DDL script for a specific tablers:///{schema}/{table}/statistic
- Gets statistics for a specific table
Tools
The server provides the following tools:
execute_sql
- Executes a SQL query on the Redshift clusteranalyze_table
- Analyzes a table to collect statistics informationget_execution_plan
- Gets the execution plan with runtime statistics for a SQL query
Examples
Listing schemas
access_mcp_resource("redshift-mcp-server", "rs:///schemas")
Listing tables in a schema
access_mcp_resource("redshift-mcp-server", "rs:///public/tables")
Getting table DDL
access_mcp_resource("redshift-mcp-server", "rs:///public/users/ddl")
Executing SQL
use_mcp_tool("redshift-mcp-server", "execute_sql", {"sql": "SELECT * FROM public.users LIMIT 10"})
Analyzing a table
use_mcp_tool("redshift-mcp-server", "analyze_table", {"schema": "public", "table": "users"})
Getting execution plan
use_mcp_tool("redshift-mcp-server", "get_execution_plan", {"sql": "SELECT * FROM public.users WHERE user_id = 123"})
Development
Project structure
redshift-mcp-server/
├── src/
│ └── redshift_mcp_server/
│ ├── __init__.py
│ └── server.py
├── pyproject.toml
└── README.md
Dependencies
mcp[cli]>=1.5.0
- Model Context Protocol SDKpython-dotenv>=1.1.0
- For loading environment variables from .env filesredshift-connector>=2.1.5
- Python connector for Amazon Redshift