backend
Deterministic pre-trade risk checks for autonomous AI trading agents.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"backend": {
"url": "https://backendai-x4m1.onrender.com/mcp-http/mcp"
}
}
}Remote-Endpunkte
https://backendai-x4m1.onrender.com/mcp-http/mcpstreamable-httphttps://api.collarguardrail.com/mcp-http/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (6)
🟢evaluate_trade(wallet, asset, contract_address, side, amount, ...)
Pre-trade risk check for a proposed trade. Call this BEFORE executing any trade and treat a "deny" decision as a hard stop. Evaluated at a fixed Tier 1 ceiling ($5,000 notional). For higher limits, use `evaluate_trade_paid` (Tier 2, $25,000) which settles an x402 payment on-chain.
Eingabe-Schema
{
"type": "object",
"properties": {
"wallet": {
"type": "string",
"description": "EVM wallet address (0x...) the trade would execute from."
},
"asset": {
"type": "string",
"description": "Asset symbol, e.g. NVDA, AAPL, TSLA, USDG."
},
"contract_address": {
"type": "string",
"description": "Token contract address (0x...). Must match the\nofficial registry address for that symbol, or the trade is\ndenied as a suspected fake token."
},
"side": {
"type": "string",
"description": "\"buy\" or \"sell\"."
},
"amount": {
"type": "number",
"description": "Quantity in token units — NOT a pre-computed USD value."
},
"max_slippage_bps": {
"default": 100,
"type": "integer",
"description": "Max slippage in basis points (default 100)."
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional idempotency key."
}
},
"required": [
"wallet",
"asset",
"contract_address",
"side",
"amount"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"decision": {
"description": "Final verdict. 'deny' is a hard stop.",
"enum": [
"allow",
"warn",
"deny"
],
"type": "string"
},
"reasons": {
"description": "Human-readable reasons. Entries prefixed with 'ADVISORY:' are non-blocking context; all other entries drove the decision.",
"items": {
"type": "string"
},
"type": "array"
},
"tier": {
"description": "Tier the wallet was evaluated at (1-3).",
"type": "integer"
},
"max_trade_usd": {
"description": "USD ceiling for this tier.",
"type": "number"
},
"calculated_notional_usd": {
"description": "USD value of the proposed trade.",
"type": "number"
},
"price_usd": {
"description": "Asset price used for the valuation.",
"type": "number"
},
"price_source": {
"description": "Where the price came from.",
"enum": [
"oracle",
"uniswap_v4",
"fallback_default",
"unavailable"
],
"type": "string"
},
"risk_score": {
"description": "Composite risk score from 0 (safe) to 100 (blocked).",
"type": "integer"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Echoed idempotency key, if provided."
},
"audit_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA-256 hash chaining this decision."
},
"audit_seq": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Monotonic sequence number of this decision."
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If present, no verdict was produced. Treat as a hard stop; do not execute the trade."
}
},
"required": [
"decision",
"reasons",
"tier",
"max_trade_usd",
"calculated_notional_usd",
"price_usd",
"price_source",
"risk_score"
],
"description": "Result of a pre-trade risk check."
}🟢evaluate_trade_paid(wallet, asset, contract_address, side, amount, ...)
Pre-trade risk check gated by an x402 payment. Evaluated as COLR Tier 2: $25,000 notional ceiling, 10/25 per-minute rate limits. No COLR holdings are required — the on-chain payment is the credential. FLOW ---- 1. Call WITHOUT payment_proof → the tool returns a `PaymentRequiredOutput` describing the on-chain payment (network, asset, amount, payTo, resource). 2. Settle the payment on-chain using an x402-capable client. The facilitator returns a proof string. 3. Call again with `payment_proof=<proof>` → the tool forwards the proof to the guardrail's x402-paid endpoint and returns a full `EvaluateTradeOutput` with `tier=2`.
Eingabe-Schema
{
"type": "object",
"properties": {
"wallet": {
"type": "string",
"description": "EVM wallet address (0x...) the trade would execute from."
},
"asset": {
"type": "string",
"description": "Asset symbol, e.g. NVDA, AAPL, TSLA, USDG."
},
"contract_address": {
"type": "string",
"description": "Token contract address (0x...)."
},
"side": {
"type": "string",
"description": "\"buy\" or \"sell\"."
},
"amount": {
"type": "number",
"description": "Quantity in token units."
},
"max_slippage_bps": {
"default": 100,
"type": "integer",
"description": "Max slippage in basis points (default 100)."
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional idempotency key."
},
"payment_proof": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "x402 payment proof from the facilitator. Omit\non the first call to receive the payment challenge."
}
},
"required": [
"wallet",
"asset",
"contract_address",
"side",
"amount"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"anyOf": [
{
"description": "Result of a pre-trade risk check.",
"properties": {
"decision": {
"description": "Final verdict. 'deny' is a hard stop.",
"enum": [
"allow",
"warn",
"deny"
],
"type": "string"
},
"reasons": {
"description": "Human-readable reasons. Entries prefixed with 'ADVISORY:' are non-blocking context; all other entries drove the decision.",
"items": {
"type": "string"
},
"type": "array"
},
"tier": {
"description": "Tier the wallet was evaluated at (1-3).",
"type": "integer"
},
"max_trade_usd": {
"description": "USD ceiling for this tier.",
"type": "number"
},
"calculated_notional_usd": {
"description": "USD value of the proposed trade.",
"type": "number"
},
"price_usd": {
"description": "Asset price used for the valuation.",
"type": "number"
},
"price_source": {
"description": "Where the price came from.",
"enum": [
"oracle",
"uniswap_v4",
"fallback_default",
"unavailable"
],
"type": "string"
},
"risk_score": {
"description": "Composite risk score from 0 (safe) to 100 (blocked).",
"type": "integer"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Echoed idempotency key, if provided."
},
"audit_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA-256 hash chaining this decision."
},
"audit_seq": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Monotonic sequence number of this decision."
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If present, no verdict was produced. Treat as a hard stop; do not execute the trade."
}
},
"required": [
"decision",
"reasons",
"tier",
"max_trade_usd",
"calculated_notional_usd",
"price_usd",
"price_source",
"risk_score"
],
"type": "object"
},
{
"description": "x402 payment challenge returned when no proof is supplied.\n\nThe client is expected to settle this payment on-chain and retry the\ntool with the resulting proof carried in `payment_proof`.",
"properties": {
"status": {
"const": "payment_required",
"default": "payment_required",
"type": "string"
},
"network": {
"description": "CAIP-2 network id, e.g. eip155:4663.",
"type": "string"
},
"asset": {
"description": "USDG contract address.",
"type": "string"
},
"amount": {
"description": "Amount in asset base units (6 decimals for USDG).",
"type": "string"
},
"pay_to": {
"description": "Recipient address for the payment.",
"type": "string"
},
"resource": {
"description": "Resource URL the payment unlocks.",
"type": "string"
},
"description": {
"description": "Human-readable purpose.",
"type": "string"
},
"max_timeout_seconds": {
"description": "Payment validity window in seconds.",
"type": "integer"
},
"tier_granted": {
"description": "Tier the paid proof grants (2 for x402 paid access).",
"type": "integer"
},
"error": {
"default": null,
"type": "null"
}
},
"required": [
"network",
"asset",
"amount",
"pay_to",
"resource",
"description",
"max_timeout_seconds",
"tier_granted"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"x-fastmcp-wrap-result": true
}🟢check_token_safety(contract_address)
Honeypot / contract safety check for any ERC-20 token.
Eingabe-Schema
{
"type": "object",
"properties": {
"contract_address": {
"type": "string",
"description": "Token contract address (0x...)."
}
},
"required": [
"contract_address"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"severity": {
"description": "Overall classification.",
"enum": [
"safe",
"warn",
"danger"
],
"type": "string"
},
"risk_factors": {
"description": "Specific issues detected.",
"items": {
"type": "string"
},
"type": "array"
},
"sell_simulation_ok": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether a simulated sell succeeded."
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If present, the check failed. Do not assume 'safe'."
}
},
"required": [
"severity"
],
"description": "Heuristic honeypot / contract safety report."
}🟢simulate_balance(token_address, holder, delta, decimals)
Simulate a wallet's ERC-20 balance after a hypothetical trade using eth_call state override. Read-only: no transaction is ever sent.
Eingabe-Schema
{
"type": "object",
"properties": {
"token_address": {
"type": "string",
"description": "ERC-20 contract address (0x...)."
},
"holder": {
"type": "string",
"description": "Wallet address whose balance is simulated (0x...)."
},
"delta": {
"type": "number",
"description": "Signed amount (negative = spend)."
},
"decimals": {
"default": 18,
"type": "integer",
"description": "Token decimals (default 18)."
}
},
"required": [
"token_address",
"holder",
"delta"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"before": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Balance before."
},
"after": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Balance after."
},
"delta": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Signed change."
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If present, the simulation failed."
}
},
"description": "Result of an eth_call state-override balance simulation."
}🟢get_supported_assets
List every asset in the guardrail's official Robinhood Chain registry, with its canonical contract address.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"assets": {
"description": "Registered assets.",
"items": {
"properties": {
"symbol": {
"type": "string"
},
"contract_address": {
"type": "string"
},
"is_native": {
"default": false,
"type": "boolean"
}
},
"required": [
"symbol",
"contract_address"
],
"type": "object"
},
"type": "array"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If present, the registry was unreachable."
}
},
"description": "Response of the asset registry endpoint."
}🟢verify_audit_trail(wallet, limit)
Verify the tamper-evident audit trail for a wallet's past guardrail decisions.
Eingabe-Schema
{
"type": "object",
"properties": {
"wallet": {
"type": "string",
"description": "EVM wallet address (0x...)."
},
"limit": {
"default": 100,
"type": "integer",
"description": "How many recent records to verify (1-1000, default 100)."
}
},
"required": [
"wallet"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"healthy": {
"description": "True only if every record's hash matches and the chain is unbroken.",
"type": "boolean"
},
"records_checked": {
"default": 0,
"description": "Number of records verified.",
"type": "integer"
},
"first_broken_seq": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Sequence number of the first broken link, if any."
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If present, verification could not run."
}
},
"required": [
"healthy"
],
"description": "Audit-chain verification result."
}Community
Nachweis