KARTA — spend control for AI agents
Task envelope, budget ledger, kill switch and signed receipts for agents that pay.
¿Debería usar esto?
Calidad y seguridad
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": {
"guard": {
"url": "https://karta.rta.lat/mcp"
}
}
}Puntos de conexión remotos
https://karta.rta.lat/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (6)
🟢check_spend(envelope, amount, payee, calls_so_far, spent_so_far, ...)
Check whether a proposed agent spend is inside a task envelope. Returns verdict, rule, reason, counterfactual and next. No state is stored.
Esquema de entrada
{
"type": "object",
"properties": {
"envelope": {
"additionalProperties": true,
"title": "Envelope",
"type": "object"
},
"amount": {
"title": "Amount",
"type": "string"
},
"payee": {
"title": "Payee",
"type": "string"
},
"calls_so_far": {
"default": 0,
"title": "Calls So Far",
"type": "integer"
},
"spent_so_far": {
"default": "0",
"title": "Spent So Far",
"type": "string"
},
"is_subscription": {
"default": false,
"title": "Is Subscription",
"type": "boolean"
}
},
"required": [
"envelope",
"amount",
"payee"
],
"title": "check_spendArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "check_spendOutput"
}🟡open_envelope(budget_total, per_call_max, calls_max, allowlist, allow_subscriptions, ...)
Create a signed budget envelope for one task: total budget, per-call cap, call count, allowlisted payees, subscription rule, expiry. Stores it in this server's local ledger (no funds move, no keys). Returns the envelope id. Capped at 30 envelopes/hour per server.
Esquema de entrada
{
"type": "object",
"properties": {
"budget_total": {
"title": "Budget Total",
"type": "string"
},
"per_call_max": {
"title": "Per Call Max",
"type": "string"
},
"calls_max": {
"title": "Calls Max",
"type": "integer"
},
"allowlist": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Allowlist"
},
"allow_subscriptions": {
"default": false,
"title": "Allow Subscriptions",
"type": "boolean"
},
"allow_new_payee": {
"default": false,
"title": "Allow New Payee",
"type": "boolean"
},
"approval_threshold": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Approval Threshold"
},
"ttl_hours": {
"default": 24,
"title": "Ttl Hours",
"type": "integer"
}
},
"required": [
"budget_total",
"per_call_max",
"calls_max"
],
"title": "open_envelopeArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "open_envelopeOutput"
}🟢get_envelope(envelope_id)
Return an envelope's state: budget, per-call cap, calls used, spent, remaining, allowlist and expiry. Read-only.
Esquema de entrada
{
"type": "object",
"properties": {
"envelope_id": {
"title": "Envelope Id",
"type": "string"
}
},
"required": [
"envelope_id"
],
"title": "get_envelopeArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_envelopeOutput"
}🔴kill_envelope(envelope_id, reason)
Stop one task envelope immediately: no further spend is approved for it, the reason is recorded with a timestamp. Idempotent — the first reason wins.
Esquema de entrada
{
"type": "object",
"properties": {
"envelope_id": {
"title": "Envelope Id",
"type": "string"
},
"reason": {
"default": "owner stop",
"title": "Reason",
"type": "string"
}
},
"required": [
"envelope_id"
],
"title": "kill_envelopeArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "kill_envelopeOutput"
}🟢envelope_evidence(envelope_id)
Return an evidence bundle for one envelope: state, every recorded spend, the stop record and a sha256 of the whole pack that anyone can recompute. Read-only.
Esquema de entrada
{
"type": "object",
"properties": {
"envelope_id": {
"title": "Envelope Id",
"type": "string"
}
},
"required": [
"envelope_id"
],
"title": "envelope_evidenceArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "envelope_evidenceOutput"
}🟢policy_rules
List the deterministic rules a spend is checked against (E01-E08) with the order they are applied and the meaning of each. Read-only, no state.
Esquema de entrada
{
"type": "object",
"properties": {},
"title": "policy_rulesArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "policy_rulesOutput"
}Comunidad
Evidencia