Redshift MCP サーバー
AI アシスタントが Redshift データベースと対話できるようにする Amazon Redshift 用の Model Context Protocol (MCP) サーバー。
導入
Redshift MCPサーバーは、Amazon Redshiftデータベースと連携するためのツールとリソースを提供する、モデルコンテキストプロトコル(Model Context Protocol)のPythonベースの実装です。これにより、AIアシスタントは以下のことが可能になります。
- Redshift データベース内のスキーマとテーブルを一覧表示する
- テーブルDDL(データ定義言語)スクリプトを取得する
- テーブル統計を取得する
- SQLクエリを実行する
- テーブルを分析して統計情報を収集する
- SQLクエリの実行プランを取得する
インストール
前提条件
- Python 3.13以上
- Amazon Redshift クラスター
- Redshift の資格情報 (ホスト、ポート、ユーザー名、パスワード、データベース)
ソースからインストール
# Clone the repository
git clone https://github.com/Moonlight-CL/redshift-mcp-server.git
cd redshift-mcp-server
# Install dependencies
uv sync
構成
サーバーが Redshift クラスターに接続するには、次の環境変数が必要です。
RS_HOST=your-redshift-cluster.region.redshift.amazonaws.com
RS_PORT=5439
RS_USER=your_username
RS_PASSWORD=your_password
RS_DATABASE=your_database
RS_SCHEMA=your_schema # Optional, defaults to "public"
これらの環境変数を直接設定することも、 .env
ファイルを使用することができます。
使用法
サーバーの起動
# Start the server
uv run --with mcp python-dotenv redshift-connector mcp
mcp run src/redshift_mcp_server/server.py
AIアシスタントとの統合
このサーバーを MCP をサポートする AI アシスタントで使用するには、MCP 設定に次の構成を追加します。
{
"mcpServers": {
"redshift": {
"command": "uv",
"args": ["--directory", "src/redshift_mcp_server", "run", "server.py"],
"env": {
"RS_HOST": "your-redshift-cluster.region.redshift.amazonaws.com",
"RS_PORT": "5439",
"RS_USER": "your_username",
"RS_PASSWORD": "your_password",
"RS_DATABASE": "your_database",
"RS_SCHEMA": "your_schema"
}
}
}
}
特徴
リソース
サーバーは次のリソースを提供します。
rs:///schemas
- データベース内のすべてのスキーマを一覧表示しますrs:///{schema}/tables
- 特定のスキーマ内のすべてのテーブルを一覧表示しますrs:///{schema}/{table}/ddl
- 特定のテーブルのDDLスクリプトを取得しますrs:///{schema}/{table}/statistic
- 特定のテーブルの統計情報を取得します
ツール
サーバーは次のツールを提供します。
execute_sql
- RedshiftクラスターでSQLクエリを実行するanalyze_table
- テーブルを分析して統計情報を収集しますget_execution_plan
- SQLクエリの実行時統計を含む実行プランを取得します
例
スキーマの一覧表示
access_mcp_resource("redshift-mcp-server", "rs:///schemas")
スキーマ内のテーブルの一覧表示
access_mcp_resource("redshift-mcp-server", "rs:///public/tables")
テーブルDDLの取得
access_mcp_resource("redshift-mcp-server", "rs:///public/users/ddl")
SQLの実行
use_mcp_tool("redshift-mcp-server", "execute_sql", {"sql": "SELECT * FROM public.users LIMIT 10"})
テーブルを分析する
use_mcp_tool("redshift-mcp-server", "analyze_table", {"schema": "public", "table": "users"})
実行計画の取得
use_mcp_tool("redshift-mcp-server", "get_execution_plan", {"sql": "SELECT * FROM public.users WHERE user_id = 123"})
発達
プロジェクト構造
redshift-mcp-server/
├── src/
│ └── redshift_mcp_server/
│ ├── __init__.py
│ └── server.py
├── pyproject.toml
└── README.md
依存関係
mcp[cli]>=1.5.0
- モデルコンテキストプロトコルSDKpython-dotenv>=1.1.0
- .env ファイルから環境変数を読み込むためredshift-connector>=2.1.5
- Amazon Redshift 用の Python コネクタ