Skip to main content
Glama
Snozu

Relay MCP Server

by Snozu

Relay

一个AI运营代理,从您自己的数据中回答问题,引用您自己的政策,并在花一分钱之前停下来等待人类批准。

Next.js AI SDK PostgreSQL TypeScript 自托管

1个编排器 · 2个专家 · 9个工具 · 1个人类批准的写操作


运营团队通常处于一个缺口之中。对于“为什么这个客户的订单还没到,我们是否欠他们钱?”这个问题的答案,同时存在于两个地方:订单数据库和一份自入职以来没人读过的政策文档。手动填补这个缺口是客服人员一天中的大部分工作。

Relay填补了这个缺口——并且在执行时展示其工作过程。

Relay控制台在请求处理中


这与聊天机器人有何不同

它读取的是您的系统,而不是互联网。 九个工具查询实时PostgreSQL数据库。模型被禁止陈述任何并非来自工具结果的事实,并且每次调用都在屏幕上可见,并显示真实延迟。

它呈现产品,而非文字。 询问哪些订单延迟了,您会得到一个包含状态徽章和延迟天数的表格。询问概览,您会得到一个仪表板。模型选择工具;前端负责结果的外观,因此无论模型做什么,输出始终格式良好。

它引用您的政策。 上传PDF后,它会在几秒钟内被分块、嵌入并变为可搜索。检索是混合的——向量相似度用于语义,PostgreSQL全文搜索用于精确术语(如SKU)——通过倒数排名融合。嵌入是进程内计算的,因此文档内容永远不会离开您的服务器。

它无法花费您的钱。 只有一个工具可以写入。它位于编排器上,位于人类审批门之后,上限为订单总额,并且是幂等的。没有专家可以移动资金,再多的委托也无法绕过这个门。这是拓扑结构的一个属性,而不是一个设置。

它可以接入您已经使用的工具。 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,384维) → 存储到pgvector。

查询,每个问题:嵌入 → 向量搜索 全文搜索并行 → 通过倒数排名融合 → 返回前5个段落及其来源。

两种搜索并行,因为单独一种都不够。向量相似度可以找到含义相同但用词不同的段落,但会错过精确的SKU。全文搜索找到精确的标记,但错过同义改写。RRF融合两种排名,无需在不可比较的系统之间校准分数。

嵌入器特意采用了多语言:一个仅英文的模型将西班牙语问题与英文政策进行评分时得分0.18,仅略高于不相关文本的0.02。跨语言检索会悄无声息地返回噪声。而多语言模型对同一对的评分为0.43。


运行

要求: Node 22+、Docker,以及来自DeepSeekAnthropic的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 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)都被gitignore忽略。此仓库是公开的——任何密钥、令牌或连接字符串都不应出现在被跟踪的文件中。

演示数据集是完全生成的。Harbor & Pine是虚构的;其中的任何客户、订单、地址或退款都不指向真实人物。


文档

文档

面向对象

案例研究 (英文)

完整的技术文档

MCP暴露 · (西班牙语)

/api/mcp如何构建、暴露什么以及不暴露什么

案例研究 (西班牙语)

西班牙语版本

示例上传

带有预期答案的测试文档

由以下团队构建

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