My Redshift Mcp

My Redshift Mcp

🚀 Redshift MCP 服务器

Redshift MCP 服务器是一款即插即用的模型上下文协议(MCP)服务器,专为 Amazon Redshift 设计。它能让大语言模型(LLM)和 AI 智能体(如 Claude、ChatGPT 等)安全、便捷地连接到你的 Redshift 数据。

🚀 快速开始

1. 克隆并安装

git clone 
cd my-redshift-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2. 配置(推荐:创建一个 .env 文件)

REDSHIFT_HOST=your-cluster.region.redshift.amazonaws.com
REDSHIFT_DATABASE=mydb
REDSHIFT_USER=myuser
REDSHIFT_PASSWORD=mypassword
REDSHIFT_PORT=5439
DB_MCP_MODE=readonly

3. 运行服务器

./scripts/run_server.sh

4. 从你的 LLM/MCP 客户端连接(例如,Claude Desktop)

✨ 主要特性

  • 生产就绪:安全、稳定且易于部署。
  • 遵循 MCP 标准:将 Redshift 作为标准化工具提供给大语言模型和 AI。
  • 严格的访问模式:支持 readonlyreadwriteadmin 三种模式(通过环境变量强制实施)。
  • 自动连接:使用环境变量或 .env 文件实现无缝启动。
  • 无需代码更改:只需配置并运行即可。
  • 可扩展:轻松添加新工具或业务逻辑。
  • 兼容性强:可与 Claude Desktop、ChatGPT 以及任何 MCP 客户端配合使用。

📦 安装指南

  1. 克隆或下载此仓库。
  2. 安装依赖项:
pip install -r requirements.txt

💻 使用示例

基础用法

1. connect_db

连接到 Redshift 数据库集群。如果设置了环境变量,则参数可选。

# 显式指定参数
{
"tool": "connect_db",
"arguments": {
"host": "your-cluster.region.redshift.amazonaws.com",
"database": "mydb",
"user": "myuser",
"password": "mypassword",
"port": 5439
}
}

# 设置了环境变量
{
"tool": "connect_db",
"arguments": {}
}

2. query

执行 SELECT 查询以检索数据。

{
"tool": "query",
"arguments": {
"sql": "SELECT * FROM users WHERE created_at > %s",
"params": ["2024-01-01"]
}
}

3. execute

执行数据修改或 DDL 语句。

{
"tool": "execute",
"arguments": {
"sql": "INSERT INTO users (name, email) VALUES (%s, %s)",
"params": ["John Doe", "john@example.com"]
}
}

4. list_schemas

列出所有用户创建的模式。

{
"tool": "list_schemas",
"arguments": {}
}

5. list_tables

列出特定模式中的表。

{
"tool": "list_tables",
"arguments": {
"schema": "public"
}
}

6. describe_table

获取表结构的详细信息。

{
"tool": "describe_table",
"arguments": {
"table": "users",
"schema": "public"
}
}

7. disconnect

关闭数据库连接。

{
"tool": "disconnect",
"arguments": {}
}

📚 详细文档

关于 Redshift MCP 服务器

Redshift MCP 服务器是 Amazon Redshift 和现代 AI 助手之间的开源桥梁。它允许大语言模型使用 模型上下文协议(MCP) 安全地查询、探索并(可选)修改你的 Redshift 数据。适用于:

  • 希望启用 AI 驱动分析的数据团队。
  • 构建 AI 工作流和自动化。
  • 让大语言模型安全、可审计地访问生产数据。

项目概述

本仓库使用 FastMCP 框架提供了一个适用于 Amazon Redshift 的最小化、生产就绪的 MCP 服务器。它允许大语言模型和 AI 智能体:

  • 查询 Redshift 数据库(具有严格的访问控制)。
  • 列出模式和表。
  • 描述表结构。
  • (可选)根据配置的模式插入/更新数据。

访问模式和查询安全

服务器支持三种访问模式,由 DB_MCP_MODE 环境变量控制:

1. 只读模式(默认)

  • 允许操作SELECTSHOWDESCRIBE 等。
  • 禁止操作INSERTUPDATEDELETEDROPTRUNCATEALTERCREATEGRANTREVOKECOMMENTSETCOPYUNLOADVACUUMANALYZEMERGE

