mcpField
R
Redshift MCP Server (TypeScript)

Redshift MCP Server (TypeScript)

本地服务
github.com/paschmaria数据库372 周前更新

关于 Redshift MCP Server (TypeScript)

Redshift MCP Server (TypeScript) 将兼容 MCP 的客户端连接到 Amazon Redshift,以只读方式查询和检查数据仓库。它结合查询工具与架构、样例数据和统计信息资源,并在样例中隐去敏感值。

主要功能

  1. 01执行只读 SQL 查询
  2. 02查看表结构
  3. 03按名称模式查找列
  4. 04浏览架构和表资源
  5. 05查看样例行与统计信息
  6. 06隐去样例中的敏感数据

适用场景

  1. 01检查 Redshift 中的表和列
  2. 02以只读方式查询数据仓库
  3. 03查看样例行与表统计信息

MCP 相关

向 MCP 客户端提供查询、表描述和列搜索工具,以及架构、样例数据和统计信息资源。通过配置的数据库 URL 连接 Redshift。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Redshift MCP 服务(TypeScript)

这是一个使用 TypeScript 实现的 Amazon Redshift 模型上下文协议(MCP)服务。它遵循 Anthropic 的实现模式,为 Cursor IDE 和其他兼容 MCP 的客户端提供有关 Redshift 数据仓库的丰富上下文信息。此服务可让大模型检查数据库架构并执行只读查询。

与 MCP 客户端集成

项目专属配置

在项目目录中创建 .cursor/mcp.json 文件:

{
  "mcpServers": {
    "redshift-mcp": {
      "command": "node",
      "args": ["path/to/dist/index.js"],
      "env": {
        "DATABASE_URL": "redshift://username:password@hostname:port/database?ssl=true"
      }
    }
  }
}
全局配置

如需在所有项目中使用,请在主目录中创建 ~/.cursor/mcp.json,并使用相同的配置。

特定客户端的设置
Cursor IDE
  1. 如果在 mcp.json 中配置了此服务,系统会自动检测到它
  2. 工具会显示在 MCP 设置中的“可用工具”下
  3. Agent 会在相关时自动使用这些工具
其他 MCP 客户端

使用 stdio 传输配置此服务:

{
  "servers": [
    {
      "name": "redshift-mcp",
      "transport": {
        "kind": "stdio",
        "command": ["node", "path/to/dist/index.js"]
      }
    }
  ]
}

前提条件

  • Node.js 16 或更高版本
  • TypeScript
  • 可访问 Amazon Redshift 集群
  • 具备 Redshift 和 SQL 基础知识
  • 已安装 Cursor IDE

安装

  1. 克隆此仓库,或将文件复制到本地系统
  2. 安装依赖项:
npm install
  1. 构建 TypeScript 代码:
npm run build

用法

此服务需要通过 DATABASE_URL 环境变量提供 Redshift 连接 URL:

export DATABASE_URL="redshift://username:password@hostname:port/database?ssl=true"
npm start

或者,也可以直接运行:

DATABASE_URL="redshift://username:password@hostname:port/database?ssl=true" node dist/index.js

开发时,可以使用:

DATABASE_URL="redshift://username:password@hostname:port/database?ssl=true" npm run dev
连接 URL 格式
redshift://username:password@hostname:port/database?ssl=true
  • username:Redshift 用户名
  • password:Redshift 密码
  • hostname:Redshift 集群端点
  • port:Redshift 通常使用 5439
  • database:数据库名称
  • ssl:设置为 "true" 以使用安全连接(推荐)

其他连接参数:

  • ssl=true:安全连接所必需(推荐)
  • timeout=10:连接超时时间,单位为秒
  • keepalives=1:启用 TCP keepalive
  • keepalives_idle=130:TCP keepalive 空闲时间

项目结构

  • src/index.ts:TypeScript 主实现
  • dist/:编译后的 JavaScript 输出
  • package.json:项目依赖项和脚本
  • tsconfig.json:TypeScript 配置

组件

Cursor 中可用的工具
  • query

    • 对已连接的 Redshift 数据库执行只读 SQL 查询
    • 示例:“编写一条查询,显示 public 架构中的所有表”
  • describe_table

    • 获取特定表的详细信息
    • 示例:“展示 users 表的结构”
  • find_column

    • 查找包含特定名称模式列的表
    • 示例:“查找所有包含名称中带有 'email' 的列的表”
Cursor 可用的资源

此服务提供 Cursor 可使用的架构信息:

  • 架构列表(redshift://<host>/schema/<schema_name>)

    • 列出特定架构中的所有表
    • 从数据库元数据中自动发现
  • 表架构(redshift://<host>/<schema>/<table>/schema)

    • 每个表的 JSON 架构信息
    • 包含列名、数据类型和 Redshift 专属属性(分配键和排序键)
  • 示例数据(redshift://<host>/<schema>/<table>/sample)

    • 每个表的示例行(最多 5 行)
    • 自动隐去敏感数据
  • 统计信息(redshift://<host>/<schema>/<table>/statistics)

    • 表统计信息,包括大小、行数和创建时间
    • 分配和压缩信息

安全注意事项

此服务:

  • 对查询使用只读事务,以防止修改
  • 清理输入内容,以防止 SQL 注入
  • 不会在资源 URI 中暴露原始密码信息
  • 自动隐去示例结果中的敏感数据(电子邮件、电话)
  • 由于可以访问数据库,应在安全环境中使用

Cursor 交互示例

连接后,可以向 Cursor 提出以下问题:

  1. “显示 public 架构中的所有表”
  2. “customers 表的结构是什么?”
  3. “查找所有包含客户信息的表”
  4. “编写一个按状态统计订单数量的查询”
  5. “显示 products 表中的示例数据”

扩展服务

你可以通过以下方式扩展此服务:

  1. 在 ListResourcesRequestSchema 和 ReadResourceRequestSchema 处理程序中添加新的资源类型
  2. 在 ListToolsRequestSchema 和 CallToolRequestSchema 处理程序中添加新工具
  3. 增强安全功能或添加身份验证

开发

开发时,可以使用 npm run dev 命令,该命令使用 ts-node 直接运行 TypeScript 代码,无需预先编译。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。