Back to Directory/Developer Tools

io.github.clicksprotocol/mcp-server

Agent commerce settlement tools on Base: treasury setup, payment splits, yield and attribution.

Developer ToolsTypeScriptv1.0.3


One call. Yield starts.

import { ClicksClient } from '@clicks-protocol/sdk';

const clicks = new ClicksClient(signer);
await clicks.quickStart('100', agentAddress);
// 80 USDC → agent wallet (instant)
// 20 USDC → treasury yield route

That's it. No config. No dashboard. No human required.


What Clicks does

Every USDC payment your agent receives gets auto-split:

Payment in
    ├── 80% → Agent Wallet (liquid, instant)
    └── 20% → DeFi Yield (Aave V3 or Morpho, auto-routed to best APY)
                 │
                 └── Withdraw anytime → Agent gets principal + yield (minus 2% fee on yield only)
  • No lockup. Withdraw anytime.
  • No manual steps. Fully autonomous.
  • 2% fee on yield only. Never on principal.
  • Auto-rebalances between Aave V3 and Morpho for best APY.

Install

npm install @clicks-protocol/sdk ethers@^6

x402 + Coinbase Agentic Wallets

Clicks is designed to sit after x402-style payment flows on Base.

x402 handles authorization and payment. Clicks routes USDC after receipt:

import { ClicksClient } from '@clicks-protocol/sdk';
import { CoinbaseWalletSDK } from '@coinbase/wallet-sdk';

const wallet = new CoinbaseWalletSDK({ appName: 'YourAgent' });
const signer = wallet.makeWeb3Provider().getSigner();

const clicks = new ClicksClient(signer);
await clicks.quickStart('1000', agentAddress);

// Your agent now has a settlement policy
// 80% liquid for operations
// 20% routed through treasury yield
  • Same chain (Base), same USDC contract
  • 80% liquid for operations
  • 20% routed through treasury yield
  • No lockup, withdraw anytime

SDK

Quick Start (recommended)

One call: registers agent, approves USDC, splits first payment.

const result = await clicks.quickStart('100', agentAddress);
// result.registered → true (skips if already done)
// result.approved   → true (skips if allowance sufficient)
// result.paymentSplit → true

Individual operations

// Register
await clicks.registerAgent(agentAddress);

// Approve USDC spending
await clicks.approveUSDC('max');

// Receive payment (auto-splits)
await clicks.receivePayment('500', agentAddress);

// Check yield info
const info = await clicks.getYieldInfo();
// { activeProtocol: 'Morpho', aaveAPY: 700, morphoAPY: 950, ... }

// Withdraw everything
await clicks.withdrawYield(agentAddress);

// Custom yield split (5-50%)
await clicks.setOperatorYieldPct(30); // 30% to yield, 70% liquid

Read-only (no signer needed)

const clicks = new ClicksClient(provider); // provider, not signer

const agent = await clicks.getAgentInfo(agentAddress);
// { isRegistered: true, deposited: 1000000n, yieldPct: 20n }

const split = await clicks.simulateSplit('100', agentAddress);
// { liquid: 80000000n, toYield: 20000000n }

MCP Server

AI agents can discover and use Clicks via MCP:

npm install @clicks-protocol/mcp-server
CLICKS_PRIVATE_KEY=0x... clicks-mcp

16 tools available: clicks_quick_start, clicks_register_referral, clicks_get_agent_info, clicks_simulate_split, clicks_get_yield_info, clicks_get_referral_stats, clicks_verify_receipt, clicks_get_settlement_status, clicks_reconcile_settlement, clicks_replay_policy, clicks_get_receipt_trail, clicks_receive_payment, clicks_withdraw_yield, clicks_register_agent, clicks_set_yield_pct, clicks_explain

Works with Claude, Cursor, LangChain, and any MCP-compatible client.


Referral Network

Referral contracts exist on-chain. Treat them as a separate attribution layer from the current SDK quickStart() helper.

LevelShare of protocol fee
L1 (direct referral)40%
L220%
L310%
Treasury30%

