Token导航 LogoToken导航TokenDH.com
Redshift Utils MCP logo
搜索检索stdio官方级别未说明来源级核验

Redshift Utils MCP

MCP Server

🤖 Enable AI assistants (Claude, Cursor) to monitor, diagnose, and query Amazon Redshift using this MCP server and the AWS Data API.

工具数

0

提示词数

0

GitHub Stars

6

资源数

0
数据库工具数据访问PythonClaudeClaudeCursorClaude Desktop

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

vinodismyname

提供方

vinodismyname

最后核验

2026/5/18 02:50

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install redshift-utils-mcp

详细介绍

Redshift使用MCP服务器

概述

该项目实现了一个专门用于与Amazon Redshift数据库交互的模型上下文协议(MCP)服务器。

它弥合了大型语言模型(LLM)或人工智能助手(如Claude、Cursor或自定义应用程序中的助手)与Redshift数据仓库之间的差距,实现了安全、标准化的数据访问和交互。这允许用户使用自然语言或人工智能驱动的提示查询数据、理解数据库结构和监控/诊断操作。

此服务器适用于希望以结构化和安全的方式将LLM功能直接与其Amazon Redshift数据环境集成的开发人员、数据分析师或团队。

目录

- 概述 - 目录 - 特性 - 先决条件 - 安装 - 从PyPI安装(推荐) - 从源代码安装 - 配置 - 用法 - 连接克劳德桌面/拟人控制台: - 与Claude Code CLI连接: - 与Cursor IDE连接: - 可用MCP资源 - 可用的MCP工具 - 待办 - 参考文献

特性

  • 安全的Redshift连接(通过Data API): 通过Boto3使用AWS Redshift Data API连接到您的亚马逊Redshift集群,利用AWS Secrets Manager通过环境变量安全管理凭据。
  • 🔍 架构发现: 公开MCP资源,以列出指定架构中的架构和表。
  • 📊 元数据和统计: 提供工具(handle_inspect_table)收集详细的表元数据、统计数据(如大小、行数、偏斜、统计数据陈旧性)和维护状态。
  • 📝 只读查询执行: 提供安全的MCP工具(handle_execute_ad_hoc_query)对Redshift数据库执行任意SELECT查询,从而实现基于LLM请求的数据检索。
  • 📈 查询性能分析: 包括一个工具(handle_diagnose_query_performance)检索和分析特定查询ID的执行计划、指标和历史数据。
  • 🔍 表检查: 提供工具(handle_inspect_table)对表格进行全面检查,包括设计、存储、运行状况和使用情况。
  • 🩺 群集运行状况检查: 提供工具(handle_check_cluster_health)使用各种诊断查询对集群进行基本或全面的健康评估。
  • 🔒 锁诊断: 提供工具(handle_diagnose_locks)识别并报告当前的锁争用和阻塞会话。
  • 📊 工作量监控: 包括一个工具(handle_monitor_workload)分析一个时间窗口内的集群工作负载模式,包括WLM、顶级查询和资源使用情况。
  • 📝 DDL检索: 提供工具(handle_get_table_definition)要检索 SHOW TABLE 指定表的输出(DDL)。
  • 🛡️ 输入消毒: 在适用的情况下,通过Boto3 Redshift Data API客户端使用参数化查询来降低SQL注入风险。
  • 🧩 标准化MCP接口: 遵守模型上下文协议规范,与兼容客户端(如Claude Desktop、Cursor IDE、自定义应用程序)无缝集成。

先决条件

软件:

  • Python 3.10+
  • uv (推荐的包管理器)或 pip

基础设施和通道:

  • 访问Amazon Redshift集群。
  • 具有使用Redshift Data API权限的AWS帐户(redshift-data:*)并访问指定的Secrets Manager密钥(secretsmanager:GetSecretValue).
  • Redshift用户帐户,其凭据存储在AWS Secrets Manager中。该用户需要Redshift内的必要权限来执行该服务器启用的动作(例如。, CONNECT 到数据库, SELECT 在目标表上, SELECT 关于相关的系统观点,如 pg_class, pg_namespace, svv_all_schemas, svv_tables,\svv_table_info\)。强烈建议使用具有最小特权原则的角色。看 安全考虑.

