Falcon Shield

Pre-sign Solana tx guard for agents: ALLOW/WARN/BLOCK verdict, x402 USDC pay-per-call.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~515Tokens (tool definitions)
~5.1 KBTypical response size
Minimal attention impact (0.40% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "falcon-shield": {
      "url": "https://falcon-shield.falcon-sol.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://falcon-shield.falcon-sol.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (1)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢shield_guard_check(tx, wallet, known_addresses, quote, cap_base_units, ...)

Use this before an agent or wallet signs a Solana transaction. Decodes the unsigned or signed transaction and returns NO_MATCH (no known-bad pattern matched; not a safety guarantee), WARN, or BLOCK, with plain-language reasons and a signed receipt. Pass an x402 quote to also check a payment transaction against it (overpay, approve-instead-of-transfer, unchecked Transfer, wrong payee). Errors return ERROR and are never charged. Price $0.009 USDC (x402, Solana).

Input Schema

{
  "type": "object",
  "properties": {
    "tx": {
      "type": "string",
      "description": "Base64 wire transaction (also accepts an RPC getTransaction result)."
    },
    "wallet": {
      "type": "string",
      "description": "Your own pubkey; only this key is treated as 'you'."
    },
    "known_addresses": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 200,
      "description": "Optional: pubkeys you have recently paid or received from. A recipient that only looks like one of these (same first/last characters) is flagged as address poisoning."
    },
    "quote": {
      "type": "object",
      "description": "x402 quote the tx pays: {asset, amount, pay_to | pay_to_token_account, decimals?, token_program?}."
    },
    "cap_base_units": {
      "type": "integer",
      "description": "Hard per-payment cap enforced even if the quote asks for more."
    },
    "caps": {
      "type": "object",
      "description": "Optional spend caps you declare; any violation returns BLOCK. Keys: max_amount (int base units per outflow), max_amounts ({mint|'SOL': int}), max_total (int per asset), allowed_payees ([pubkey]; owners' ATAs match), allowed_assets ([mint|'SOL']), allow_approvals (bool, default false)."
    },
    "simulate": {
      "type": "boolean",
      "description": "Simulate against Solana mainnet (Helius RPC, sigVerify off, recent blockhash replaced, never submitted). Default true; false = static checks only. If simulation fails the verdict is at least WARN, except plain System/Token/ATA/ComputeBudget/Memo transactions with no unresolved lookup tables, which are fully decoded statically. Third-party unlimited approvals BLOCK by default. Response includes risk_score (0-100), basis (simulated|static) and top_reason."
    },
    "strict": {
      "type": "boolean",
      "description": "Escalate HIGH-risk token approvals (unlimited or third-party delegate) from WARN to BLOCK. Default false."
    }
  },
  "required": [
    "tx"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded1 tools