MCP Vector Sync

by qtoexdj
Verified

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.

Integrations

  • Enables containerized deployment of the service, with support for both standalone Docker and Docker Compose configurations.

  • Integrates with GitHub for version control and automated deployment through Railway, detecting repository changes for continuous deployment.

  • Generates vector embeddings using OpenAI's embedding models to create searchable vectors from project data that are stored in Supabase.

MCPベクトル同期

100% イベントベースのシステムを使用して、マルチテナント検索ベクトルを Supabase と自動的に同期する MCP サービス。

説明

このサービスは、 proyectosテーブルに変更があったときに Supabase からリアルタイム通知を受信し、OpenAI を使用してベクトル埋め込みを生成し、各テナントの効率的なベクトル検索を維持しながらproyecto_vectorテーブルを更新します。同期ツールとリソースを公開するために、モデル コンテキスト プロトコル (MCP) を実装します。

特徴

  • 100% イベントベースのシステム (Supabase からの直接 Webhook)
  • OpenAIによる埋め込みの生成
  • プロジェクト変更の即時処理
  • 指数バックオフによる自動再試行システム
  • デバッグと監視のための監査ログ
  • 完全なデータ分離を備えたマルチテナント同期
  • 制御・監視用MCPツールの展示
  • 監視用のヘルスチェックサーバー
  • Dockerでコンテナ化して簡単に導入できる
  • 実稼働環境での展開に鉄道との互換性あり

イベントアーキテクチャ

このシステムは完全にイベント駆動型のアーキテクチャを採用しています。

  1. Supabaseのトリガー: プロジェクトが作成または変更されると、トリガーがサービスに直接Webhookを送信します。
  2. 制御された遅延処理: 新しい挿入の場合、競合状態を回避するために 20 秒の遅延が適用されます。
  3. 自動再試行: 失敗した場合、システムは指数バックオフ(2、4、8秒)で最大3回再試行します。
  4. 監査ログ: すべての試行はデバッグと監視のためにwebhook_logsテーブルに記録されます。

要件

  • Node.js >= 18
  • proyectosテーブルとproyecto_vectorを備えた Supabase
  • OpenAI APIキー
  • Docker(デプロイメント用)

構成

サービスは構成に環境変数を使用します。

# Supabase SUPABASE_URL=https://your-project.supabase.co SUPABASE_SERVICE_ROLE_KEY=your-service-role-key # OpenAI OPENAI_API_KEY=your-openai-api-key OPENAI_MODEL=text-embedding-ada-002 # Rate Limiting RATE_LIMIT_PER_TENANT=100 CONCURRENT_REQUESTS=5 # Logging LOG_LEVEL=info

地域開発

  1. 依存関係をインストールします:
npm install
  1. 環境変数を設定する(プロジェクトルートに.envファイルを作成する)
  2. 開発モードで実行:
npm run dev

ドッカー

Docker でサービスを実行するには:

# Construir la imagen docker build -t mcp-vector-sync . # Ejecutar el contenedor docker run -p 3000:3000 --env-file .env mcp-vector-sync

または Docker Compose を使用する場合:

docker-compose up

鉄道への展開

準備

  1. GitHub にリポジトリを作成し、コードをアップロードします。
git init git add . git commit -m "Initial commit" git remote add origin https://github.com/tu-usuario/mcp-vector-sync.git git push -u origin main
  1. まだRailroadアカウントをお持ちでない場合は作成してください。

展開

  1. RailwayでGitHubから新しいプロジェクトを作成する
  2. mcp-vector-syncリポジトリを選択する
  3. RailwayはDockerfileを自動的に検出します
  4. 「変数」セクションで環境変数を設定します
  5. サービスをデプロイする

Railway は、デプロイメントを構成するためにrailway.jsonファイルを使用し、イメージをビルドするために Dockerfile を使用します。

監視

デプロイしたら、 /healthエンドポイントを使用してサービスを監視できます。

https://tu-proyecto.railway.app/health

Webhookエンドポイント

システムは次のエンドポイントで Webhook を受信します。

https://tu-proyecto.railway.app/webhook/project-update

Webhook の想定されるペイロードには以下が含まれている必要があります。

{ "inmobiliaria_id": "uuid-del-tenant", "project_id": "uuid-del-proyecto", "event": "INSERT|UPDATE", "timestamp": "2025-03-22T17:45:00Z" }

MCPツール

このサービスでは、次の MCP ツールが公開されます。

  • sync-tenant : 特定のテナントの同期を強制する
  • get-sync-status : テナントの同期ステータスを取得します
  • control-monitor : 同期モニターを開始または停止します

トラブルシューティング

  • 埋め込み生成にエラーがある場合は、OpenAI API キーを確認してください。
  • Supabase との接続の問題の場合は、URL とサービス キーが正しいことを確認してください。
  • webhook_logsのログを確認して、Webhook の問題を診断します。
  • LOG_LEVEL=debugで詳細なログを有効にすることができます

メンテナンス

サービスを更新するには:

  1. コードを変更する
  2. package.jsonのバージョンを更新する
  3. GitHubにコミットしてプッシュする
  4. 鉄道は変更を検知し、自動的に再展開します

安全に関する考慮事項

  • ソース コードに資格情報や API キーを含めないでください。
  • すべての機密設定に環境変数を使用する
  • Supabaseサービスロールキーに必要な権限のみがあることを確認してください
  • 実稼働環境では、Webhook の認証を実装することを検討してください。
  • DoS攻撃から保護するためにレート制限を設定する
-
security - not tested
F
license - not found
-
quality - not tested

Supabase データベースの変更を自動的に監視し、OpenAI 埋め込みを生成し、各テナントのプロジェクトの同期されたベクトル検索機能を維持するマルチテナント サービス。

  1. Descripción
    1. Características
      1. Arquitectura de eventos
        1. Requisitos
          1. Configuración
            1. Desarrollo Local
              1. Docker
                1. Despliegue en Railway
                  1. Preparación
                  2. Despliegue
                  3. Monitoreo
                2. Endpoint de Webhook
                  1. Herramientas MCP
                    1. Solución de problemas
                      1. Mantenimiento
                        1. Consideraciones de seguridad
                          ID: ptok4xs88x