资格证书:

您的Redshift连接详细信息通过AWS Secrets Manager进行管理,服务器使用Redshift Data API进行连接。您需要:

  • Redshift群集标识符。
  • 群集中的数据库名称。
  • AWS Secrets Manager机密的ARN,其中包含数据库凭据(用户名和密码)。
  • 集群和机密所在的AWS区域。
  • 如果不使用默认凭据/区域,则可以选择AWS配置文件名称。

这些详细信息将通过环境变量进行配置,详见 配置 部分。

安装

从PyPI安装(推荐)

安装Redshift Utils MCP服务器的最简单方法是直接从PyPI安装:

# Using pip
pip install redshift-utils-mcp

# Using uv (recommended)
uv pip install redshift-utils-mcp

从源代码安装

或者,您可以从源代码存储库安装:

# Clone the repository
git clone https://github.com/vinodismyname/redshift-utils-mcp.git
cd redshift-utils-mcp

# Install using uv (recommended)
uv sync

# Or install using pip
pip install -e .

配置

设置环境变量: 此服务器需要以下环境变量才能通过AWS Data API连接到您的Redshift集群。您可以使用systemd服务文件、Docker环境文件或创建 .env 项目根目录中的文件(如果使用以下工具 uvpython-dotenv 支持从以下位置加载 .env).

使用shell导出的示例:

export REDSHIFT_CLUSTER_ID="your-cluster-id"
export REDSHIFT_DATABASE="your_database_name"
export REDSHIFT_SECRET_ARN="arn:aws:secretsmanager:us-east-1:123456789012:secret:your-redshift-secret-XXXXXX"
export AWS_REGION="us-east-1" # Or AWS_DEFAULT_REGION
# export AWS_PROFILE="your-aws-profile-name" # Optional

示例 .env 文件(参见 .env.example):

# .env file for Redshift MCP Server configuration
# Ensure this file is NOT committed to version control if it contains secrets. Add it to .gitignore.

REDSHIFT_CLUSTER_ID="your-cluster-id"
REDSHIFT_DATABASE="your_database_name"
REDSHIFT_SECRET_ARN="arn:aws:secretsmanager:us-east-1:123456789012:secret:your-redshift-secret-XXXXXX"
AWS_REGION="us-east-1" # Or AWS_DEFAULT_REGION
# AWS_PROFILE="your-aws-profile-name" # Optional

必需变量表:

变量名称必填描述示例值
REDSHIFT_CLUSTER_ID您的Redshift群集标识符。my-redshift-cluster
REDSHIFT_DATABASEYes要连接的数据库的名称mydatabase
REDSHIFT_SECRET_ARNAWS Secrets Manager ARN for Redshift凭据。arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret-abcdef
AWS_REGION数据API和机密管理器的AWS区域。us-east-1
AWS_DEFAULT_REGION替代 AWS_REGION 用于指定AWS区域。us-west-2
AWS_PROFILE没有要从凭据文件(~/.AWS/…)中使用的AWS配置文件名。my-redshift-profile

*注意:确保Boto3使用的AWS凭据(通过环境、配置文件或IAM角色)有权访问指定的 REDSHIFT_SECRET_ARN 并使用Redshift Data API(redshift-data:*).*

用法

安装后,您可以直接从命令行运行服务器:

# If installed from PyPI
redshift-utils-mcp

# Or using uvx (no installation required)
uvx redshift-utils-mcp

连接克劳德桌面/拟人控制台:

将以下配置块添加到您的 mcp.json 文件:

