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でコンテナ化して簡単に導入できる
- 実稼働環境での展開に鉄道との互換性あり
イベントアーキテクチャ
このシステムは完全にイベント駆動型のアーキテクチャを採用しています。
- Supabaseのトリガー: プロジェクトが作成または変更されると、トリガーがサービスに直接Webhookを送信します。
- 制御された遅延処理: 新しい挿入の場合、競合状態を回避するために 20 秒の遅延が適用されます。
- 自動再試行: 失敗した場合、システムは指数バックオフ(2、4、8秒)で最大3回再試行します。
- 監査ログ: すべての試行はデバッグと監視のために
webhook_logs
テーブルに記録されます。
要件
- Node.js >= 18
proyectos
テーブルとproyecto_vector
を備えた Supabase- OpenAI APIキー
- Docker(デプロイメント用)
構成
サービスは構成に環境変数を使用します。
地域開発
- 依存関係をインストールします:
- 環境変数を設定する(プロジェクトルートに
.env
ファイルを作成する) - 開発モードで実行:
ドッカー
Docker でサービスを実行するには:
または Docker Compose を使用する場合:
鉄道への展開
準備
- GitHub にリポジトリを作成し、コードをアップロードします。
- まだRailroadアカウントをお持ちでない場合は作成してください。
展開
- RailwayでGitHubから新しいプロジェクトを作成する
mcp-vector-sync
リポジトリを選択する- RailwayはDockerfileを自動的に検出します
- 「変数」セクションで環境変数を設定します
- サービスをデプロイする
Railway は、デプロイメントを構成するためにrailway.json
ファイルを使用し、イメージをビルドするために Dockerfile を使用します。
監視
デプロイしたら、 /health
エンドポイントを使用してサービスを監視できます。
Webhookエンドポイント
システムは次のエンドポイントで Webhook を受信します。
Webhook の想定されるペイロードには以下が含まれている必要があります。
MCPツール
このサービスでは、次の MCP ツールが公開されます。
sync-tenant
: 特定のテナントの同期を強制するget-sync-status
: テナントの同期ステータスを取得しますcontrol-monitor
: 同期モニターを開始または停止します
トラブルシューティング
- 埋め込み生成にエラーがある場合は、OpenAI API キーを確認してください。
- Supabase との接続の問題の場合は、URL とサービス キーが正しいことを確認してください。
webhook_logs
のログを確認して、Webhook の問題を診断します。LOG_LEVEL=debug
で詳細なログを有効にすることができます
メンテナンス
サービスを更新するには:
- コードを変更する
package.json
のバージョンを更新する- GitHubにコミットしてプッシュする
- 鉄道は変更を検知し、自動的に再展開します
安全に関する考慮事項
- ソース コードに資格情報や API キーを含めないでください。
- すべての機密設定に環境変数を使用する
- Supabaseサービスロールキーに必要な権限のみがあることを確認してください
- 実稼働環境では、Webhook の認証を実装することを検討してください。
- DoS攻撃から保護するためにレート制限を設定する
This server cannot be installed
Supabase データベースの変更を自動的に監視し、OpenAI 埋め込みを生成し、各テナントのプロジェクトの同期されたベクトル検索機能を維持するマルチテナント サービス。