Deterministic allow/require_approval/deny verdicts for agent actions, before they happen.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Pay Fieldproof $42. Returns every live rail: Stripe card_uri, EIP-681 usdc_uri, BIP-21 btc_uri, x402 POST /v1/sponsor, Zelle, and GET /v1/invoice. One settlement meets the first-$42 bar.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pay Fieldproof $42. Returns every live rail: Stripe card_uri, EIP-681 usdc_uri, BIP-21 btc_uri, x402 POST /v1/sponsor, Zelle, and GET /v1/invoice. One settlement meets the first-$42 bar.
No arguments.
{
"type": "object",
"properties": {}
}Evaluate a proposed agent action against a policy and return allow / require_approval / deny with the matched rule and rationale. Paid per call via x402 ($0.005 USDC on Base); returns signing instructions when unpaid.
| Argument | Type | Description |
|---|---|---|
| ledger | object | Optional cumulative exposure for the window. A per-action gate cannot see repetition: 49 payments of $40 each pass a $50 rule individually. Omit it and any policy declaring a cumulative bound returns deny with ledger_required — a cap you can skip by omitting state is decorative. Explicit zeros are an answer; an absent object is not. |
| policy | object | Your own policy document, evaluated instead of ours |
| request* | object | |
| policy_id | string | Built-in policy id; see policy_rules. "default-action-tiers-capped" adds a cumulative spend bound. |
{
"type": "object",
"required": [
"request"
],
"properties": {
"ledger": {
"type": "object",
"properties": {
"unknown_usd": {
"type": "number",
"description": "Dispatched and never resolved. Any value above zero denies with unresolved_intent, regardless of headroom: the system has lost track of this quantity. It closes by observing the target, never by a clock."
},
"intended_usd": {
"type": "number",
"description": "Dispatched and not yet confirmed. Counts toward the bound, so a burst in flight is not invisible to it."
},
"committed_usd": {
"type": "number",
"description": "Spend already known to have happened in the window"
}
},
"description": "Optional cumulative exposure for the window. A per-action gate cannot see repetition: 49 payments of $40 each pass a $50 rule individually. Omit it and any policy declaring a cumulative bound returns deny with ledger_required — a cap you can skip by omitting state is decorative. Explicit zeros are an answer; an absent object is not."
},
"policy": {
"type": "object",
"description": "Your own policy document, evaluated instead of ours"
},
"request": {
"type": "object",
"required": [
"action"
],
"properties": {
"actor": {
"type": "string"
},
"action": {
"type": "string",
"description": "Dotted action id, e.g. payments.send"
},
"params": {
"type": "object"
}
}
},
"policy_id": {
"type": "string",
"description": "Built-in policy id; see policy_rules. \"default-action-tiers-capped\" adds a cumulative spend bound."
}
}
}Free. Worked allow/require_approval/deny verdicts from the live policy engine, so you can judge the service before paying for it.
No arguments.
{
"type": "object",
"properties": {}
}Free. The full built-in policy: every tier, rule, condition and rationale. Nothing about how a verdict is reached is hidden.
No arguments.
{
"type": "object",
"properties": {}
}