关于 Jsonaut
Jsonaut 是面向 Agent 的 MCP 服务,可修复格式错误的 JSON,并按 JSON Schema 验证。它结合确定性修复与可选的付费 LLM 兜底,并列出所做修改。
主要功能
- 01修复常见 JSON 语法错误
- 02按 JSON Schema 验证
- 03转换值类型并应用默认值
- 04列出修改以便审查
- 05可选的付费 LLM 兜底
适用场景
- 01修复 Agent 工具调用输出中的错误 JSON
- 02按 Schema 检查并转换数据
- 03处理确定性修复无法修复的 JSON
MCP 相关
通过无状态 Streamable HTTP MCP 端点提供 `repair_json` 和 `validate_json` 工具。可选的 LLM 兜底支持通过 x402 按次付费。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://jsonaut.jsonaut-shaurya.workers.dev/mcpclaude mcp add --transport http jsonaut https://jsonaut.jsonaut-shaurya.workers.dev/mcp{"mcpServers":{"jsonaut":{"type":"http","url":"https://jsonaut.jsonaut-shaurya.workers.dev/mcp"}}}在 Cursor 中打开{"servers":{"jsonaut":{"type":"http","url":"https://jsonaut.jsonaut-shaurya.workers.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"jsonaut":{"type":"http","url":"https://jsonaut.jsonaut-shaurya.workers.dev/mcp"}}}{"mcpServers":{"jsonaut":{"serverUrl":"https://jsonaut.jsonaut-shaurya.workers.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
4| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 可能格式错误的 JSON 文本 |
| schema | object | 否 | 输出必须符合的可选 JSON Schema |
| allow_llm_fallback | boolean | 否 | 允许使用付费 LLM 修复层 |
详细介绍
Jsonaut
面向 AI Agent 客户构建的 JSON 修复与验证工具。发送可能格式错误的 JSON(LLM 工具调用输出、其他 Agent 的消息、不稳定的上游数据),即可获得已解析且符合 Schema 的 JSON。
- **免费层级:**确定性修复——尾随逗号、单引号、截断内容、Markdown 代码围栏、注释、Python 字面量——以及带类型强制转换的 JSON Schema 验证(字符串→数字、默认值、剥除幻觉字段)。按 IP 限流。
- **付费层级:**对确定性处理无法修复的输入进行 LLM 回退修复。每次调用 $0.01,仅在成功时收费,通过 x402(Base 上的 USDC)自动按次支付——无需账户,无需注册。
业务背景、市场研究和完整的 3 天计划见 IDEA.md 和 PLAN.md。
快速入门
npm install
npm test # 27 tests: repair battery, schema coercion, HTTP API, MCP protocol
npm run dev # http://localhost:8787 — demo page + API + MCP endpoint
试试看:
curl -s -X POST http://localhost:8787/v1/repair \
-H "content-type: application/json" \
-d "{\"input\": \"{'name': 'alice', 'count': '42',}\", \"schema\": {\"type\":\"object\",\"properties\":{\"count\":{\"type\":\"number\"}}}}"
{
"valid": true,
"repaired": { "name": "alice", "count": 42 },
"method": "deterministic-repair",
"changes": ["repaired JSON syntax (jsonrepair)", "$.count: coerced string \"42\" to number"]
}
API
| 路由 | 功能 |
|---|---|
POST /v1/repair | 修复 + 可选的 Schema 验证/强制转换。请求体:{input, schema?, allow_llm_fallback?} |
POST /v1/validate | 仅验证,不修复。请求体:{input, schema} |
POST /mcp | MCP 服务(Streamable HTTP,无状态)。工具:repair_json、validate_json |
GET / | 交互式演示页面 |
GET /llms.txt | 面向 Agent 的能力 + 定价说明 |
GET /openapi.yaml | OpenAPI 3.1 规范 |
响应中的 method 值:direct(原本已有效)、deterministic-repair(免费修复)、llm-repair(付费修复)、failed。changes[] 会列出每一项修改,方便调用方审查对数据所做的处理。
在 Agent 中使用(MCP)
claude mcp add --transport http jsonaut https://YOUR-DEPLOYMENT/mcp
也可以在任何 MCP 客户端配置中使用:
{ "mcpServers": { "jsonaut": { "type": "http", "url": "https://YOUR-DEPLOYMENT/mcp" } } }
对于付费层级,客户端通过 x402 支付,并在重试时携带 X-PAYMENT 标头(支付凭证)。无需账户或 API 密钥——Agent 按次支付。
支付流程(x402)
- Agent 使用
allow_llm_fallback: true调用/v1/repair;确定性修复失败。 - 服务端返回
402,其中包含 x402accepts数组(Base 上的 USDC,金额为PRICE_USD)。 - Agent 付款后携带
X-PAYMENT标头重试;服务端通过协调器验证支付,执行 LLM 修复,并且仅在修复成功时结算。
配置
| 环境变量 | 用途 | 必需场景 |
|---|---|---|
OPENROUTER_API_KEY | 启用付费 LLM 回退层级(通过 OpenRouter;默认使用免费模型) | 付费层级 |
OPENROUTER_MODEL | 指定模型(默认 meta-llama/llama-3.3-70b-instruct:free) | — |
X402_PAY_TO | 接收 USDC 的 Base 钱包地址 | x402 支付通道 |
X402_NETWORK | base 或 base-sepolia(默认 base) | x402 支付通道 |
FACILITATOR_URL | 用于验证/结算的 x402 协调器 | x402 支付通道 |
FREE_DAILY_LIMIT | 每个 IP 每天的免费调用次数(默认 100) | — |
PRICE_USD | 付费层级价格(默认 0.01) | — |
DEV_ALLOW_FREE_LLM | 设为 true 后仅在本地开发时开放付费层级 | — |
本地开发所需的密钥放在 .dev.vars 文件(已加入 git 忽略)或 shell 环境变量中。
部署(Cloudflare Workers)
npx wrangler login
npx wrangler kv namespace create KV # then paste the id into wrangler.toml
npx wrangler secret put OPENROUTER_API_KEY
npx wrangler deploy
同一代码库可在 Node 上用于本地开发(npm run dev),也可在生产环境部署到 Workers——没有 KV 绑定时,存储会回退到内存中。
项目结构
src/core/ pipeline.ts (repair engine) · coerce.ts (schema coercion) · llm.ts (paid tier)
src/http/ app.ts (routes) · payment.ts (x402 rail) · ratelimit.ts · demo.ts · billing.ts (parked, unused)
src/mcp/ server.ts (stateless Streamable HTTP MCP server)
src/worker.ts Cloudflare Workers entry
src/dev.ts Node dev entry
test/ full battery: broken-JSON cases, coercion, HTTP, MCP protocol
已知限制(MVP)
- Schema 强制转换不会解析
$ref或oneOf/anyOf分支。 - x402 验证需要外部协调器(
FACILITATOR_URL);不内置链上验证。 - 高并发情况下,免费层级的限流是近似值(KV 读取-修改-写入)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。