Jsonaut について
Jsonautは、Agent向けに不正なJSONを修復し、JSON Schemaで検証するMCPサーバーです。決定的な修復に加え、任意の有料LLMフォールバックを備え、変更内容も返します。
主な機能
- 01よくあるJSON構文エラーの修復
- 02JSON Schemaによる検証
- 03値の型変換とデフォルト値の適用
- 04監査用の変更内容表示
- 05任意の有料LLMフォールバック
活用シーン
- 01Agentのツール呼び出し出力を修復
- 02データのスキーマ検証と型変換
- 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 エージェントを利用者として想定した、JSON の修復と検証ツールです。形式が不正な可能性のある JSON(LLM のツール呼び出し出力、別のエージェントのメッセージ、不安定な上流サービスからのデータ)を送ると、解析済みでスキーマに準拠した JSON が返されます。
- 無料プラン: 決定論的な修復 — 末尾のカンマ、シングルクォート、途中で切れたデータ、Markdown のコードフェンス、コメント、Python リテラルに対応 — に加え、型変換を伴う JSON Schema 検証(文字列→数値、デフォルト値の設定、幻覚によるフィールドの削除)も利用できます。IP ごとにレート制限があります。
- 有料プラン: 決定論的な修復で修正できない入力を、LLM にフォールバックして修復します。1 回あたり 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 | 修復と、任意のスキーマ検証/型変換を行います。本文:{input, schema?, allow_llm_fallback?} |
POST /v1/validate | 修復せずに検証のみを行います。本文:{input, schema} |
POST /mcp | MCP サーバー(Streamable HTTP、ステートレス)。ツール:repair_json、validate_json |
GET / | インタラクティブなデモページ |
GET /llms.txt | エージェントが読み取れる機能と料金の説明 |
GET /openapi.yaml | OpenAPI 3.1 仕様 |
レスポンスの method の値は、direct(すでに有効)、deterministic-repair(無料の修復)、llm-repair(有料の修復)、failed(失敗)です。changes[] にはすべての変更が記載され、呼び出し元がデータに対して行われた処理を監査できます。
エージェントからの利用(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 キーは不要です。エージェントは呼び出しごとに支払います。
支払いの流れ(x402)
- エージェントが
/v1/repairをallow_llm_fallback: trueにして呼び出します。決定論的な修復は失敗します。 - サーバーは x402 の
accepts配列を含む402を返します(Base 上の USDC、金額はPRICE_USD)。 - エージェントは支払いを行い、
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 ごとの無料呼び出し数(1 日あたり、デフォルトは 100) | — |
PRICE_USD | 有料プランの料金(デフォルトは 0.01) | — |
DEV_ALLOW_FREE_LLM | true にすると、ローカル開発時に限り有料プランを利用できます | — |
ローカル開発用のシークレットは、.dev.vars ファイル(Git で追跡されません)か、シェルの環境変数に設定してください。
デプロイ(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)
- スキーマの型変換は、
$refやoneOf/anyOfの分岐を解決しません。 - x402 の検証には外部ファシリテーター(
FACILITATOR_URL)が必要です。オンチェーン検証は組み込まれていません。 - 無料プランのレート制限は、高い同時実行時には概算になります(KV の読み取り・変更・書き込み)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。