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, поэтому федерация записи передала бы внешнему клиенту способ обойти его.

Вы можете видеть, как он подключён, в реальном времени. Представление архитектуры — это не диаграмма — узлы загораются вдоль пути, который фактически прошёл запрос, при этом каждый специалист перечисляет вызванные им инструменты и сколько времени они заняли.

Живое представление архитектуры


Агенты

Агент

Владеет

Инструменты

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 — вымышленный бренд, и его данные сгенерированы; архитектура, код и цифры реальны и воспроизводимы в демо.

-
license - not tested
-
quality - not tested
C
maintenance

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

View all MCP Connectors

Latest Blog Posts

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