返回市场
红移-mcp-服务器

红移-mcp-服务器

作者:paschmaria2 星标更新:2025-06-13

项目介绍

Redshift MCP Server (TypeScript)

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

与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. 当相关时,代理将自动使用这些工具。

其他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保活
  • keepalives_idle=130: TCP保活空闲时间

项目结构

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

组件

在Cursor中可用的工具

  • query

    • 执行针对连接的Redshift数据库的只读SQL查询
    • 示例:"编写一个查询来显示公共模式中的所有表"
  • describe_table

    • 获取特定表的详细信息
    • 示例:"显示用户表的结构"
  • 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. "显示公共模式中的所有表"
  2. "客户的表结构是什么样的?"
  3. "查找包含客户信息的所有表"
  4. "编写一个按状态计数订单的查询"
  5. "显示产品表的样本数据"

扩展服务器

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

  1. ListResourcesRequestSchemaReadResourceRequestSchema处理器中添加新的资源类型
  2. ListToolsRequestSchemaCallToolRequestSchema处理器中添加新的工具
  3. 增强安全特性或添加身份验证

开发

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

许可证

MIT