Skip to main content
Glama
Snozu

Relay MCP Server

by Snozu

Relay

ИИ-агент для операций, который отвечает на основе ваших данных, ссылается на ваши собственные политики и останавливается для человека, прежде чем потратить хоть цент.

Next.js AI SDK PostgreSQL TypeScript Self-hosted

1 оркестратор · 2 специалиста · 9 инструментов · 1 запись с подтверждением человека


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

Relay закрывает его — и показывает свою работу, пока это делает.

Консоль 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 чтение

Делегирование не для скорости — оно стоит задержки. Оно обеспечивает надёжный выбор инструментов (шесть связанных инструментов лучше, чем четырнадцать несвязанных), чистый контекст для каждого специалиста и структурно изолированный путь записи.

Инструменты

Инструмент

Эффект

Что делает

find_delayed_orders

чтение

Заказы, просроченные по ожидаемой дате доставки и не доставленные

search_orders

чтение

Заказы по статусу, клиенту или давности

get_order

чтение

Один заказ полностью: товары, отгрузка, тикеты, возвраты

track_shipment

чтение

Где находится отгрузка, опаздывает ли она и на сколько дней

search_tickets

чтение

Тикеты поддержки по статусу, приоритету или категории

get_customer

чтение

Один клиент с историей заказов и тикетов

get_operations_summary

чтение

Количество по статусам, задержки по перевозчикам, 14-дневный тренд объёма

search_knowledge

чтение

Гибридный поиск по загруженным документам

issue_refund

запись

Выпускает возврат. Требуется одобрение человека. Ограничен и идемпотентен.


Как работает поиск

Конвейер поиска

Приём, один раз на документ: загрузка → извлечение → разбиение на фрагменты (~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-ключ, который хранится только в вашем браузере, отправляется как заголовок запроса, передаётся этому провайдеру и отбрасывается. Он никогда не записывается в базу данных, никогда не логируется и никогда не появляется в журнале аудита.

Команда

Что делает

npm run db:up / db:down

Запустить / остановить PostgreSQL

npm run db:reset

Стереть и заново заполнить всё

npm run db:seed:docs

Сбросить только библиотеку документов

npm run docs:pdf

Пересобрать 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 вымышлен; ни один клиент, заказ, адрес или возврат в нём не относится к реальному человеку.


Документация

Документ

Для

Кейс (EN)

Полное техническое описание

Экспозиция MCP · (ES)

Как был построен /api/mcp, что он раскрывает и что нет

Кейс (ES)

Испанское издание

Примеры загрузок

Тестовые документы с ожидаемыми ответами

Создано

IKOM — Haziel Zul и Jorge Bustos.

Relay — демонстрационная сборка. Harbor & Pine — вымышленный бренд, и его данные сгенерированы; архитектура, код и цифры реальны и воспроизводимы в демо.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    An 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.
    11
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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
  • F
    license
    A
    quality
    B
    maintenance
    An MCP server that enables AI agents to securely interact with PostgreSQL databases with least-privilege scopes, PII masking, and human approval for writes.
    4
    -