mcpField
R
Redshift MCP Server (TypeScript)

Redshift MCP Server (TypeScript)

ローカル
github.com/paschmariaデータベース372 週間前に更新

Redshift MCP Server (TypeScript) について

Redshift MCP Server (TypeScript)はAmazon RedshiftをMCP対応クライアントに接続します。Cursor IDEなどからデータウェアハウスの構造を確認し、読み取り専用クエリを実行したいチーム向けです。

主な機能

  1. 01読み取り専用SQLクエリの実行
  2. 02テーブル構造の確認
  3. 03名前パターンによる列検索
  4. 04スキーマとテーブルリソースの提供
  5. 05マスキング済みサンプル行の提供

活用シーン

  1. 01Redshiftスキーマ内のテーブル確認
  2. 02条件に合う列を含むテーブルの検索
  3. 03テーブル構造とサンプルデータの確認

MCP 対応

MCPサーバーは、クエリ、テーブル構造の説明、列検索のツールと、スキーマ、テーブル構造、サンプルデータ、統計情報のリソースを公開します。MCPクライアントはstdioで接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Redshift MCP Server (TypeScript)

これは、TypeScript で実装された Amazon Redshift 用の Model Context Protocol(MCP)サーバーです。Anthropic の実装パターンに従い、Cursor IDE やその他の MCP 対応クライアントに、Redshift データウェアハウスに関する豊富なコンテキスト情報を提供します。このサーバーを使うと、LLM がデータベースのスキーマを調べ、読み取り専用クエリを実行できます。

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 クエリを実行します
    • 例:「public スキーマ内のすべてのテーブルを表示するクエリを書いてください」
  • describe_table

    • 特定のテーブルに関する詳細情報を取得します
    • 例:「users テーブルの構造を表示してください」
  • 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. "public スキーマ内のすべてのテーブルを表示してください"
  2. "customers テーブルの構造はどうなっていますか?"
  3. "顧客情報を含むすべてのテーブルを探してください"
  4. "ステータス別に注文数を数えるクエリを書いてください"
  5. "products テーブルのサンプルデータを表示してください"

サーバーの拡張

次の方法でこのサーバーを拡張できます。

  1. ListResourcesRequestSchema と ReadResourceRequestSchema のハンドラーに新しいリソースタイプを追加する
  2. ListToolsRequestSchema と CallToolRequestSchema のハンドラーに新しいツールを追加する
  3. セキュリティ機能を強化するか、認証を追加する

開発

開発には、npm run dev コマンドを使用できます。このコマンドは ts-node を使って、事前コンパイルなしで TypeScript コードを直接実行します。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。