Relay MCP Server
Relay
자체 데이터에서 답변하고, 자체 정책을 인용하며, 비용이 발생하기 전에 인간의 승인을 받는 AI 운영 에이전트.
1 오케스트레이터 · 2 전문가 · 9 도구 · 1 인간 승인 쓰기
운영팀은 항상 간극 속에 살고 있습니다. *"이 고객의 주문이 왜 도착하지 않았으며, 우리가 돈을 갚아야 하나요?"*에 대한 답은 두 곳에 동시에 있습니다: 주문 데이터베이스와, 온보딩 이후 아무도 읽지 않은 정책 문서. 그 간극을 수동으로 메우는 것이 지원 에이전트가 하루 종일 하는 일의 대부분입니다.
Relay는 그 간극을 메우고, 그 과정을 보여줍니다.

일반 챗봇과의 차이점
시스템을 읽고, 인터넷은 읽지 않습니다. 9개의 도구가 라이브 PostgreSQL 데이터베이스를 조회합니다. 모델은 도구 결과에서 나오지 않은 사실을 진술하는 것이 금지되며, 모든 호출은 실제 지연 시간과 함께 화면에 표시됩니다.
제품을 렌더링하고, 산문은 렌더링하지 않습니다. 지연된 주문을 물으면 상태 배지와 지연 일수가 포함된 테이블이 표시됩니다. 개요를 요청하면 대시보드가 표시됩니다. 모델은 도구를 선택하고, 프론트엔드는 결과가 어떻게 보일지 결정하므로 모델이 무엇을 하든 출력은 항상 잘 구성됩니다.
정책을 인용합니다. PDF를 업로드하면 즉시 청크화, 임베딩 및 검색 가능해집니다. 검색은 하이브리드 방식입니다. 의미 검색을 위한 벡터 유사도, SKU와 같은 정확한 용어를 위한 Postgres 전문 검색을 상호 순위 융합으로 결합합니다. 임베딩은 프로세스 내에서 계산되므로 문서 내용이 서버를 떠나지 않습니다.
비용을 쓸 수 없습니다. 정확히 하나의 도구가 쓰기 작업을 수행합니다. 이 도구는 오케스트레이터에 있으며, 인간 승인 게이트 뒤에 있고, 주문 총액으로 제한되며 멱등성을 가집니다. 어떤 전문가도 돈을 이동할 수 없으며, 어떤 위임도 게이트를 우회할 수 없습니다. 이는 설정이 아닌 토폴로지의 속성입니다.
기존에 사용하던 도구에 연결됩니다. Relay는 MCP 서버이기도 합니다. Claude Desktop, Cursor 또는 다른 에이전트를 /api/mcp에 연결하면 읽기 도구를 사용할 수 있습니다. 동일한 도구, 동일한 데이터입니다. 쓰기 도구는 의도적으로 노출되지 않습니다: 승인 게이트는 Relay의 인터페이스에 있으므로, 쓰기를 연합하면 외부 클라이언트가 게이트를 우회할 수 있는 방법을 제공하게 됩니다.
실시간으로 연결 방식을 확인할 수 있습니다. 아키텍처 보기는 다이어그램이 아닙니다. 요청이 실제로 거친 경로를 따라 노드가 켜지며, 각 전문가가 호출한 도구와 소요 시간을 나열합니다.

에이전트
에이전트 | 담당 | 도구 |
Relay (오케스트레이터) | 요청을 라우팅하고, 답변을 종합하며, 쓰기 경로를 담당 | 2 위임 + 1 쓰기 |
운영 전문가 | 주문, 배송, 고객, 티켓, 운영 개요 | 7 읽기 |
지식 전문가 | 하이브리드 검색을 통한 문서 라이브러리 | 1 읽기 |
위임은 속도를 위한 것이 아닙니다. 지연 시간이 발생합니다. 위임을 통해 신뢰할 수 있는 도구 선택(14개의 관련 없는 도구보다 6개의 관련 도구가 더 나음), 전문가별로 깔끔한 컨텍스트, 그리고 구조적으로 격리된 쓰기 경로를 얻을 수 있습니다.
도구
도구 | 효과 | 설명 |
| 읽기 | 예상 배송일을 지났고 배송되지 않은 주문 |
| 읽기 | 상태, 고객 또는 최근성을 기준으로 주문 검색 |
| 읽기 | 하나의 주문 전체: 항목, 배송, 티켓, 환불 |
| 읽기 | 배송 위치, 지연 여부 및 지연 일수 |
| 읽기 | 상태, 우선순위 또는 카테고리별 지원 티켓 |
| 읽기 | 주문 및 티켓 기록이 포함된 고객 정보 |
| 읽기 | 상태별 카운트, 운송업체별 지연, 14일 볼륨 추세 |
| 읽기 | 업로드된 문서에 대한 하이브리드 검색 |
| 쓰기 | 환불을 발행합니다. 인간 승인 필요. 제한 및 멱등성. |
검색 작동 방식

