Xynthera AI — JSON invoice, OpenAPI and event checks
Signed deterministic checks for supplied JSON invoices, OpenAPI API contracts and JSON events.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- HIGH
- MEDIUMen get_budget_status
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"xynthera-ai-prepaid": {
"url": "https://pfxxzsnboehxsefyajml.supabase.co/functions/v1/xynthera-ai-payg-mcp/mcp"
}
}
}Puntos de conexión remotos
https://pfxxzsnboehxsefyajml.supabase.co/functions/v1/xynthera-ai-payg-mcp/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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
}
]
}Comunidad
Evidencia