mcpField
S
Supabase MCP Server

Supabase MCP Server

ローカル
github.com/coleam00クラウド・インフラ19483 週間前に更新

Supabase MCP Server について

Supabase MCP Server は Python で書かれた MCP サーバーで、AI アシスタントが標準化されたインターフェースを通じて Supabase データベースの読み取り、作成、更新、削除を行えるようにします。Docker で実行され、アシスタントから Supabase のテーブルデータを扱いたいユーザーを想定しています。

主な機能

  1. 01フィルター、ページネーション、列選択を伴うテーブル行の読み取り
  2. 02Supabase テーブルへのレコード追加
  3. 03条件に一致するレコードの更新
  4. 04条件に一致するレコードの削除
  5. 05Docker コンテナとしての実行

活用シーン

  1. 01AI アシスタントによる Supabase テーブルデータの照会
  2. 02アシスタント経由のデータベースレコードの追加・更新
  3. 03MCP 対応デスクトップクライアントからの Supabase データ管理

MCP 対応

MCP サーバーとして、read_table_rows、create_table_records、update_table_records、delete_table_records などのツールを MCP クライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"supabase-mcp-coleam00": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocibuild

ツール

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

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

詳細

Supabase MCP サーバー

Supabase データベースとやり取りするためのツールを提供する、Model Context Protocol(MCP)サーバーです。このサーバーにより、AI アシスタントは標準化されたインターフェースを通じてデータベース操作を実行できます。

注意:この Supabase MCP サーバーは、私の AI IDE コーディングワークフローのデモとして作成されました。現在も開発中で、今後 私のチャンネル で公開する動画を通じて拡張していく予定です。

機能

  • テーブル行の読み取り:任意のフィルタリング、ページネーション、列選択を指定して、Supabase テーブルからデータをクエリします
  • テーブルレコードの作成:Supabase テーブルに新しいレコードを挿入します
  • テーブルレコードの更新:フィルターに基づいて、Supabase テーブルの既存レコードを変更します
  • テーブルレコードの削除:フィルターに基づいて、Supabase テーブルのレコードを削除します

前提条件

  • Docker または Docker Desktop
  • Supabase アカウントとプロジェクト

インストール

  1. リポジトリをクローンします:
    git clone https://github.com/coleam00/supabase-mcp.git
    cd supabase-mcp
    
Docker のセットアップ
  1. Docker イメージをビルドします:
    docker build -t mcp/supabase .
    

使用方法

Docker で MCP サーバーとして実行する

Supabase MCP サーバーは、Model Context Protocol を使用する AI アシスタントと統合できます。

  1. MCP 設定に以下の構成を追加します(Claude Desktop、Windsurf など)。

まず、インストール手順に従ってコンテナをビルドしてください!

{
  "mcpServers": {
    "supabase": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "SUPABASE_URL", "-e", "SUPABASE_SERVICE_KEY", "mcp/supabase"],
      "env": {
        "SUPABASE_URL": "YOUR-SUPABASE-URL",
        "SUPABASE_SERVICE_KEY": "YOUR-SUPABASE-SERVICE-ROLE-KEY"
      }
    }
  }
}
  1. YOUR-SUPABASE-URL と YOUR-SUPABASE-SERVICE-ROLE-KEY を実際の Supabase 認証情報に置き換えます。

  2. AI アシスタントは、提供されたツールを使用して MCP サーバー経由で Supabase データベースにアクセスできるようになります。

Model Context Protocol の詳細については、modelcontextprotocol.io をご覧ください。

利用可能なツール
テーブル行の読み取り
read_table_rows(
    table_name: str,
    columns: Optional[List[str]] = None,
    filters: Optional[Dict[str, Any]] = None,
    limit: Optional[int] = None,
    offset: Optional[int] = None
)

例:

# Read active users
read_table_rows(
    table_name="users",
    columns=["id", "name", "email"],
    filters={"is_active": True},
    limit=10,
    offset=0
)
テーブルレコードの作成
create_table_records(
    table_name: str,
    records: Union[Dict[str, Any], List[Dict[str, Any]]]
)

例:

# Create a new user
create_table_records(
    table_name="users",
    records={
        "name": "John Doe",
        "email": "[email protected]",
        "is_active": True
    }
)
テーブルレコードの更新
update_table_records(
    table_name: str,
    updates: Dict[str, Any],
    filters: Dict[str, Any]
)

例:

# Update user status
update_table_records(
    table_name="users",
    updates={"status": "premium"},
    filters={"is_active": True}
)
テーブルレコードの削除
delete_table_records(
    table_name: str,
    filters: Dict[str, Any]
)

例:

# Delete inactive users
delete_table_records(
    table_name="users",
    filters={"is_active": False}
)

開発

プロジェクト構成
supabase-mcp/
├── supabase_mcp/
│   ├── __init__.py
│   ├── server.py              # Main MCP server implementation
│   └── tests/                 # Unit tests
├── Dockerfile                 # Docker configuration for MCP server
├── example_mcp_config.json    # Example MCP configuration
├── requirements.txt           # Python dependencies
├── .env.example               # Example environment variables
├── README.md                  # Project documentation
├── PLANNING.md                # Project planning
└── TASKS.md                   # Task tracking
テストの実行
pytest supabase_mcp/tests/

Model Context Protocol の統合

Supabase MCP サーバーは Model Context Protocol を実装しており、AI アシスタントが標準化された方法で Supabase データベースとやり取りできるようにします。

仕組み
  1. MCP サーバーはデータベース操作(読み取り、作成、更新、削除)用のツールを公開します
  2. AI アシスタントは stdio トランスポートを使用して MCP サーバーに接続します
  3. AI アシスタントはツールを呼び出してデータベース操作を実行できます
  4. MCP サーバーは Supabase との通信を処理し、結果を返します
MCP の設定

example_mcp_config.json ファイルには、AI アシスタントが Supabase MCP サーバーを使用するための設定方法が示されています。

{
  "mcpServers": {
    "supabase": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "SUPABASE_URL", "-e", "SUPABASE_SERVICE_KEY", "mcp/supabase"],
      "env": {
        "SUPABASE_URL": "YOUR-SUPABASE-URL",
        "SUPABASE_SERVICE_KEY": "YOUR-SUPABASE-SERVICE-ROLE-KEY"
      }
    }
  }
}

この設定では、AI アシスタントに次のことを指示します:

  • Docker を使用して MCP サーバーを実行する
  • Supabase の認証情報を環境変数として渡す
  • mcp/supabase Docker イメージを使用する
AI アシスタントでの使用

Model Context Protocol に対応した AI アシスタントは、このサーバーを使用して次の操作を実行できます:

  1. Supabase テーブルからデータをクエリする
  2. テーブルに新しいレコードを挿入する
  3. 既存のレコードを更新する
  4. レコードを削除する

アシスタントは、上記の「利用可能なツール」セクションに記載されているツールを使用できます。

環境変数

変数説明
SUPABASE_URLSupabase プロジェクトの URL
SUPABASE_SERVICE_KEYSupabase 認証用のサービスロールキー

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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