
MCP Vector Sync
一个多租户服务,可以自动监控 Supabase 数据库的更改,生成 OpenAI 嵌入,并为每个租户的项目维护同步的向量搜索功能。
README
MCP 向量同步
MCP 服务,用于通过 100% 基于事件的系统,将多租户搜索向量自动与 Supabase 同步。
描述
此服务接收来自 Supabase 的实时通知,当 proyectos
表发生更改时,使用 OpenAI 生成向量嵌入,并更新 proyecto_vector
表,从而为每个租户维护高效的向量搜索。 它实现了 MCP(模型上下文协议)以公开同步工具和资源。
特性
- 100% 基于事件的系统(直接来自 Supabase 的 Webhook)
- 使用 OpenAI 生成嵌入
- 立即处理项目更改
- 具有指数退避的自动重试系统
- 用于调试和监控的审计日志
- 具有完全数据隔离的多租户同步
- 用于控制和监控的 MCP 工具公开
- 用于监控的健康检查服务器
- 使用 Docker 进行容器化,易于部署
- 兼容 Railway,可在生产环境中部署
事件架构
该系统使用完全基于事件的架构:
- Supabase 中的触发器:当创建或修改项目时,触发器会将 Webhook 直接发送到服务
- 受控延迟处理:对于新的插入,应用 20 秒的延迟以避免竞争条件
- 自动重试:如果发生故障,系统将使用指数退避(2、4、8 秒)重试最多 3 次
- 审计日志:所有尝试都记录在
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
本地开发
- 安装依赖项:
npm install
-
配置环境变量(在项目根目录中创建
.env
文件) -
在开发模式下运行:
npm run dev
Docker
要使用 Docker 运行该服务:
# 构建镜像
docker build -t mcp-vector-sync .
# 运行容器
docker run -p 3000:3000 --env-file .env mcp-vector-sync
或者使用 Docker Compose:
docker-compose up
在 Railway 上部署
准备
- 在 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
- 如果还没有,请在 Railway 上创建一个帐户。
部署
- 在 Railway 中,从 GitHub 创建一个新项目
- 选择
mcp-vector-sync
存储库 - Railway 将自动检测 Dockerfile
- 在“变量”部分配置环境变量
- 部署服务
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
启用详细日志
维护
要更新服务:
- 更改代码
- 更新
package.json
中的版本 - 提交并推送到 GitHub
- Railway 将检测到更改并自动重新部署
安全注意事项
- 切勿在源代码中包含凭据或 API 密钥
- 使用环境变量进行所有敏感配置
- 确保 Supabase 的服务角色密钥仅具有必要的权限
- 在生产环境中,考虑为 Webhook 实施身份验证
- 配置速率限制以防止 DoS 攻击
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。