Redshift数据库交互服务器

Redshift MCP Server是一个基于Python的模型上下文协议实现,使AI助手能够与Amazon Redshift数据库交互,包括查询执行、表分析和统计信息获取等功能。

  • by aws-samples
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 aws-samples/sample-amazon-redshift-mcp-server

使用说明

通知

AWS正式发布了Amazon Redshift MCP服务器。我们建议使用以下网址提供的官方实现:https://github.com/aws-samples/sample-amazon-redshift-MCP-server.git.此存储库将不再更新。

Redshift MCP服务器

Amazon Redshift的模型上下文协议(MCP)服务器,使AI助手能够与Redshift数据库交互。

引言

Redshift MCP Server是基于Python的 模型上下文协议 它提供了与Amazon Redshift数据库交互的工具和资源。它允许AI助手:

  • 列出Redshift数据库中的模式和表
  • 检索表DDL(数据定义语言)脚本
  • 获取表格统计信息
  • 执行SQL查询
  • 分析表格以收集统计信息
  • 获取SQL查询的执行计划

安装

先决条件

  • Python 3.13或更高版本
  • 亚马逊Redshift集群
  • Redshift凭据(主机、端口、用户名、密码、数据库)

从源代码安装

# 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

配置

服务器需要以下环境变量才能连接到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  # Optional, defaults to "public"

用法

与AI助手集成

要将此服务器与支持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"
      }
    }
  }
}

特性

资源

服务器提供以下资源:

  • rs:///schemas -列出数据库中的所有架构
  • rs:///{schema}/tables -列出特定架构中的所有表
  • rs:///{schema}/{table}/ddl -获取特定表的DDL脚本
  • rs:///{schema}/{table}/statistic -获取特定表的统计信息

工具

服务器提供以下工具:

  • execute_sql -在Redshift集群上执行SQL查询
  • analyze_table -分析表格以收集统计信息
  • get_execution_plan -获取包含SQL查询运行时统计信息的执行计划

例子

列出模式

access_mcp_resource("redshift-mcp-server", "rs:///schemas")

在模式中列出表

access_mcp_resource("redshift-mcp-server", "rs:///public/tables")

获取表DDL

access_mcp_resource("redshift-mcp-server", "rs:///public/users/ddl")

正在执行SQL

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 WHERE user_id = 123"})

发展

项目结构

redshift-mcp-server/
├── src/
│   └── redshift_mcp_server/
│       ├── __init__.py
│       └── server.py
├── pyproject.toml
└── README.md

依赖项

  • mcp[cli]>=1.5.0 -模型上下文协议SDK
  • python-dotenv>=1.1.0 -用于从.env文件加载环境变量
  • redshift-connector>=2.1.5 -Amazon Redshift的Python连接器