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

A
Calidad de la descripción
100%
Integridad del esquema
71%
Calidad de los nombres
90%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,078Tokens (definiciones de herramientas)
~1.3 KBTamaño de respuesta típico
Impacto moderado en la atención (0.84% del contexto de 128k)

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-http

Qué puede hacer

Inventario de herramientas

Herramientas (6)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada6 herramientas