mcpField
R
Rein

Rein

本地服务
reinconsole.com金融数据0今天更新

关于 Rein

Rein 是一个 MCP 服务,在抓取付费内容前,按支出策略检查 AI Agent 的 x402 付款。它面向需要管控付款、查看收据和追踪状态,同时不授予服务端策略管理权限的 Agent 运营者。

主要功能

  1. 01按策略检查 x402 抓取
  2. 02付款收据与结算状态
  3. 03Agent 策略和支出状态
  4. 04查看待人工处理的升级项
  5. 05用于失联监控的心跳

适用场景

  1. 01限制 Agent 对付费网址的支出
  2. 02检查付款决策和结算情况
  3. 03追踪等待人工批准的付款

MCP 相关

向 MCP 客户端提供抓取、状态、收据、升级项和心跳工具。只有抓取工具能转移资金;服务刻意不提供批准或策略管理功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bugiiiii11-rein": {
"command": "npx",
"args": [
"-y",
"@reinconsole/mcp"
],
"env": {
"REIN_AGENT_FILE": "<REIN_AGENT_FILE>",
"REIN_ENGINE_URL": "<REIN_ENGINE_URL>",
"REIN_AGENT_ID": "<REIN_AGENT_ID>",
"REIN_ENGINE_API_KEY": "<REIN_ENGINE_API_KEY>",
"REIN_PAYER_PRIVATE_KEY": "<REIN_PAYER_PRIVATE_KEY>",
"REIN_NETWORK_PROFILE": "<REIN_NETWORK_PROFILE>"
}
}
}
}
启动命令npx -y @reinconsole/mcp
需要配置的环境变量
REIN_AGENT_FILEPath to the rein-agent.json written by `npx @reinconsole/init` (engine URL, agent id, API key, wallet).
REIN_ENGINE_URLPolicy engine base URL. Required unless REIN_AGENT_FILE is set.
REIN_AGENT_IDThe one agent this server speaks for. Required unless REIN_AGENT_FILE is set.
REIN_ENGINE_API_KEY密钥Bearer key for the engine, ideally an evaluate key narrowed to this agent.
REIN_PAYER_PRIVATE_KEY密钥Agent wallet key. Omit for advisory mode: policy is checked, nothing is paid.
REIN_NETWORK_PROFILEtestnet (default) or mainnet: which network's 402s this server will pay.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reinconsole/mcp0.8.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@reinconsole/mcp

Rein 守卫,以 MCP 服务的形式运行。让任何支持 MCP 的执行环境连接到它,Agent 就能进行受支出策略管控的抓取:每个 x402 付费墙都会在资金支出前经过策略检查、记录收据并确保可观测。

Rein 是非托管式的。它管控 Agent 的支出权限,而非资金本身。

安装

最快的入门方式是使用免费的测试网沙盒——无需账户,也无需注册:

npx @reinconsole/init

它会在托管引擎上创建一个带有初始策略的 Agent(Base Sepolia,每次调用上限为 $0.004)、一个含少量测试 USDC 的测试钱包和 rein-agent.json,然后打印填入文件路径的以下配置:

{
  "mcpServers": {
    "rein": {
      "command": "npx",
      "args": ["-y", "@reinconsole/mcp"],
      "env": { "REIN_AGENT_FILE": "/path/to/rein-agent.json" }
    }
  }
}

该文件提供引擎 URL、Agent ID、API 密钥和钱包,因此密钥不会出现在命令行或配置文件中。沙盒有效期为 7 天;运行 npx @reinconsole/init --claim 并使用 GitHub 或 Ethereum 钱包登录,即可保留沙盒。

使用你自己的引擎

使用变量而非文件,将其指向任意策略引擎:

{
  "mcpServers": {
    "rein": {
      "command": "npx",
      "args": ["-y", "@reinconsole/mcp"],
      "env": {
        "REIN_ENGINE_URL": "http://127.0.0.1:8787",
        "REIN_AGENT_ID": "agt_01J..."
      }
    }
  }
}

这是建议模式:付费墙会根据策略进行评估并报告,但不会实际付款。添加 REIN_PAYER_PRIVATE_KEY 即可结算获准的付款。

npx -p @reinconsole/policy-engine rein-policy-engine 会在本地 127.0.0.1:8787 上运行引擎;有关注册 Agent 和编写策略的信息,请参阅 @reinconsole/policy-engine。

服务启动后,会向 stderr 打印且仅打印一行内容。执行环境不会显示其他内容,因此如果缺少此行,说明服务未在运行,前面的任何输出都是原因:

[rein-mcp] 0.2.0 ready on stdio for agt_01J... via http://127.0.0.1:8787 (advisory -- no payer configured)

