Redshift MCP服务器

一个用于查询Redshift数据库的模型上下文协议(MCP)服务器,通过Python实现,支持数据库表查询、模式查看和只读SQL执行。

  • by sripaladugu
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sripaladugu/mcp-client-server

使用说明

太长,读不下去了 运行以下命令:

bash docker-build.sh

上面的命令构建了一个Docker镜像,现在您可以在Cursor中使用以下设置启动MCP服务器(请不要忘记用您自己的值更新数据库连接字符串,即用户名、密码、主机名、端口、数据库):

{
  "mcpServers": {
    "redshift-mcp-docker": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DEFAULT_SCHEMA=flatiron_cmdb_nsclc_sdm_latest",
        "redshift-mcp-py-simple",
        "postgresql://username:password@redshift-url:5439/database?sslmode=require"
      ],
      "description": "Redshift MCP Server in Docker",
      "env": {}
    }
  }
}

Redshift MCP服务器(Python)

用于查询Redshift数据库的模型上下文协议(MCP)服务器,使用FastMCP在Python中实现。

特性

  • 通过MCP服务器查询Redshift数据库
  • 列出数据库中的表
  • 查看表架构
  • 执行只读SQL查询
  • 适用于Cursor和Claude Desktop

安装

先决条件

  • Python 3.10+
  • Redshift数据库连接详细信息
  • pip 21.3+(用于pyproject.toml支持)

设置

  1. 克隆此存储库:
git clone https://github.com/yourusername/redshift-mcp-py.git
cd redshift-mcp-py
  1. 创建虚拟环境并安装软件包:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Make sure pip is up to date
pip install --upgrade pip

# Install the package
pip install -e .

如果遇到构建错误,可能需要先安装构建工具:

pip install hatchling
pip install -e .

用法

使用CLI运行服务器

安装后,您可以使用提供的命令行界面:

redshift-mcp-server "postgresql://username:password@hostname:port/database?sslmode=require"

直接运行服务器

python redshift_mcp_server.py "postgresql://username:password@hostname:port/database?sslmode=require"

使用Docker

  1. 构建Docker镜像:
docker build -t redshift-mcp-py .
  1. 运行容器:
docker run -i --rm redshift-mcp-py "postgresql://username:password@hostname:port/database?sslmode=require"

在Cursor中设置

此项目在 .cursor 目录:

  1. 在Cursor中打开项目。
  2. 编辑 .cursor/mcp.json 更新数据库连接字符串。
  3. 按Alt+M或单击侧边栏中的MCP按钮。
  4. 从可用服务器列表中选择“redshift mcp-py”。

或者,您可以将以下内容添加到全局 ~/.cursor/mcp.json 文件:

{
  "mcpServers": {
    "redshift-mcp-py": {
      "command": "python",
      "args": [
        "/path/to/redshift_mcp_server.py",
        "postgresql://username:password@hostname:port/database?sslmode=require"
      ],
      "description": "Redshift MCP Server in Python"
    }
  }
}

在Claude Desktop中设置

将以下内容添加到Claude Desktop的配置文件中:

{
  "servers": [
    {
      "name": "Redshift MCP Server",
      "command": "python",
      "args": [
        "/path/to/redshift_mcp_server.py",
        "postgresql://username:password@hostname:port/database?sslmode=require"
      ],
      "description": "Redshift MCP Server in Python"
    }
  ]
}

项目结构

redshift_py/
├── .cursor/                    # Cursor-specific settings
│   ├── mcp.json                # MCP server configuration for Cursor
│   └── settings.json           # Editor settings for Python development
├── src/
│   └── redshift_mcp/
│       ├── __init__.py
│       ├── __main__.py
│       └── server.py
├── redshift_mcp_server.py
├── test_client.py
├── pyproject.toml
├── README.md
├── LICENSE
└── Dockerfile

可用MCP功能

资源

  • redshift://tables -列出数据库中的所有表
  • redshift://{hostname}/{table_name}/schema -返回特定表的架构信息

工具

  • query(sql: string) -对Redshift数据库执行只读SQL查询

测试

使用附带的测试客户端验证功能:

# Test using subprocess
python test_client.py "postgresql://username:password@hostname:port/database?sslmode=require"

# Test with direct connection
TEST_MODE=direct python test_client.py "postgresql://username:password@hostname:port/database?sslmode=require"

安全说明

  • 服务器只允许只读事务
  • 所有查询都在回滚的事务中执行
  • 数据库密码从不在资源URI中公开

许可证

阿帕奇-2.0

mcp客户端服务器