项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,专门用于连接和操作 Amazon Redshift 数据库。它允许支持MCP协议的AI客户端(如大型语言模型)通过标准化的方式与Redshift数据库进行交互,执行查询、探索数据库结构等任务。
主要功能点
- 执行SQL查询: 允许AI客户端直接向Redshift数据库提交并执行SQL查询,并返回结果。
- 解释查询计划: 在不实际运行查询的情况下,获取SQL查询的执行计划,帮助AI理解查询的性能。
- 列出Schema: 获取数据库中所有可用的Schema(模式)列表。
- 列出表和视图: 列出指定Schema下的所有表和视图信息。
- 测试连接: 验证服务器与Redshift数据库之间的连接是否正常工作。
安装步骤
该服务器使用 Python 编写。你需要安装 Python 3.10 或更高版本,并使用 'uv' 工具进行依赖管理和安装。
- 安装 'uv' 工具 (具体步骤请参考其官方文档)。
- 使用 'uv python install 3.10' 或更高版本安装 Python。
- 克隆该仓库到你的本地目录。
- 进入仓库目录。
- 创建并激活一个虚拟环境(使用 'uv venv',然后 'source .venv/bin/activate' 或 '..venv\Scripts\activate' 在 Windows)。
- 安装项目及其依赖(使用 'uv pip install -e .')。
服务器配置
MCP服务器通过标准输入/输出 (stdio) 或其他协议与MCP客户端通信。要让你的MCP客户端(如Amazon Q或Claude)能够使用此服务器,你需要在客户端的MCP配置文件中进行设置。
配置文件通常是JSON格式,例如 '.amazonq/mcp.json'。你需要添加一个条目来告诉客户端如何启动并连接到这个Redshift MCP服务器。
配置信息通常包括:
- 服务器名称: 一个标识服务器的唯一名称(例如 "redshift")。
- 连接类型: 通常是 "stdio" 或 "sse"。
- 启动命令: 启动服务器的实际命令。对于此项目,使用 'uvx' 命令可以方便地运行已安装的脚本。
- 启动参数: 传递给启动命令的参数,通常包括指定项目的路径和服务器主程序名称。
在运行服务器之前,你还需要通过环境变量设置 Redshift 数据库的连接信息,包括:
- 'REDSHIFT_HOST':Redshift 主机名或IP地址。
- 'REDSHIFT_PORT':Redshift 端口(默认为 5439)。
- 'REDSHIFT_DATABASE':数据库名称。
- 'REDSHIFT_USER':用户名。
- 'REDSHIFT_PASSWORD':密码。
重要提示: 永远不要将数据库凭据直接写入配置文件或代码中,务必使用环境变量或安全的凭据管理方式。
基本使用方法
当MCP客户端配置并连接到Redshift MCP服务器后,AI模型就可以通过调用服务器提供的工具来与数据库交互。
作为用户,你可以通过与AI模型对话来间接使用这些功能。例如:
- 你可以问AI:"数据库里有哪些Schema?" - AI会调用 'list_schemas' 工具。
- 你可以问AI:"在 'public' 这个Schema里有哪些表?" - AI会调用 'list_tables_in_schema' 工具并传入 'public' 作为参数。
- 你可以要求AI:"运行这个SQL查询:'SELECT COUNT(*) FROM users WHERE status = 'active';'" - AI会调用 'run_query' 工具并执行该SQL。
- 如果你对一个复杂查询的性能有疑问,可以问AI:"帮我解释一下这个查询的执行计划:'SELECT ...'" - AI会调用 'explain_query' 工具。
建议先使用 'list_schemas' 和 'list_tables_in_schema' 工具来了解数据库结构,再进行具体的查询。
信息
分类
数据库与文件