Relay MCP Server
Relay
Un agente de operaciones de IA que responde desde tus propios datos, cita tus propias políticas y se detiene para que un humano revise antes de gastar un céntimo.
1 orquestador · 2 especialistas · 9 herramientas · 1 escritura con control humano
Los equipos de operaciones viven en un vacío. La respuesta a "¿por qué no ha llegado el pedido de este cliente y le debemos dinero?" está en dos sitios a la vez: la base de datos de pedidos y un documento de políticas que nadie ha leído desde la incorporación. Cerrar esa brecha a mano es la mayor parte de lo que hace un agente de soporte durante todo el día.
Relay la cierra — y muestra su trabajo mientras lo hace.

Qué lo diferencia de un chatbot
Lee tus sistemas, no internet. Nueve herramientas consultan una base de datos PostgreSQL en vivo. Al modelo se le prohíbe afirmar cualquier hecho que no provenga del resultado de una herramienta, y cada llamada es visible en pantalla con su latencia real.
Renderiza producto, no prosa. Pregunta qué está retrasado y obtienes una tabla con indicadores de estado y días de retraso. Pide un resumen y obtienes un panel de control. El modelo elige la herramienta; el frontend controla cómo se ve el resultado, por lo que la salida siempre está bien formada, sin importar lo que haga el modelo.
Cita tus políticas. Sube un PDF y se divide en fragmentos, se vectoriza y se vuelve buscable en segundos. La recuperación es híbrida: similitud vectorial para el significado, búsqueda de texto completo de Postgres para términos exactos como un SKU — fusionada con rango recíproco. Los embeddings se calculan en proceso, por lo que el contenido de los documentos nunca sale de tu servidor.
No puede gastar tu dinero. Exactamente una herramienta escribe. Se encuentra en el orquestador, detrás de una puerta de aprobación humana, limitada al total del pedido e idempotente. Ningún especialista puede mover dinero, y ninguna cantidad de delegación puede eludir la puerta. Eso es una propiedad de la topología, no una configuración.
Se integra con lo que ya usas. Relay también es un servidor MCP. Apunta Claude Desktop, Cursor u otro agente a /api/mcp y sus herramientas de lectura estarán disponibles allí — las mismas herramientas, contra los mismos datos. La herramienta de escritura está deliberadamente no expuesta: la puerta de aprobación vive en la interfaz de Relay, por lo que federar la escritura le daría a un cliente externo una forma de evitarla.
Puedes ver cómo está conectado, en vivo. La vista de arquitectura no es un diagrama: los nodos se iluminan a lo largo de la ruta que realmente tomó una solicitud, y cada especialista enumera las herramientas que llamó y cuánto tiempo tardaron.

Los agentes
Agente | Posee | Herramientas |
Relay (orquestador) | Enruta la solicitud, sintetiza la respuesta, posee la ruta de escritura | 2 delegaciones + 1 escritura |
Especialista en operaciones | Pedidos, envíos, clientes, tickets, resumen operativo | 7 de lectura |
Especialista en conocimiento | La biblioteca de documentos, a través de recuperación híbrida | 1 de lectura |
La delegación no es por velocidad — cuesta latencia. Compra una selección fiable de herramientas (seis herramientas relacionadas superan a catorce no relacionadas), un contexto limpio por especialista y una ruta de escritura estructuralmente aislada.
Las herramientas
Herramienta | Efecto | Qué hace |
| lectura | Pedidos pasada su fecha de entrega estimada y no entregados |
| lectura | Pedidos por estado, cliente o actualidad |
| lectura | Un pedido completo: artículos, envío, tickets, reembolsos |
| lectura | Dónde está un envío, si está retrasado y por cuántos días |
| lectura | Tickets de soporte por estado, prioridad o categoría |
| lectura | Un cliente con historial de pedidos y tickets |
| lectura | Conteos por estado, retrasos por transportista, tendencia de volumen de 14 días |
| lectura | Recuperación híbrida sobre documentos subidos |
| escritura | Emite un reembolso. Requiere aprobación humana. Limitado e idempotente. |
Cómo funciona la recuperación

Ingesta, una vez por documento: subir → extraer → fragmentar (~1000 caracteres, 150 de superposición) → vectorizar (MiniLM multilingüe, 384d) → almacenar en pgvector.
Consulta, cada pregunta: vectorizar → búsqueda vectorial y búsqueda de texto completo en paralelo → fusionar por rango recíproco → 5 pasajes principales con su fuente.
Ambas búsquedas, porque ninguna es suficiente por sí sola. La similitud vectorial encuentra un pasaje que significa lo mismo en diferentes palabras y pasa por alto un SKU exacto. El texto completo encuentra el token exacto y pasa por alto la paráfrasis. RRF combina las dos clasificaciones sin calibrar puntuaciones entre sistemas incomparables.
El embedder es multilingüe a propósito: un modelo solo en inglés puntúa una pregunta en español contra una política en inglés con un 0,18, apenas por encima del 0,02 que da a texto no relacionado. La recuperación entre idiomas devolvería silenciosamente ruido. El modelo multilingüe puntúa el mismo par con un 0,43.
Ejecutarlo
Requisitos: Node 22+, Docker y una clave API de DeepSeek o Anthropic.
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 devAbre http://localhost:3000.
Trae tu propia clave. La pestaña de Configuración en la consola acepta una clave API que se almacena solo en tu navegador, se envía como encabezado de solicitud, se reenvía a ese proveedor y se descarta. Nunca se escribe en la base de datos, nunca se registra y nunca aparece en el registro de auditoría.
Comando | Qué hace |
| Iniciar / detener PostgreSQL |
| Limpiar y resembrar todo |
| Reiniciar solo la biblioteca de documentos |
| Reconstruir los PDFs de casos de estudio |
La semilla es determinista — los mismos pedidos, retrasos y tickets en cada ejecución — y las fechas se generan relativas a ahora, por lo que los datos nunca parecen obsoletos.
Pruébalo
Los documentos de muestra para subir están en docs/sample-uploads/, con las preguntas a hacer después de cada uno y las respuestas correctas. Uno de ellos deliberadamente contradice una política sembrada, que es lo que sucede en un cliente real.
Estructura del proyecto
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, chartsConexión a través de MCP
// claude_desktop_config.json
{
"mcpServers": {
"relay": { "url": "http://localhost:3000/api/mcp" }
}
}Ocho herramientas de lectura están disponibles: pedidos, envíos, clientes, tickets, el resumen operativo y la búsqueda híbrida de documentos. issue_refund está ausente por diseño: las lecturas son seguras de federar, las escrituras permanecen detrás de la puerta humana.
Implementación
Autoalojado. Una compilación independiente de Next.js y un contenedor de PostgreSQL detrás de un proxy inverso. No se requiere plataforma gestionada ni se introduce dependencia de proveedor.
Seguridad
.env y todos los .env.* excepto .env.example están en gitignore. Este repositorio es público — ninguna clave, token o cadena de conexión pertenece a un archivo rastreado.
El conjunto de datos de demostración está completamente generado. Harbor & Pine es ficticio; ningún cliente, pedido, dirección o reembolso en él se refiere a una persona real.
Documentación
Documento | Para |
El informe técnico completo | |
Cómo se construyó | |
Edición en español | |
Documentos de prueba con respuestas esperadas |
Creado por
IKOM — Haziel Zul y Jorge Bustos.
Relay es una construcción de demostración. Harbor & Pine es una marca ficticia y sus datos son generados; la arquitectura, el código y los números son reales y reproducibles en la demo.
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