redshift-mcp-server
Redshift MCP Server is a Python-based server that allows AI assistants to interact with Amazon Redshift databases using the Model Context Protocol. It provides resources and tools to manage schemas, execute SQL queries, and analyze database tables.
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/Moonlight-CL/redshift-mcp-server.git
cd 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"
You can set these environment variables directly or use a .env
file.
Usage
Starting the server
# Start the server
uv run --with mcp python-dotenv redshift-connector mcp
mcp run src/redshift_mcp_server/server.py
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