The referred agent pays nothing extra. Rewards come from the 2% protocol fee once referral attribution has been registered through a dedicated flow.

Recommended flow:

const deadline = BigInt(Math.floor(Date.now() / 1000) + 3600);
const signature = await clicks.signReferralApproval(agentAddress, referrerAddress, deadline);

const result = await clicks.quickStartWithReferral(
  '100',
  agentAddress,
  referrerAddress,
  deadline,
  signature,
);

Important:

  • quickStart() handles treasury setup.
  • registerReferralWithSig() handles explicit attribution.
  • quickStartWithReferral() is a convenience wrapper over those two steps, not an atomic one-shot contract call.

Economics per $10k deposit at 7% APY:

Your treePassive income/year
10 agents$56
100 agents$560
1,000 agents$9,800
10,000 agents$98,000

Agent Teams

Form squads, hit TVL milestones, earn bonus yield:

TierTVL thresholdBonus yield
🥉 Bronze$50k+0.20%
🥈 Silver$250k+0.50%
🥇 Gold$1M+1.00%
💎 Diamond$5M+2.00%

Contracts (Base Mainnet)

ContractAddress
ClicksRegistry0x23bb...0C0a3
ClicksSplitterV40xB7E0...f3C8
ClicksYieldRouter0x0531...EECD
ClicksFeeV20x8C4E...0fb5
ClicksReferral0x1E5A...4ccC
Safe Multisig (Owner)0xaD82...D6A9
USDC0x8335...913

All contracts verified on Basescan. Owned by Gnosis Safe multisig — single-key compromise is not possible.

ERC-8004 Trustless Agent

Clicks is registered on the ERC-8004 Identity Registry on Base as agentId 45074. On-chain reputation accrues per completed agent job. Attestors who follow the Clicks Attestor Schema V1 become eligible for the reputation-aware fee multiplier (shipping in V5).


Architecture

clicks-protocol/
├── contracts/           Solidity (^0.8.20)
│   ├── ClicksSplitterV4    Splits payments, manages yield %
│   ├── ClicksYieldRouter   Routes to best APY (Aave/Morpho)
│   ├── ClicksFeeV2           2% fee collection on yield
│   ├── ClicksRegistry      Agent ↔ Operator mapping
│   └── ClicksReferral      Multi-level referral system
├── sdk/                 TypeScript SDK
├── mcp-server/          MCP Server (16 tools)
├── site/                Landing page + llms.txt + agent.json
└── test/                227 tests (Hardhat)

Agent Discovery


Connect Your AI Agent

The Clicks MCP server is live at https://mcp.clicksprotocol.xyz/mcp — connect any MCP-compatible client in seconds.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "clicks-protocol": {
      "url": "https://mcp.clicksprotocol.xyz/mcp"
    }
  }
}

OpenClaw

openclaw mcp set clicks-protocol --url https://mcp.clicksprotocol.xyz/mcp

Codex CLI

Add to .codex/config.json:

{
  "mcpServers": {
    "clicks-protocol": {
      "type": "url",
      "url": "https://mcp.clicksprotocol.xyz/mcp"
    }
  }
}

Gemini CLI

{
  "mcpServers": {
    "clicks-protocol": {
      "url": "https://mcp.clicksprotocol.xyz/mcp"
    }
  }
}

Available MCP Tools

ToolDescription
get_protocol_statsTVL, APY, agent count
get_agent_infoCheck if an agent is registered
get_yield_infoYield balance for an agent
simulate_yieldProject earnings over time
clicks://protocol/overviewResource: protocol overview

See examples/integrations/ for ready-to-use config files.


Works with

Any agent framework that handles USDC on Base:

x402 · LangChain · CrewAI · AutoGen · Eliza · OpenClaw · Claude · Cursor · Codex · Gemini · Hummingbot · Phidata


Development

npm install
npx hardhat compile
npx hardhat test          # 227 tests

License

MIT


Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @clicks-protocol/mcp-server

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-clicksprotocol-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@clicks-protocol/mcp-server"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@clicks-protocol/mcp-servernpm

Compatible MCP Clients

io.github.clicksprotocol/mcp-server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More