Xynthera AI — JSON invoice, OpenAPI and event checks
Signed deterministic checks for supplied JSON invoices, OpenAPI API contracts and JSON events.
使うべきか
品質と安全性
検出事項(2)
- HIGH
- MEDIUMget_budget_status 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"xynthera-ai-prepaid": {
"url": "https://pfxxzsnboehxsefyajml.supabase.co/functions/v1/xynthera-ai-payg-mcp/mcp"
}
}
}リモートエンドポイント
https://pfxxzsnboehxsefyajml.supabase.co/functions/v1/xynthera-ai-payg-mcp/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢get_budget_status
Read authenticated prepaid balance and state; free, with no debit. Before funding, the buyer manually purchases a budget at https://xynthera-ai.toasty-seal-8877.chatgpt.site/payg.html. Requires a private budget code in Authorization: Bearer; no OAuth. The initial purchase amount is the hard server-side total spending limit. No automatic recharge.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}⚪reconcile_invoice(request_id, invoice, purchase_order, receipts, payments, ...)
Paid EUR 0.005 excluding tax per new, successful signed invoice consistency check. Supply the entire documented JSON input and a stable unique request_id. Analysis of supplied data only, no bank validation. Exact same-body retries avoid a second debit; report reconstruction lasts 30 days, so retain reports.
入力スキーマ
{
"type": "object",
"properties": {
"request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._:-]{1,128}$"
},
"invoice": {
"type": "object"
},
"purchase_order": {
"type": "object"
},
"receipts": {
"type": "array"
},
"payments": {
"type": "array"
},
"history": {
"type": "array"
},
"supplier_profile": {
"type": "object"
}
},
"required": [
"request_id",
"invoice"
],
"additionalProperties": true
}🟡check_contract(request_id, document, offer, published_offer, observations)
Paid EUR 0.010 excluding tax per new signed consistency report for a supplied OpenAPI JSON API contract only, with optional supplied offer/observation comparisons. No legal contract analysis, runtime endpoint testing, security audit or full OpenAPI standard certification. Identical request_id and body avoid a second debit. Report reconstruction is available for 30 days; save the original report. After that the request may be refused, never automatically retried with a new ID.
入力スキーマ
{
"type": "object",
"properties": {
"request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._:-]{1,128}$"
},
"document": {
"type": "object"
},
"offer": {
"type": "object"
},
"published_offer": {
"type": "object"
},
"observations": {
"type": "array"
}
},
"required": [
"request_id",
"document"
],
"additionalProperties": false
}🟢check_events(request_id, events, require_contiguous, same_clock)
Paid EUR 0.002 excluding tax per signed event batch of up to 200 supplied events, no actual delivery attestation. Identical request_id and body avoid a second debit. Report reconstruction lasts 30 days; retain the returned report. No automatic retries.
入力スキーマ
{
"type": "object",
"properties": {
"request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._:-]{1,128}$"
},
"events": {
"type": "array",
"minItems": 1,
"maxItems": 200
},
"require_contiguous": {
"type": "boolean"
},
"same_clock": {
"type": "boolean"
}
},
"required": [
"request_id",
"events"
],
"additionalProperties": false
}⚪effect_guard
Guard one logical external effect. The prepare operation costs 390 micro-EUR excluding tax only when a new logical decision is successfully created; exact prepare replays and get/claim/settle/reconcile/cancel are free. This service grants one opaque execution authority but never performs the external action. Before settle, register the tenant-scoped ES256 outcome verifier described by the hosted OpenAPI. Reuse the same logical_identity and exact body after an unknown transport outcome; changed content conflicts. Keep claim capabilities private and never retry with a new identity merely because a response was lost.
入力スキーマ
{
"type": "object",
"oneOf": [
{
"required": [
"operation",
"body"
],
"properties": {
"operation": {
"const": "prepare"
},
"body": {
"type": "object",
"required": [
"logical_identity",
"agent_id",
"tool_id",
"destination",
"effect_kind",
"action"
],
"properties": {
"logical_identity": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"agent_id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"tool_id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"destination": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"effect_kind": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"action": {
"type": "object"
},
"cost": {
"type": "object",
"required": [
"amount_atomic",
"scale",
"currency"
],
"properties": {
"amount_atomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,77})$"
},
"scale": {
"type": "integer",
"minimum": 0,
"maximum": 18
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3,12}$"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"intent_id"
],
"properties": {
"operation": {
"const": "get"
},
"intent_id": {
"type": "string",
"pattern": "^egi_[a-f0-9]{24}$"
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"intent_id"
],
"properties": {
"operation": {
"const": "claim"
},
"intent_id": {
"type": "string",
"pattern": "^egi_[a-f0-9]{24}$"
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"intent_id"
],
"properties": {
"operation": {
"const": "reconcile"
},
"intent_id": {
"type": "string",
"pattern": "^egi_[a-f0-9]{24}$"
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"intent_id"
],
"properties": {
"operation": {
"const": "cancel"
},
"intent_id": {
"type": "string",
"pattern": "^egi_[a-f0-9]{24}$"
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"intent_id",
"body"
],
"properties": {
"operation": {
"const": "settle"
},
"intent_id": {
"type": "string",
"pattern": "^egi_[a-f0-9]{24}$"
},
"body": {
"type": "object",
"required": [
"capability",
"evidence"
],
"properties": {
"capability": {
"type": "string",
"pattern": "^egc_[A-Za-z0-9_-]{43}$"
},
"evidence": {
"type": "object",
"additionalProperties": false,
"required": [
"attestation_jws"
],
"properties": {
"attestation_jws": {
"type": "string",
"minLength": 80,
"maxLength": 130974,
"description": "Compact ES256 JWS within the 131072-byte nested REST settle body. Protected header typ must be application/xynthera-effect-outcome+jws and kid must identify a registered verifier key. Payload profile must be xynthera-effect-outcome-v1; status is settled, refused or ambiguous; exact fields are profile, tenant_id, intent_id, claim_id, logical_key, action_sha256, provider_idempotency_key, status, observed_at, effect_reference and reason_code."
}
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}🟡spend_truth
Create/read a resource budget and reserve or reconcile an agent action against it. A successful new reserve costs 290 micro-EUR excluding tax; exact reserve replays and create_budget/get_budget/get_reservation/begin/settle/release/mark_unknown/reconcile are free. Reservation is the only billable operation and performs no provider action. Each budget accepts at most 128 reservations; a 129th new logical reservation is rejected before billing. Before settle, register the tenant-scoped ES256 outcome verifier described by the hosted OpenAPI. Reuse logical_identity and the exact body after an unknown outcome; keep capabilities private and use the stable provider idempotency key returned by begin.
入力スキーマ
{
"type": "object",
"oneOf": [
{
"required": [
"operation",
"body"
],
"properties": {
"operation": {
"const": "create_budget"
},
"body": {
"type": "object",
"required": [
"logical_identity",
"limits"
],
"properties": {
"logical_identity": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$"
},
"limits": {
"type": "object",
"required": [
"money",
"tokens_atomic",
"calls_atomic"
],
"properties": {
"money": {
"type": "object",
"required": [
"amount_atomic",
"scale",
"currency"
],
"properties": {
"amount_atomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,77})$"
},
"scale": {
"type": "integer",
"minimum": 0,
"maximum": 18
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3,12}$"
}
},
"additionalProperties": false
},
"tokens_atomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,77})$"
},
"calls_atomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,77})$"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"budget_id"
],
"properties": {
"operation": {
"const": "get_budget"
},
"budget_id": {
"type": "string",
"pattern": "^stb_[a-f0-9]{24}$"
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"budget_id",
"body"
],
"properties": {
"operation": {
"const": "reserve"
},
"budget_id": {
"type": "string",
"pattern": "^stb_[a-f0-9]{24}$"
},
"body": {
"type": "object",
"required": [
"logical_identity",
"agent_id",
"provider",
"operation",
"maximum"
],
"properties": {
"logical_identity": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$"
},
"agent_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$"
},
"provider": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$"
},
"operation": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"maximum": {
"type": "object",
"required": [
"money",
"tokens_atomic",
"calls_atomic"
],
"properties": {
"money": {
"type": "object",
"required": [
"amount_atomic",
"scale",
"currency"
],
"properties": {
"amount_atomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,77})$"
},
"scale": {
"type": "integer",
"minimum": 0,
"maximum": 18
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3,12}$"
}
},
"additionalProperties": false
},
"tokens_atomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,77})$"
},
"calls_atomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,77})$"
}
},
"additionalProperties": false
},
"capability_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"budget_id",
"reservation_id"
],
"properties": {
"operation": {
"enum": [
"get_reservation",
"reconcile"
]
},
"budget_id": {
"type": "string",
"pattern": "^stb_[a-f0-9]{24}$"
},
"reservation_id": {
"type": "string",
"pattern": "^str_[a-f0-9]{24}$"
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"budget_id",
"reservation_id",
"body"
],
"properties": {
"operation": {
"enum": [
"begin",
"release"
]
},
"budget_id": {
"type": "string",
"pattern": "^stb_[a-f0-9]{24}$"
},
"reservation_id": {
"type": "string",
"pattern": "^str_[a-f0-9]{24}$"
},
"body": {
"type": "object",
"required": [
"capability"
],
"properties": {
"capability": {
"type": "string",
"pattern": "^stc_[A-Za-z0-9_-]{43}$"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"budget_id",
"reservation_id",
"body"
],
"properties": {
"operation": {
"const": "settle"
},
"budget_id": {
"type": "string",
"pattern": "^stb_[a-f0-9]{24}$"
},
"reservation_id": {
"type": "string",
"pattern": "^str_[a-f0-9]{24}$"
},
"body": {
"type": "object",
"required": [
"capability",
"evidence"
],
"properties": {
"capability": {
"type": "string",
"pattern": "^stc_[A-Za-z0-9_-]{43}$"
},
"evidence": {
"type": "object",
"additionalProperties": false,
"required": [
"attestation_jws"
],
"properties": {
"attestation_jws": {
"type": "string",
"minLength": 80,
"maxLength": 130974,
"description": "Compact ES256 JWS within the 131072-byte nested REST settle body. Protected header typ must be application/xynthera-spend-outcome+jws and kid must identify a registered verifier key. Payload profile must be xynthera-spend-outcome-v1; status is settled, refused or ambiguous; exact fields are profile, tenant_id, budget_id, reservation_id, logical_key, reservation_sha256, provider_idempotency_key, status, actual, observed_at, provider_reference and reason_code."
}
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"required": [
"operation",
"budget_id",
"reservation_id",
"body"
],
"properties": {
"operation": {
"const": "mark_unknown"
},
"budget_id": {
"type": "string",
"pattern": "^stb_[a-f0-9]{24}$"
},
"reservation_id": {
"type": "string",
"pattern": "^str_[a-f0-9]{24}$"
},
"body": {
"type": "object",
"required": [
"capability",
"reason_code"
],
"properties": {
"capability": {
"type": "string",
"pattern": "^stc_[A-Za-z0-9_-]{43}$"
},
"reason_code": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}コミュニティ
エビデンス