Relay MCP Server
Relay
ИИ-агент для операций, который отвечает на основе ваших данных, ссылается на ваши собственные политики и останавливается для человека, прежде чем потратить хоть цент.
1 оркестратор · 2 специалиста · 9 инструментов · 1 запись с подтверждением человека
Операционные команды живут в разрыве. Ответ на вопрос «почему заказ этого клиента не прибыл, и должны ли мы ему деньги?» находится в двух местах одновременно: в базе данных заказов и в документе с политиками, который никто не читал с момента онбординга. Закрытие этого разрыва вручную — это большая часть того, чем занимается агент поддержки весь день.
Relay закрывает его — и показывает свою работу, пока это делает.

Что отличает это от чат-бота
Он читает ваши системы, а не интернет. Девять инструментов запрашивают живую базу данных PostgreSQL. Модели запрещено утверждать любой факт, который не получен из результата инструмента, и каждый вызов виден на экране с его реальной задержкой.
Он отображает продукт, а не прозу. Спросите, что опаздывает, и вы получите таблицу с бейджами статуса и днями задержки. Попросите обзор — и вы получите дашборд. Модель выбирает инструмент; фронтенд управляет тем, как выглядит результат, поэтому вывод всегда хорошо оформлен, независимо от того, что делает модель.
Он ссылается на ваши политики. Загрузите PDF — он будет разбит на фрагменты, встроен и доступен для поиска за секунды. Поиск гибридный — векторное сходство для смысла, полнотекстовый поиск Postgres для точных терминов, таких как SKU, — объединённый с помощью reciprocal rank. Эмбеддинги вычисляются в процессе, поэтому содержимое документов никогда не покидает ваш сервер.
Он не может потратить ваши деньги. Ровно один инструмент выполняет запись. Он находится на оркестраторе, за шлюзом одобрения человека, ограничен суммой заказа и идемпотентен. Ни один специалист не может переводить деньги, и никакое делегирование не может обойти шлюз. Это свойство топологии, а не настройка.
Он подключается к тому, что вы уже используете. Relay также является MCP-сервером. Укажите Claude Desktop, Cursor или другого агента на /api/mcp, и его инструменты чтения станут доступны там — те же инструменты, с теми же данными. Инструмент записи намеренно не раскрывается: шлюз одобрения живёт в интерфейсе Relay, поэтому федерация записи передала бы внешнему клиенту способ обойти его.
Вы можете видеть, как он подключён, в реальном времени. Представление архитектуры — это не диаграмма — узлы загораются вдоль пути, который фактически прошёл запрос, при этом каждый специалист перечисляет вызванные им инструменты и сколько времени они заняли.

Related MCP server: postgres-mcp-query-tool
Агенты
Агент | Владеет | Инструменты |
Relay (оркестратор) | Маршрутизирует запрос, синтезирует ответ, владеет путём записи | 2 делегирования + 1 запись |
Специалист по операциям | Заказы, отгрузки, клиенты, тикеты, операционный обзор | 7 чтений |
Специалист по знаниям | Библиотека документов, через гибридный поиск | 1 чтение |
Делегирование не для скорости — оно стоит задержки. Оно обеспечивает надёжный выбор инструментов (шесть связанных инструментов лучше, чем четырнадцать несвязанных), чистый контекст для каждого специалиста и структурно изолированный путь записи.
Инструменты
Инструмент | Эффект | Что делает |
| чтение | Заказы, просроченные по ожидаемой дате доставки и не доставленные |
| чтение | Заказы по статусу, клиенту или давности |
| чтение | Один заказ полностью: товары, отгрузка, тикеты, возвраты |
| чтение | Где находится отгрузка, опаздывает ли она и на сколько дней |
| чтение | Тикеты поддержки по статусу, приоритету или категории |
| чтение | Один клиент с историей заказов и тикетов |
| чтение | Количество по статусам, задержки по перевозчикам, 14-дневный тренд объёма |
| чтение | Гибридный поиск по загруженным документам |
| запись | Выпускает возврат. Требуется одобрение человека. Ограничен и идемпотентен. |
Как работает поиск

Приём, один раз на документ: загрузка → извлечение → разбиение на фрагменты (~1000 символов, 150 перекрытие) → встраивание (многоязычный MiniLM, 384d) → хранение в pgvector.
Запрос, каждый вопрос: встраивание → векторный поиск и полнотекстовый поиск параллельно → объединение по reciprocal rank → топ-5 фрагментов с их источником.
Оба поиска, потому что ни один не достаточен по отдельности. Векторное сходство находит фрагмент, который означает то же самое другими словами, и пропускает точный SKU. Полнотекстовый поиск находит точный токен и пропускает перефразировку. RRF объединяет два рейтинга без калибровки оценок между несопоставимыми системами.
Встраиватель многоязычен намеренно: англоязычная модель оценивает испанский вопрос против английской политики в 0.18, едва выше 0.02, который она даёт несвязанному тексту. Кросс-язычный поиск молча возвращал бы шум. Многоязычная модель оценивает ту же пару в 0.43.
Запуск
Требования: Node 22+, Docker и API-ключ от DeepSeek или 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 devОткройте http://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, chartsПодключение через MCP
// claude_desktop_config.json
{
"mcpServers": {
"relay": { "url": "http://localhost:3000/api/mcp" }
}
}Восемь инструментов чтения становятся доступны: заказы, отгрузки, клиенты, тикеты, операционная сводка и гибридный поиск по документам. issue_refund отсутствует по замыслу — чтения безопасно федерализовать, записи остаются за шлюзом человека.
Развёртывание
Самостоятельное размещение. Автономная сборка Next.js и контейнер PostgreSQL за обратным прокси. Не требуется управляемая платформа и не вводится привязка к вендору.
Безопасность
.env и все .env.*, кроме .env.example, игнорируются git. Этот репозиторий публичный — ни один ключ, токен или строка подключения не должны находиться в отслеживаемом файле.
Демо-набор данных полностью сгенерирован. Harbor & Pine вымышлен; ни один клиент, заказ, адрес или возврат в нём не относится к реальному человеку.
Документация
Документ | Для |
Полное техническое описание | |
Как был построен | |
Испанское издание | |
Тестовые документы с ожидаемыми ответами |
Создано
IKOM — Haziel Zul и Jorge Bustos.
Relay — демонстрационная сборка. Harbor & Pine — вымышленный бренд, и его данные сгенерированы; архитектура, код и цифры реальны и воспроизводимы в демо.
This server cannot be deployed
Maintenance
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Guard AI agents' PostgreSQL/MySQL access via MCP: SQL audit, auth, masking, write approval
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server that gives AI agents direct read-only access to PostgreSQL databases, enabling natural language analytics through tools for schema exploration, querying, trend analysis, and data quality checks.115MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that gives an AI agent scoped, safe access to your Postgres databases with per-connection access control, row caps, timeouts, and defense-in-depth read-only enforcement.-
- AlicenseNot gradedqualityDmaintenanceA read-only natural-language database agent that exposes PostgreSQL schema-discovery and SELECT tools via MCP, enabling users to query databases in plain English.MIT
- FlicenseAqualityBmaintenanceAn MCP server that enables AI agents to securely interact with PostgreSQL databases with least-privilege scopes, PII masking, and human approval for writes.4-