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 矢量同步

MCP 服务使用 100% 基于事件的系统与 Supabase 自动同步多租户搜索向量。

描述

proyectos表发生变化时,该服务会从 Supabase 接收实时通知,使用 OpenAI 生成向量嵌入,并更新proyecto_vector表,为每个租户维护高效的向量查找。实现模型上下文协议 (MCP) 来公开同步工具和资源。

特征

  • 100% 基于事件的系统(来自 Supabase 的直接 webhook)
  • 使用 OpenAI 生成嵌入
  • 立即处理项目变更
  • 具有指数退避算法的自动重试系统
  • 用于调试和监控的审计日志
  • 完全数据隔离的多租户同步
  • MCP控制和监控工具展览
  • 用于监控的健康检查服务器
  • 使用 Docker 进行容器化,易于部署
  • 与 Railway 兼容,可进行生产部署

活动架构

该系统采用完全事件驱动的架构:

  1. Supabase 中的触发器:当创建或修改项目时,触发器会直接向服务发送一个 webhook
  2. 受控延迟处理:对于新插入,应用 20 秒延迟以避免竞争条件。
  3. 自动重试:如果发生故障,系统将以指数退避(2、4、8 秒)重试最多 3 次
  4. 审计日志:所有尝试都记录到webhook_logs表中,以供调试和监控。

要求

  • Node.js >= 18
  • Supabase 带有proyectos表和proyecto_vector
  • 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

要使用 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. 如果您还没有铁路账户,请创建一个。

部署

  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