关于 Redshift MCP Server (TypeScript)
Redshift MCP Server (TypeScript) 将 Amazon Redshift 接入兼容 MCP 的客户端,为团队探索数据仓库提供结构信息和只读查询能力,可配合 Cursor IDE 等工具使用。
主要功能
- 01执行只读 SQL 查询
- 02查看表结构
- 03按名称模式查找列
- 04提供架构和表资源
- 05提供经过脱敏的样例行
适用场景
- 01检查 Redshift 架构中的表
- 02查找包含匹配列的表
- 03查看表结构与样例数据
MCP 相关
该 MCP 服务提供查询、表结构描述和列搜索工具,以及架构、表结构、样例数据和统计信息资源。MCP 客户端通过 stdio 连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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
- 如果在
mcp.json中配置了此服务,系统会自动检测到它 - 工具会显示在 MCP 设置中的“可用工具”下
- 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
安装
- 克隆此仓库,或将文件复制到本地系统
- 安装依赖项:
npm install
- 构建 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 keepalivekeepalives_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 提出以下问题:
- “显示 public 架构中的所有表”
- “customers 表的结构是什么?”
- “查找所有包含客户信息的表”
- “编写一个按状态统计订单数量的查询”
- “显示 products 表中的示例数据”
扩展服务
你可以通过以下方式扩展此服务:
- 在
ListResourcesRequestSchema和ReadResourceRequestSchema处理程序中添加新的资源类型 - 在
ListToolsRequestSchema和CallToolRequestSchema处理程序中添加新工具 - 增强安全功能或添加身份验证
开发
开发时,可以使用 npm run dev 命令,该命令使用 ts-node 直接运行 TypeScript 代码,无需预先编译。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。