2. 读写模式

  • 允许操作SELECTINSERTUPDATECREATE 等。
  • 禁止操作DELETEDROPTRUNCATEALTERGRANTREVOKECOMMENTSETCOPYUNLOADVACUUMANALYZEMERGE

3. 管理员模式

  • 允许所有操作(无限制)。

如果检测到禁止的语句,服务器将返回清晰的错误消息。

设置访问模式的方法

  • 环境变量DB_MCP_MODE=readonly(或 readwriteadmin)。
  • Claude Desktop 配置
"env": {
"DB_MCP_MODE": "readwrite",
...
}
  • Shell/本地
export DB_MCP_MODE=readonly
./run_server.sh

运行服务器

直接运行服务器:

python src/redshift_mcp_server.py

或者使用提供的脚本:

./scripts/run_server.sh
# 或者在 Windows 上:
scripts\run_server.bat

默认情况下,服务器使用 STDIO 传输,适用于与 Claude Desktop 等 MCP 客户端集成。

Claude Desktop 配置

要在 Claude Desktop 中使用此服务器,请在你的 Claude Desktop 配置文件中添加以下配置:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%/Claude/claude_desktop_config.json

选项 1:使用环境变量(推荐)

{
"mcpServers": {
"redshift": {
"command": "/Users/anshulpatre/Desktop/DB-mcp/my-redshift-mcp/venv/bin/python",
"args": ["/Users/anshulpatre/Desktop/DB-mcp/my-redshift-mcp/src/redshift_mcp_server.py"],
"env": {
"REDSHIFT_HOST": "your-cluster.region.redshift.amazonaws.com",
"REDSHIFT_DATABASE": "mydb",
"REDSHIFT_USER": "myuser",
"REDSHIFT_PASSWORD": "mypassword",
"REDSHIFT_PORT": "5439",
"DB_MCP_MODE": "readonly"
}
}
}
}

使用此配置,服务器将在启动时自动连接到你的 Redshift 数据库。你无需手动使用 connect_db 工具。

选项 2:不使用环境变量

{
"mcpServers": {
"redshift": {
"command": "/Users/anshulpatre/Desktop/DB-mcp/my-redshift-mcp/venv/bin/python",
"args": ["/Users/anshulpatre/Desktop/DB-mcp/my-redshift-mcp/src/redshift_mcp_server.py"]
}
}
}

使用此配置,你需要使用 connect_db 工具建立连接。

环境变量

服务器支持以下环境变量:

  • REDSHIFT_HOST:Redshift 集群端点。
  • REDSHIFT_DATABASE:数据库名称。
  • REDSHIFT_USER:用户名。
  • REDSHIFT_PASSWORD:密码。
  • REDSHIFT_PORT:端口号(默认:5439)。
  • DB_MCP_MODE:访问模式(readonlyreadwriteadmin)。

当设置这些环境变量时,服务器将:

  1. 在启动时自动连接。
  2. 如果未提供参数,则将其用作 connect_db 工具的默认值。
  3. 根据所选模式强制实施查询/语句限制。

🔧 技术细节

安全考虑

  • 凭证管理:推荐在 MCP 配置文件中使用环境变量,这样可以避免将凭证暴露在代码和工具调用中。
  • 权限设置:使用具有最小必要权限的数据库用户。
  • 查询安全:服务器使用参数化查询来防止 SQL 注入。根据所选模式检查并阻止查询/语句类型。
  • 网络安全:确保你的 Redshift 集群通过 VPC 和安全组进行了适当的安全配置。

开发扩展

要扩展此服务器:

  1. 使用 @mcp.tool() 装饰器添加新工具。
  2. 遵循 FastMCP 文档以使用高级功能。
  3. 使用你的 Redshift 集群进行全面测试。

故障排除

连接问题

  • 验证你的 Redshift 集群端点和凭证。
  • 检查网络连接和安全组设置。
  • 确保集群处于活动状态并接受连接。

导入错误

  • 如果 redshift-connector 不可用,服务器将回退到 psycopg2
  • 根据你的需求安装适当的连接器。

📄 许可证

本项目采用 MIT 许可证。

贡献说明

欢迎提交问题或拉取请求,以改进此 MCP 服务器。

👤 维护者

此 Redshift MCP 服务器由 Anshul 维护和部署。

  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-23 18:33

相似服务问题

相关AI产品