{
  "mcpServers": {
    "redshift-utils-mcp": {
      "command": "uvx",
      "args": ["redshift-utils-mcp"],
      "env": {
        "REDSHIFT_CLUSTER_ID":"your-cluster-id",
        "REDSHIFT_DATABASE":"your_database_name",
        "REDSHIFT_SECRET_ARN":"arn:aws:secretsmanager:...",
        "AWS_REGION": "us-east-1"
      }
  }
}

与Claude Code CLI连接:

使用Claude CLI添加服务器配置:

claude mcp add redshift-utils-mcp \
  -e REDSHIFT_CLUSTER_ID="your-cluster-id" \
  -e REDSHIFT_DATABASE="your_database_name" \
  -e REDSHIFT_SECRET_ARN="arn:aws:secretsmanager:..." \
  -e AWS_REGION="us-east-1" \
  -- uvx redshift-utils-mcp

与Cursor IDE连接:

  1. 使用中的说明在本地启动MCP服务器 使用/快速启动 部分。
  2. 在光标中,打开命令选项板(Cmd/Ctrl+Shift+P)。
  3. 键入“连接到MCP服务器”或导航到MCP设置。
  4. 添加新的服务器连接。
  5. 选择 stdio 运输类型。
  6. 输入启动服务器所需的命令和参数(uvx run redshift_utils_mcp).确保正在运行的命令可以使用任何必要的环境变量。
  7. Cursor应检测服务器及其可用的工具/资源。

可用MCP资源

资源URI模式描述示例URI
/scripts/{script_path}从服务器检索SQL脚本文件的原始内容 sql_scripts 目录。/scripts/health/disk_usage.sql
redshift://schemas列出连接数据库中所有可访问的用户定义架构。redshift://schemas
redshift://wlm/configuration检索当前工作负载管理(WLM)配置详细信息。redshift://wlm/configuration
redshift://schema/{schema_name}/tables列出指定范围内所有可访问的表和视图 {schema_name}.redshift://schema/public/tables

替换 {script_path}{schema_name} 在发出请求时使用实际值。 模式/表的可访问性取决于通过配置授予Redshift用户的权限 REDSHIFT_SECRET_ARN.

可用的MCP工具

工具名称描述关键参数(必填\*)调用示例
handle_check_cluster_health使用一组诊断SQL脚本对Redshift群集执行运行状况评估。level (可选), time_window_days (可选)use_mcp_tool("redshift-admin", "handle_check_cluster_health", {"level": "full"})
handle_diagnose_locks标识群集中的活动锁争用和阻塞会话。min_wait_seconds (可选)use_mcp_tool("redshift-admin", "handle_diagnose_locks", {"min_wait_seconds": 10})
handle_diagnose_query_performance分析特定查询的执行性能,包括计划、指标和历史数据。query_id\*use_mcp_tool("redshift-admin", "handle_diagnose_query_performance", {"query_id": 12345})
handle_execute_ad_hoc_query执行用户通过Redshift Data API提供的任意SQL查询。设计为逃生舱。sql_query\*use_mcp_tool("redshift-admin", "handle_execute_ad_hoc_query", {"sql_query": "SELECT ..."})
handle_get_table_definition检索DDL(数据定义语言)语句(SHOW TABLE)对于特定的表格。schema_name*, table_name*use_mcp_tool("redshift-admin", "handle_get_table_definition", {"schema_name": "public", ...})
handle_inspect_table检索特定Redshift表的详细信息,包括设计、存储、运行状况和使用情况。schema_name*, table_name*use_mcp_tool("redshift-admin", "handle_inspect_table", {"schema_name": "analytics", ...})
handle_monitor_workload使用各种诊断脚本分析指定时间窗口内的集群工作负载模式。time_window_days (可选), top_n_queries (可选)use_mcp_tool("redshift-admin", "handle_monitor_workload", {"time_window_days": 7})

待办

  • \[\]改进提示选项
  • \[\]添加对更多凭据方法的支持
  • \[\]添加对Redshift无服务器的支持

参考文献

目录标签

目录标签

数据库工具数据访问PythonClauderesearch-and-data本地部署RedshiftMCP服务器AI集成

支持客户端

ClaudeCursorClaude Desktop

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP