ExitProof
Reversibility intelligence and durable exit evidence for AI agents before real-world commitments.
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"exitproof": {
"url": "https://exitproof.davisvillelabs.com/mcp"
}
}
}Remote endpoints
https://exitproof.davisvillelabs.com/mcpstreamable-httpTool inventory
Tools (5)
🟢check_reversibility(merchant, commitment_type, event_type, amount, currency, ...)
Free. Evaluate transaction-specific checkout terms plus maintained policy evidence before a real-world commitment. Never charges.
Input Schema
{
"type": "object",
"properties": {
"merchant": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"commitment_type": {
"type": "string",
"enum": [
"subscription",
"reservation",
"ticket",
"service",
"software",
"digital_purchase",
"rental",
"deposit",
"other"
]
},
"event_type": {
"type": "string",
"enum": [
"initial",
"renewal",
"purchase",
"reservation",
"deposit",
"other"
],
"default": "initial"
},
"amount": {
"type": "number",
"minimum": 0
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"minLength": 3,
"maxLength": 3,
"default": "USD"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"region": {
"type": "string",
"maxLength": 80
},
"purchase_channel": {
"type": "string",
"enum": [
"direct",
"apple",
"google_play",
"marketplace",
"travel_agency",
"other",
"unknown"
],
"default": "unknown"
},
"expected_commitment_at": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp with explicit timezone."
},
"client_reference": {
"type": "string",
"maxLength": 200,
"description": "Optional caller-owned reference. ExitProof stores only a SHA-256 hash."
},
"checkout_terms": {
"type": "object",
"properties": {
"refundable": {
"type": "boolean"
},
"cancellable": {
"type": "boolean"
},
"free_cancellation_until": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp with explicit timezone."
},
"cancellation_deadline": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp with explicit timezone."
},
"cancellation_penalty_amount": {
"type": "number",
"minimum": 0
},
"cancellation_penalty_percent": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"nonrefundable_amount": {
"type": "number",
"minimum": 0
},
"auto_renews": {
"type": "boolean"
},
"renewal_interval": {
"type": "string",
"maxLength": 80
},
"cancellation_method": {
"type": "string",
"maxLength": 240
},
"charge_timing": {
"type": "string",
"maxLength": 160
},
"source_url": {
"type": "string",
"maxLength": 500
},
"observed_at": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp with explicit timezone."
}
},
"additionalProperties": false
}
},
"required": [
"merchant",
"commitment_type",
"amount"
],
"additionalProperties": false
}🟡create_exit_manifest(merchant, commitment_type, event_type, amount, currency, ...)
Paid $0.25 only after reversibility evidence passes preflight. Stores a privacy-minimized durable record of the exit terms and returns a one-time access token.
Input Schema
{
"type": "object",
"properties": {
"merchant": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"commitment_type": {
"type": "string",
"enum": [
"subscription",
"reservation",
"ticket",
"service",
"software",
"digital_purchase",
"rental",
"deposit",
"other"
]
},
"event_type": {
"type": "string",
"enum": [
"initial",
"renewal",
"purchase",
"reservation",
"deposit",
"other"
],
"default": "initial"
},
"amount": {
"type": "number",
"minimum": 0
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"minLength": 3,
"maxLength": 3,
"default": "USD"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"region": {
"type": "string",
"maxLength": 80
},
"purchase_channel": {
"type": "string",
"enum": [
"direct",
"apple",
"google_play",
"marketplace",
"travel_agency",
"other",
"unknown"
],
"default": "unknown"
},
"expected_commitment_at": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp with explicit timezone."
},
"client_reference": {
"type": "string",
"maxLength": 200,
"description": "Optional caller-owned reference. ExitProof stores only a SHA-256 hash."
},
"checkout_terms": {
"type": "object",
"properties": {
"refundable": {
"type": "boolean"
},
"cancellable": {
"type": "boolean"
},
"free_cancellation_until": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp with explicit timezone."
},
"cancellation_deadline": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp with explicit timezone."
},
"cancellation_penalty_amount": {
"type": "number",
"minimum": 0
},
"cancellation_penalty_percent": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"nonrefundable_amount": {
"type": "number",
"minimum": 0
},
"auto_renews": {
"type": "boolean"
},
"renewal_interval": {
"type": "string",
"maxLength": 80
},
"cancellation_method": {
"type": "string",
"maxLength": 240
},
"charge_timing": {
"type": "string",
"maxLength": 160
},
"source_url": {
"type": "string",
"maxLength": 500
},
"observed_at": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp with explicit timezone."
}
},
"additionalProperties": false
}
},
"required": [
"merchant",
"commitment_type",
"amount"
],
"additionalProperties": false
}🟢get_exit_manifest(manifest_id, access_token)
Free. Retrieve a previously created Exit Manifest using its unguessable manifest ID and access token.
Input Schema
{
"type": "object",
"properties": {
"manifest_id": {
"type": "string",
"pattern": "^xm_[a-f0-9]{32}$"
},
"access_token": {
"type": "string",
"pattern": "^xp_[A-Za-z0-9_-]{20,}$"
}
},
"required": [
"manifest_id",
"access_token"
],
"additionalProperties": false
}⚪build_exit_pack(manifest_id, access_token)
Paid $1.00 only after manifest access and actionability preflight succeed. Returns a bounded cancellation/refund action plan, evidence checklist, suggested request, sources, and limitations.
Input Schema
{
"type": "object",
"properties": {
"manifest_id": {
"type": "string",
"pattern": "^xm_[a-f0-9]{32}$"
},
"access_token": {
"type": "string",
"pattern": "^xp_[A-Za-z0-9_-]{20,}$"
}
},
"required": [
"manifest_id",
"access_token"
],
"additionalProperties": false
}🟢list_supported_policies
Free. List maintained merchant policy overlays. Any merchant can still be checked when transaction-specific checkout terms are supplied.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}