一个基于 Amazon Redshift 的模型上下文协议 (MCP) 服务器,使 AI 助手能够与 Redshift 数据库交互。借助该服务器,AI 助手可方便地对数据库进行操作,提升数据处理效率。
Redshift MCP 服务器是 Model Context Protocol 的 Python 实现,提供工具和资源用于与 Amazon Redshift 数据库交互。它允许 AI 助手执行以下操作:
# 克隆仓库
git clone https://github.com/Moonlight-CL/redshift-mcp-server.git
cd redshift-mcp-server
# 安装依赖项
uv sync
服务器需要以下环境变量来连接到您的 Redshift 集群:
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 # 可选,默认为 "public"
您可以直接设置这些环境变量,或使用 .env 文件。
# 启动服务器
uv run --with mcp python-dotenv redshift-connector mcp
mcp run src/redshift_mcp_server/server.py
要将此服务器与支持 MCP 的 AI 助手一起使用,请在您的 MCP 设置中添加以下配置:
{
"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"
}
}
}
}
access_mcp_resource("redshift-mcp-server", "rs:///schemas")
access_mcp_resource("redshift-mcp-server", "rs:///public/tables")
access_mcp_resource("redshift-mcp-server", "rs:///public/users/ddl")
use_mcp_tool("redshift-mcp-server", "execute_sql", {"sql": "SELECT * FROM public.users LIMIT 10"})
use_mcp_tool("redshift-mcp-server", "analyze_table", {"schema": "public", "table": "users"})
use_mcp_tool("redshift-mcp-server", "get_execution_plan", {"sql": "SELECT * FROM public.users LIMIT 10"})
服务器提供以下资源:
rs:///schemas - 列出数据库中的所有架构rs:///{schema}/tables - 列出特定架构中的所有表rs:///{schema}/{table}/ddl - 获取特定表的 DDL 脚本rs:///{schema}/{table}/statistic - 获取特定表的统计信息服务器提供以下工具:
execute_sql - 在 Redshift 集群上执行 SQL 查询analyze_table - 分析表以收集统计信息get_execution_plan - 获取 SQL 查询的执行计划及其运行时统计信息.
├── src/
│ └── redshift_mcp_server/
│ ├── server.py
│ └── [其他模块]
└── [其他文件]
uv - MCP 协议的实现python-dotenv - 加载环境变量redshift-connector - Redshift 连接器