用于Redshift的MCP服务器
Amazon Redshift的模型上下文协议(MCP)服务器实现,为通过AI模型与Redshift数据库交互提供了一个标准化的接口。
特性
- 跨多个模式列出表、视图和物化视图
- 在单个请求中获取多个表的详细架构信息
- 对Redshift执行只读SQL查询
- 支持stdio和SSE(服务器发送事件)传输
- TypeScript中的类型安全实现
先决条件
- Node.js 18或更高版本
- 访问Redshift数据库
- 已配置环境变量(请参阅配置部分)
安装
- 克隆存储库:
git clone https://github.com/yourusername/mcp-server-redshift.git
cd mcp-server-redshift- 安装依赖项:
npm install- 构建项目:
npm run build配置
创建一个 .env 根目录中的文件,包含以下变量:
# Redshift Connection
REDSHIFT_HOST=your-redshift-host
REDSHIFT_PORT=5439
REDSHIFT_DATABASE=your-database
REDSHIFT_USER=your-username
REDSHIFT_PASSWORD=your-password
REDSHIFT_SCHEMAS=public,schema1,schema2 # Comma-separated list of schemas
# Server Configuration
TRANSPORT_TYPE=stdio # or 'sse' for Server-Sent Events
PORT=3000 # Only used when TRANSPORT_TYPE=sse用法
运行服务器
# Development
npm run dev
# Production
npm run build
npm start可用工具
- 列表表格 (
list_tables)
- 列出指定模式中的所有表、视图和物化视图 - 可选的 schemas 按特定模式筛选的参数
{
"schemas": ["public", "analytics"]
}- 获取表架构 (
get_tables_schema)
- 跨不同模式获取多个表的模式信息
{
"tables": [
{ "schema": "public", "table": "users" },
{ "schema": "analytics", "table": "events" }
]
}- 查询 (
query)
- 对数据库执行只读SQL查询
{
"sql": "SELECT * FROM public.users LIMIT 5"
}测试
运行测试套件:
npm test建筑
项目组织结构如下:
src/
├── config/ # Configuration and database setup
├── tools/ # Individual tool implementations
├── server/ # Server setup and transport configuration
└── index.ts # Main entry point安全考虑
- 所有查询都在只读事务中执行
- 应适当保护环境变量
- CORS已为SSE传输启用(应配置为生产环境)
- 应安全地管理数据库凭据
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
该项目基于 PostgreSQL MCP服务器 来自模型上下文协议项目。特别感谢原作者的工作。
