{
  "schema_version": "1.0",
  "name": "clicks-protocol",
  "version": "1.0.0",
  "description": "MCP tool server for Clicks Protocol - autonomous yield for AI agents. Earn 4-8% APY on idle USDC with zero lockup on Base L2.",
  "author": "Clicks Protocol",
  "homepage": "https://clicksprotocol.xyz",
  "repository": "https://github.com/clicks-protocol/clicks-protocol",
  "license": "MIT",
  "capabilities": {
    "tools": true,
    "resources": false,
    "prompts": false
  },
  "tools": [
    {
      "name": "clicks_get_agent_info",
      "description": "Check how much yield an AI agent earns on idle USDC. Returns current APY, balance, deposited principal, and pending rewards.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agent_address": {
            "type": "string",
            "description": "Ethereum address of the AI agent"
          }
        },
        "required": ["agent_address"]
      }
    },
    {
      "name": "clicks_simulate_split",
      "description": "Preview how a USDC payment would be split for an agent: how much goes to wallet (liquid) and how much to DeFi yield.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "description": "Payment amount in USDC (e.g. \"100\" for 100 USDC)"
          },
          "agent_address": {
            "type": "string",
            "description": "Ethereum address of the AI agent"
          }
        },
        "required": ["amount", "agent_address"]
      }
    },
    {
      "name": "clicks_get_yield_info",
      "description": "Find the best APY for idle USDC. Returns current yields on Aave vs Morpho, total protocol balance, fees collected, and yield earned.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "clicks_get_referral_stats",
      "description": "Get referral network stats for an agent: direct referrals count, total earned from referrals, claimable rewards, and referral chain.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agent_address": {
            "type": "string",
            "description": "Ethereum address of the AI agent"
          }
        },
        "required": ["agent_address"]
      }
    },
    {
      "name": "clicks_quick_start",
      "description": "Start earning yield on idle USDC in one command. Registers agent, approves USDC, and deposits first payment automatically.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "description": "First payment amount in USDC (e.g. \"100\")"
          },
          "agent_address": {
            "type": "string",
            "description": "Ethereum address of the AI agent"
          },
          "referrer": {
            "type": "string",
            "description": "Optional: address of the agent who referred you (earns 40% of your protocol fee)"
          }
        },
        "required": ["amount", "agent_address"]
      }
    },
    {
      "name": "clicks_receive_payment",
      "description": "Split a USDC payment for an agent: 80% liquid to wallet, 20% to DeFi yield. Agent must be registered first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "description": "Payment amount in USDC (e.g. \"100\")"
          },
          "agent_address": {
            "type": "string",
            "description": "Ethereum address of the AI agent"
          }
        },
        "required": ["amount", "agent_address"]
      }
    },
    {
      "name": "clicks_withdraw_yield",
      "description": "Withdraw yield + principal for an agent. Only the agent, their operator, or contract owner can withdraw.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agent_address": {
            "type": "string",
            "description": "Ethereum address of the AI agent"
          },
          "amount": {
            "type": "string",
            "description": "Amount to withdraw in USDC. Omit to withdraw everything."
          }
        },
        "required": ["agent_address"]
      }
    },
    {
      "name": "clicks_register_agent",
      "description": "Register a new AI agent with Clicks Protocol. The caller becomes the operator.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agent_address": {
            "type": "string",
            "description": "Ethereum address of the AI agent to register"
          }
        },
        "required": ["agent_address"]
      }
    },
    {
      "name": "clicks_set_yield_pct",
      "description": "Set custom yield split percentage for the calling operator. Controls how much of each payment goes to DeFi yield vs agent wallet.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "pct": {
            "type": "number",
            "description": "Yield percentage (5-50). Default is 20.",
            "minimum": 5,
            "maximum": 50
          }
        },
        "required": ["pct"]
      }
    }
  ],
  "metadata": {
    "chain": "Base L2 (Chain ID: 8453)",
    "contract_address": {
      "ClicksRegistry": "0x23bb0Ea69b2BD2e527D5DbA6093155A6E1D0C0a3",
      "ClicksSplitterV4": "0xB7E0016d543bD443ED2A6f23d5008400255bf3C8",
      "ClicksYieldRouter": "0x053167a233d18E05Bc65a8d5F3F8808782a3EECD",
      "ClicksFeeV2": "0x8C4E07bBF0BDc3949eA133D636601D8ba17e0fb5",
      "ClicksReferral": "0x1E5Ab896D3b3A542C5E91852e221b2D849944ccC"
    },
    "contract_status": "deployed",
    "audit_url": "https://clicksprotocol.xyz/audits/trail-of-bits-2026.pdf",
    "docs_url": "https://docs.clicksprotocol.xyz",
    "api_spec_url": "https://clicksprotocol.xyz/.well-known/clicks-protocol.json",
    "hosted_endpoint": "https://mcp.clicksprotocol.xyz/mcp",
    "transport": ["stdio", "streamable-http"]
  }
}
