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에서 직접 웹훅)
- OpenAI를 사용하여 임베딩 생성
- 프로젝트 변경 사항의 즉각적인 처리
- 지수 백오프를 갖춘 자동 재시도 시스템
- 디버깅 및 모니터링을 위한 감사 로그
- 완벽한 데이터 격리를 통한 다중 테넌트 동기화
- 제어 및 모니터링을 위한 MCP 도구 전시
- 모니터링을 위한 Health Check 서버
- Docker로 컨테이너화하여 쉽게 배포 가능
- 생산 배포를 위한 철도와 호환 가능
이벤트 아키텍처
이 시스템은 완전히 이벤트 기반 아키텍처를 사용합니다.
- Supabase의 트리거 : 프로젝트가 생성되거나 수정되면 트리거가 웹훅을 서비스에 직접 전송합니다.
- 제어된 지연 처리 : 새로운 삽입의 경우 경쟁 조건을 피하기 위해 20초 지연이 적용됩니다.
- 자동 재시도 : 실패 시 시스템은 지수적 백오프(2, 4, 8초)로 최대 3회 재시도합니다.
- 감사 로그 : 모든 시도는 디버깅 및 모니터링을 위해
webhook_logs
테이블에 기록됩니다.
요구 사항
- 노드.js >= 18
proyectos
테이블과proyecto_vector
가 있는 Supabase- OpenAI API 키
- Docker(배포용)
구성
이 서비스는 구성에 환경 변수를 사용합니다.
지엑스피1
지역 개발
- 종속성 설치:
- 환경 변수 구성(프로젝트 루트에
.env
파일 생성) - 개발 모드에서 실행:
도커
Docker로 서비스를 실행하려면:
또는 Docker Compose를 사용하면:
철도 배치
준비
- GitHub에 저장소를 만들고 코드를 업로드하세요.
- 아직 철도 계정이 없다면 만들어 보세요.
전개
- Railway에서 GitHub에서 새 프로젝트를 만듭니다.
mcp-vector-sync
저장소를 선택하세요- 철도는 Dockerfile을 자동으로 감지합니다.
- "변수" 섹션에서 환경 변수를 구성합니다.
- 서비스 배포
Railway에서는 railway.json
파일을 사용하여 배포를 구성하고 Dockerfile을 사용하여 이미지를 빌드합니다.
모니터링
배포가 완료되면 /health
엔드포인트를 사용하여 서비스를 모니터링할 수 있습니다.
웹훅 엔드포인트
시스템은 다음 엔드포인트에서 웹훅을 수신합니다.
웹훅에 대한 예상 페이로드에는 다음이 포함되어야 합니다.
MCP 도구
이 서비스는 다음과 같은 MCP 도구를 제공합니다.
sync-tenant
: 특정 테넌트에 대한 동기화를 강제로 실행합니다.get-sync-status
: 테넌트의 동기화 상태를 가져옵니다.control-monitor
: 동기화 모니터를 시작하거나 중지합니다.
문제 해결
- 임베딩 생성에 오류가 있는 경우 OpenAI API 키를 확인하세요.
- Supabase 연결 문제의 경우 URL과 서비스 키가 올바른지 확인하세요.
webhook_logs
의 로그를 검토하여 웹훅 문제를 진단합니다.LOG_LEVEL=debug
사용하여 자세한 로그를 활성화할 수 있습니다.
유지
서비스를 업데이트하려면:
- 코드를 변경하세요
package.json
의 버전을 업데이트하세요- GitHub에 커밋하고 푸시합니다.
- 철도는 변경 사항을 감지하고 자동으로 다시 배치합니다.
안전 고려 사항
- 소스 코드에 자격 증명이나 API 키를 포함하지 마세요.
- 모든 민감한 설정에 환경 변수를 사용하세요
- Supabase 서비스 역할 키에 필요한 권한만 있는지 확인하세요.
- 운영 환경에서는 웹후크에 대한 인증을 구현하는 것을 고려하세요.
- DoS 공격으로부터 보호하기 위해 속도 제한을 구성하세요
This server cannot be installed
Supabase 데이터베이스 변경 사항을 자동으로 모니터링하고, OpenAI 임베딩을 생성하고, 각 테넌트의 프로젝트에 대해 동기화된 벡터 검색 기능을 유지하는 멀티 테넌트 서비스입니다.