环境

变量必填含义
REIN_AGENT_FILE否npx @reinconsole/init 写入的 rein-agent.json 的路径。提供以下四个值;显式设置的任何变量都会覆盖对应字段。
REIN_ENGINE_URL是,除非已在文件中设置策略引擎的基础 URL。
REIN_AGENT_ID是,除非已在文件中设置此服务代表的唯一 Agent。绝不是工具参数。
REIN_ENGINE_API_KEY如果引擎启用了身份验证则需要引擎的 Bearer 密钥。
REIN_PAYER_PRIVATE_KEY否Agent 钱包密钥。省略则进入建议模式:检查策略,但不付款。
REIN_NETWORK_PROFILE否testnet(默认)或 mainnet。此服务将为哪个网络的 402 付款;另一个网络会在生成签名之前被拒绝。未知值会导致启动失败。
REIN_MCP_TASK_ID否默认任务归属信息,以便每任务预算可以限制此 Agent 的工作。
REIN_MCP_ESCALATION_WAIT_MS否等待签名批准时,让工具调用保持未完成的时长。默认值为 0。
REIN_MCP_MAX_BODY_BYTES否返回给模型的响应正文大小上限。默认值为 65536。

所有配置在启动时固定。工具调用无法访问此处的任何内容。

之所以需要 REIN_NETWORK_PROFILE,是因为引擎无法划定这条界线:它会将 Base 和 Base Sepolia 映射到同一条链,因此允许其中一个的策略也会允许另一个,而供应商的 402 原本会 决定 Agent 的密钥在哪个网络上支出。默认值为 testnet,这意味着在 0.1.x 版本中支付了 mainnet 402 的安装,在明确将配置文件设为 mainnet 之前都会拒绝此类付款。

对于托管引擎,REIN_ENGINE_API_KEY 应为使用组织颁发、且权限范围缩小到此 Agent 的 evaluate 密钥:

POST /v1/keys
{ "name": "claude-desktop", "scopes": ["evaluate"], "orgId": "org_01J...", "agentIds": ["agt_01J..."] }

这就是桌面配置文件中该密钥的全部影响范围:它只能为此 Agent 提交意图,不能做其他任何事——不能操作同一组织中的其他 Agent,不能操作策略或密钥,也不能操作其他租户的任何内容。对于可自托管的单租户引擎,省略这两个字段即可,密钥的行为与以往完全相同。

工具

工具只读用途
rein_fetch否获取 URL,仅在策略允许时付款。
rein_status是此 Agent 受哪些规则约束,以及它遵守这些规则的情况。
rein_receipts是它支付了哪些款项,以及这些款项是否已结算。
rein_escalations是它有哪些付款正暂停等待人工处理。
rein_heartbeat否报告 Agent 正常运行,以便进行失联监控。

rein_fetch 是唯一可以转移资金的工具,也是唯一不带 readOnlyHint 的工具。

权限边界

管道另一端的客户端就是 Agent——也就是受管控的对象。因此,工具可以执行 Agent 原本就能通过自己的 fetch 执行的任何操作,但不能扩大 Agent 自身的权限。

特意没有提供用于批准权限升级、编辑策略、冻结或解冻 Agent、创建 API 密钥或注册审批人的工具。在 Rein 中,审批是由已注册的审批人密钥对决策进行的 ed25519 签名;工具调用不是签名,而若工具调用可以代替签名,就会让持有管道的任何进程都拥有转移资金的权限。rein_escalations 从设计上就是只读的,而且测试会检查整个工具集,而非其中的示例,因此新增权限工具必须先导致测试失败。

一个服务也只代表一个 Agent。若允许调用方选择 Agent ID,就会把面向单个 Agent 的工具集变成跨 Agent 管理 API。

被拦截的付款是什么样的

策略拒绝会作为工具错误返回——fetch 并未执行;如果模型把它当作普通结果,就会把拒绝原因误当成它请求的数据。返回内容会附带详细信息,因为下一步该怎么做取决于具体的拒绝类型:

  • DENIED——最终拒绝。相同请求会以相同方式被拒绝。
  • ESCALATED——已搁置,等待人工签署。轮询 rein_escalations,或继续处理其他事项。Agent 无法通过任何调用批准它。
  • ALLOWED_BUT_UNPAID——不是错误:策略已同意,但此服务运行在建议模式下,因此会返回未付款的 402。

编程式用法

import { createReinMcpServer } from '@reinconsole/mcp';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

const server = createReinMcpServer({ engineUrl, agentId, payer });
await server.connect(new StdioServerTransport());

createToolContext 和 reinTools 也已导出,可用于在承载其他工具的服务中嵌入相同的工具。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。