Skip to main content
Glama

supabase-mcp

Supabase MCP サーバー

Supabaseのデータベース、ストレージ、エッジ機能と連携するための包括的なツールを提供するModel Context Protocol(MCP)サーバー。このサーバーは、SupabaseサービスとMCP対応アプリケーションとのシームレスな統合を実現します。

概要

Supabase MCP サーバーは、MCP クライアントと Supabase の一連のサービス間のブリッジとして機能し、次の機能を提供します。

  • 豊富なクエリ機能を備えたデータベース操作
  • ファイルと資産のストレージ管理
  • エッジ関数の呼び出し
  • プロジェクトと組織管理
  • ユーザー認証と管理
  • ロールベースのアクセス制御

建築

サーバーは TypeScript を使用して構築され、モジュール アーキテクチャに従います。

supabase-server/ ├── src/ │ ├── index.ts # Main server implementation │ └── types/ │ └── supabase.d.ts # Type definitions ├── package.json ├── tsconfig.json ├── config.json.example # Example configuration file └── .env.example # Environment variables template

主要コンポーネント

  • サーバークラス: MCPサーバーインターフェースを実装し、すべてのクライアント要求を処理します。
  • 型定義: すべての操作に対する包括的なTypeScript定義
  • 環境設定: 環境変数による安全な設定管理
  • エラー処理: 詳細なエラーメッセージによる堅牢なエラー処理

前提条件

  • Node.js 16.x 以上
  • Supabase プロジェクト:
    • プロジェクトURL
    • サービスロールキー(管理者操作用)
    • アクセストークン(管理操作用)
  • MCP互換クライアント

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の Supabase Server を自動的にインストールするには:

npx -y @smithery/cli install supabase-server --client claude
  1. リポジトリをクローンします。
git clone https://github.com/DynamicEndpoints/supabase-mcp.git cd supabase-mcp
  1. 依存関係をインストールします:
npm install
  1. 環境構成を作成します。
cp .env.example .env
  1. 環境変数を設定します。
SUPABASE_URL=your_project_url_here SUPABASE_KEY=your_service_role_key_here SUPABASE_ACCESS_TOKEN=your_access_token_here # Required for management operations
  1. サーバー構成を作成します。
cp config.json.example config.json
  1. サーバーを構築します。
npm run build

構成

サーバーは、環境変数とconfig.jsonファイルの両方を通じて、広範な設定をサポートしています。設定オプションの詳細な内訳は次のとおりです。

サーバー構成

