使用说明
太长,读不下去了 运行以下命令:
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支持)
设置
- 克隆此存储库:
git clone https://github.com/yourusername/redshift-mcp-py.git
cd redshift-mcp-py
- 创建虚拟环境并安装软件包:
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
- 构建Docker镜像:
docker build -t redshift-mcp-py .
- 运行容器:
docker run -i --rm redshift-mcp-py "postgresql://username:password@hostname:port/database?sslmode=require"
在Cursor中设置
此项目在 .cursor 目录:
- 在Cursor中打开项目。
- 编辑
.cursor/mcp.json更新数据库连接字符串。 - 按Alt+M或单击侧边栏中的MCP按钮。
- 从可用服务器列表中选择“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中公开