수집은 문서당 한 번: 업로드 → 추출 → 청크화(~1000자, 150 중첩) → 임베딩(다국어 MiniLM, 384차원) → pgvector에 저장.
질의는 모든 질문마다: 임베딩 → 벡터 검색 및 전문 검색을 병렬로 수행 → 상호 순위 융합 → 상위 5개 구절과 해당 출처.
두 검색 모두 필요합니다. 어느 하나만으로는 충분하지 않기 때문입니다. 벡터 유사도는 다른 단어로 같은 의미를 가진 구절을 찾지만 정확한 SKU는 놓칩니다. 전문 검색은 정확한 토큰을 찾지만 의역은 놓칩니다. RRF는 비교할 수 없는 시스템 간의 점수를 보정하지 않고 두 순위를 병합합니다.
임베더는 의도적으로 다국어입니다. 영어 전용 모델은 스페인어 질문과 영어 정책을 비교할 때 0.18의 점수를 주는데, 이는 관련 없는 텍스트에 주는 0.02보다 약간 높을 뿐입니다. 교차 언어 검색은 조용히 노이즈를 반환할 것입니다. 다국어 모델은 동일한 쌍에 대해 0.43의 점수를 줍니다.
실행하기
요구 사항: Node 22+, Docker, 그리고 DeepSeek 또는 Anthropic의 API 키.
npm install # also generates the Prisma client
cp .env.example .env # set RELAY_PROVIDER and the matching key
npm run db:up # PostgreSQL + pgvector on port 5440
npm run db:push # create the schema
npm run db:seed # demo dataset + policy documents
npm run devhttp://localhost:3000을 엽니다.
자체 키를 가져오세요. 콘솔의 설정 탭에서 API 키를 입력할 수 있으며, 이 키는 브라우저에만 저장되고, 요청 헤더로 전송되며, 해당 제공자에게 전달된 후 폐기됩니다. 데이터베이스에 기록되지 않고, 로깅되지 않으며, 감사 추적에 나타나지 않습니다.
명령어 | 설명 |
| PostgreSQL 시작 / 중지 |
| 모든 데이터 초기화 및 재시딩 |
| 문서 라이브러리만 재설정 |
| 사례 연구 PDF 재빌드 |
시드는 결정적입니다. 실행할 때마다 동일한 주문, 지연 및 티켓이 생성되며, 날짜는 현재를 기준으로 생성되므로 데이터가 오래되어 보이지 않습니다.
직접 사용해보기
라이브 업로드할 샘플 문서는 docs/sample-uploads/에 있으며, 각 문서 후에 물어볼 질문과 정답이 포함되어 있습니다. 그중 하나는 의도적으로 시드 정책과 모순되며, 이는 실제 클라이언트에서 발생하는 상황입니다.
프로젝트 구조
prisma/
schema.prisma Data model — one datastore
seed.ts Deterministic business dataset
seed-documents.ts Policy documents into the knowledge base
src/
app/api/chat/route.ts The agent endpoint
lib/
agents.ts Orchestrator + specialists, delegation tools
tools.ts The 9 tools
rag/ Chunking, ingestion, hybrid search
embeddings.ts Local multilingual embedder
audit.ts Tool call recording
model.ts Provider resolution, bring-your-own-key
components/
console.tsx The one-panel console
architecture.tsx Live architecture canvas
renders/ Generative UI: tables, records, chartsMCP를 통한 연결
// claude_desktop_config.json
{
"mcpServers": {
"relay": { "url": "http://localhost:3000/api/mcp" }
}
}8개의 읽기 도구를 사용할 수 있습니다: 주문, 배송, 고객, 티켓, 운영 요약 및 하이브리드 문서 검색. issue_refund는 의도적으로 제외되었습니다. 읽기는 연합해도 안전하지만, 쓰기는 인간 게이트 뒤에 남아 있습니다.
배포
자체 호스팅. 독립형 Next.js 빌드와 리버스 프록시 뒤의 PostgreSQL 컨테이너. 관리형 플랫폼이 필요 없고, 벤더 종속이 없습니다.
보안
.env 및 .env.example을 제외한 모든 .env.*는 gitignore에 포함됩니다. 이 저장소는 공개입니다. 키, 토큰 또는 연결 문자열은 추적된 파일에 속하지 않습니다.
데모 데이터셋은 완전히 생성되었습니다. Harbor & Pine은 가상의 브랜드이며, 그 데이터는 생성된 것입니다. 고객, 주문, 주소 또는 환불 중 실제 사람을 참조하는 것은 없습니다.
문서
문서 | 대상 |
전체 기술 문서 | |
| |
스페인어 버전 | |
예상 답변이 포함된 테스트 문서 |
제작
IKOM — Haziel Zul과 Jorge Bustos.
Relay는 쇼케이스 빌드입니다. Harbor & Pine은 가상의 브랜드이며 데이터는 생성된 것입니다. 아키텍처, 코드 및 숫자는 실제이며 데모에서 재현 가능합니다.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Snozu/relay'
If you have feedback or need assistance with the MCP directory API, please join our Discord server