{ "server": { "name": "supabase-server", // Server name "version": "0.1.0", // Server version "port": 3000, // Port number (if running standalone) "host": "localhost" // Host address (if running standalone) } }

Supabase 構成

{ "supabase": { "project": { "url": "your_project_url", "key": "your_service_role_key", "accessToken": "your_access_token" }, "storage": { "defaultBucket": "public", // Default storage bucket "maxFileSize": 52428800, // Max file size in bytes (50MB) "allowedMimeTypes": [ // Allowed file types "image/*", "application/pdf", "text/*" ] }, "database": { "maxConnections": 10, // Max DB connections "timeout": 30000, // Query timeout in ms "ssl": true // SSL connection }, "auth": { "autoConfirmUsers": false, // Auto-confirm new users "disableSignup": false, // Disable public signups "jwt": { "expiresIn": "1h", // Token expiration "algorithm": "HS256" // JWT algorithm } } } }

ログ構成

{ "logging": { "level": "info", // Log level "format": "json", // Log format "outputs": ["console", "file"], // Output destinations "file": { "path": "logs/server.log", // Log file path "maxSize": "10m", // Max file size "maxFiles": 5 // Max number of files } } }

セキュリティ構成

{ "security": { "cors": { "enabled": true, "origins": ["*"], "methods": ["GET", "POST", "PUT", "DELETE", "OPTIONS"], "allowedHeaders": ["Content-Type", "Authorization"] }, "rateLimit": { "enabled": true, "windowMs": 900000, // 15 minutes "max": 100 // Max requests per window } } }

監視構成

{ "monitoring": { "enabled": true, "metrics": { "collect": true, "interval": 60000 // Collection interval in ms }, "health": { "enabled": true, "path": "/health" // Health check endpoint } } }

完全なサンプル構成ファイルについては、 config.json.example参照してください。

MCP統合

サーバーを MCP 設定 (cline_mcp_settings.json) に追加します。

{ "mcpServers": { "supabase": { "command": "node", "args": ["path/to/supabase-server/build/index.js"], "env": { "SUPABASE_URL": "your_project_url", "SUPABASE_KEY": "your_service_role_key", "SUPABASE_ACCESS_TOKEN": "your_access_token" }, "config": "path/to/config.json" // Optional: path to configuration file } } }

利用可能なツール

データベース操作

レコード作成

特定のフィールドを返す機能をサポートするテーブルに新しいレコードを作成します。

{ table: string; data: Record<string, any>; returning?: string[]; }

例:

{ table: "users", data: { name: "John Doe", email: "john@example.com" }, returning: ["id", "created_at"] }
レコード読み取り

高度なフィルタリング、結合、フィールド選択を使用してレコードを読み取ります。

{ table: string; select?: string[]; filter?: Record<string, any>; joins?: Array<{ type?: 'inner' | 'left' | 'right' | 'full'; table: string; on: string; }>; }

例:

{ table: "posts", select: ["id", "title", "user.name"], filter: { published: true }, joins: [{ type: "left", table: "users", on: "posts.user_id=users.id" }] }
更新レコード

フィルタリング機能と戻り機能を使用してレコードを更新します。

{ table: string; data: Record<string, any>; filter?: Record<string, any>; returning?: string[]; }

例:

{ table: "users", data: { status: "active" }, filter: { email: "john@example.com" }, returning: ["id", "status", "updated_at"] }
レコードの削除

フィルタリング機能と戻り機能を使用してレコードを削除します。

{ table: string; filter?: Record<string, any>; returning?: string[]; }

例:

{ table: "posts", filter: { status: "draft" }, returning: ["id", "title"] }

ストレージ操作

アップロードファイル

設定可能なオプションを使用して、Supabase ストレージにファイルをアップロードします。

{ bucket: string; path: string; file: File | Blob; options?: { cacheControl?: string; contentType?: string; upsert?: boolean; }; }

例:

{ bucket: "avatars", path: "users/123/profile.jpg", file: imageBlob, options: { contentType: "image/jpeg", upsert: true } }
ダウンロードファイル

Supabase Storage からファイルをダウンロードします。

{ bucket: string; path: string; }

例:

{ bucket: "documents", path: "reports/annual-2023.pdf" }

エッジ関数

呼び出し関数

パラメーターとカスタム オプションを使用して Supabase Edge Functions を呼び出します。

{ function: string; params?: Record<string, any>; options?: { headers?: Record<string, string>; responseType?: 'json' | 'text' | 'arraybuffer'; }; }

例:

{ function: "process-image", params: { url: "https://example.com/image.jpg", width: 800 }, options: { responseType: "json" } }

ユーザー管理

リストユーザー

ページ区切りをサポートするユーザーを一覧表示します。

{ page?: number; per_page?: number; }
ユーザー作成

メタデータを使用して新しいユーザーを作成します。

{ email: string; password: string; data?: Record<string, any>; }
更新ユーザー

ユーザーの詳細を更新します。

{ user_id: string; email?: string; password?: string; data?: Record<string, any>; }
ユーザー削除

ユーザーを削除します。

{ user_id: string; }
ユーザーロールの割り当て

ユーザーにロールを割り当てます。

{ user_id: string; role: string; }
ユーザーロールの削除

ユーザーからロールを削除します。

{ user_id: string; role: string; }

エラー処理

サーバーは、一般的なシナリオに対して詳細なエラー メッセージを提供します。

  • 無効なパラメータ
  • 認証失敗
  • 権限の問題
  • レート制限
  • ネットワークエラー
  • データベースの制約

エラーは標準化された形式で返されます。

{ code: ErrorCode; message: string; details?: any; }

発達

テストの実行

npm test

建物

npm run build

リンティング

npm run lint

評価の実行

evalsパッケージはmcpクライアントをロードし、index.tsファイルを実行するため、テスト間でリビルドする必要はありません。npxコマンドの先頭に環境変数をロードすることもできます。完全なドキュメントはこちらでご覧いただけます。

OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts

貢献

  1. リポジトリをフォークする
  2. 機能ブランチを作成する
  3. 変更をコミットする
  4. ブランチにプッシュする
  5. プルリクエストを作成する

ライセンス

MITライセンス - 詳細はライセンスを参照

サポート

サポートについては、以下をご覧ください。

  1. 既存の問題/解決を確認する
  2. 詳細な再現手順を記載した新しい問題を作成する
  3. 関連するエラーメッセージと環境の詳細を含める

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Supabase データベース、ストレージ、エッジ機能と対話するためのツールを提供する MCP サーバー。

  1. 概要
    1. 建築
      1. 主要コンポーネント
    2. 前提条件
      1. インストール
        1. Smithery経由でインストール
      2. 構成
        1. サーバー構成
        2. Supabase 構成
        3. ログ構成
        4. セキュリティ構成
        5. 監視構成
      3. MCP統合
        1. 利用可能なツール
          1. データベース操作
          2. ストレージ操作
          3. エッジ関数
          4. ユーザー管理
        2. エラー処理
          1. 発達
            1. テストの実行
            2. 建物
            3. リンティング
            4. 評価の実行
          2. 貢献
            1. ライセンス
              1. サポート

                Related MCP Servers

                • A
                  security
                  F
                  license
                  A
                  quality
                  A Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.
                  Last updated -
                  8
                  84
                  27
                  JavaScript
                • A
                  security
                  A
                  license
                  A
                  quality
                  This server enables interaction with Supabase PostgreSQL databases through the MCP protocol, allowing seamless integration with Cursor and Windsurf IDEs for secure and validated database management.
                  Last updated -
                  11
                  699
                  Python
                  Apache 2.0
                  • Apple
                  • Linux
                • -
                  security
                  A
                  license
                  -
                  quality
                  An MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.
                  Last updated -
                  JavaScript
                  MIT License
                • -
                  security
                  A
                  license
                  -
                  quality
                  Open source MCP server specializing in easy, fast, and secure tools for Databases.
                  Last updated -
                  1,208
                  Go
                  Apache 2.0
                  • Linux

                View all related MCP servers

                MCP directory API

                We provide all the information about MCP servers via our MCP API.

                curl -X GET 'https://glama.ai/api/mcp/v1/servers/DynamicEndpoints/supabase-mcp'

                If you have feedback or need assistance with the MCP directory API, please join our Discord server