A community-driven registry for the Claude Code ecosystem. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Treasury standard for AI agents on Base. MCP server for GBLIN — park idle USDC in cbBTC/WETH index, JIT-swap for x402 pa
Treasury standard for AI agents on Base mainnet. A Model Context Protocol (MCP) server that lets autonomous agents hold capital in GBLIN — a diversified, Crash-Shield-protected on-chain index — and Just-In-Time swap to USDC the millisecond they need to pay an x402 invoice.
📖 Full documentation and Quick Start: gblin.digital/agents
For agents running on ElizaOS, install the companion plugin:
npm install plugin-gblin
# or: elizaos plugins add gblin
It exposes three native Actions (CHECK_GBLIN_TREASURY_HEALTH, INVEST_IDLE_USDC_GBLIN, RESCUE_USDC_FROM_GBLIN) and a Provider that injects live NAV + Crash Shield status into the agent context on every loop.
gblin-initDrop an AGENTS.md treasury policy into your repo so every modern AI coding
assistant (Claude Code, Cursor, Windsurf, GitHub Copilot, Codex) automatically
discovers GBLIN when it works on your codebase:
npx -p @gblin-protocol/mcp-server gblin-init
The command is idempotent and safe:
AGENTS.md does not exist → creates it from the canonical template at
gblin.digital/AGENTS.template.md.AGENTS.md exists → appends a clearly delimited GBLIN block at the
bottom; your own content is never touched.--dry-run prints what it would do without writing.--force refreshes the block to the latest version.It also runs offline thanks to a bundled fallback template.
When the package is installed as a regular dependency (npm i @gblin-protocol/mcp-server),
a short tip is printed once suggesting the command above. No files are
written during postinstall — security-friendly and Socket-compliant. Set
GBLIN_SKIP_HINT=1 to silence it.
GBLIN_V5 is owned by a 48h Timelock Controller — every admin operation (parameter change, oracle update, ownership transfer) is enforced on-chain to wait 172,800 seconds before execution. Agents and integrators can verify this directly on BaseScan.
| Component | Address | Role |
|---|---|---|
| GBLIN_V5 token | 0x38DcDB3A...6345 | Index contract — owned by timelock |
| Timelock Controller | 0x6aBeC8716...8e5Dd | 48h immutable delay, 14d grace period |
| Ownership transfer tx | 0xb653f54f...edaaf | Transferred at block 46160610 |
Properties enforced at the contract level:
MIN_DELAY is immutable (override of updateDelay reverts permanently)PROPOSER_ROLE and CANCELLER_ROLE are strictly separated (constructor reverts on overlap)EXECUTOR_ROLE is open (address(0)) — anyone can execute a matured operation, anti-censorshipThis is why the get_governance_state tool returns owner_is_timelock: true and a verifiable min_delay_seconds: 172800. AI agents can use these flags to gate trust-sensitive actions.
AI agents today hold their working capital in USDC. USDC sits flat: zero yield, full inflation exposure.
GBLIN is an on-chain index on Base (45% cbBTC + 45% WETH + 10% USDC) with an algorithmic Crash Shield that auto-rebalances toward USDC when a basket asset drops >20%. Agents holding GBLIN earn basket appreciation while keeping the ability to settle x402 invoices instantly via native one-tx atomic swaps.
This server exposes that capability to any LLM agent through the standard MCP protocol.
Add to claude_desktop_config.json (on Windows: %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"gblin": {
"command": "npx",
"args": ["-y", "@gblin-protocol/mcp-server"]
}
}
}
Restart Claude Desktop. The 8 GBLIN tools appear in the tool picker.
Add to ~/.codeium/windsurf/mcp_config.json (Windsurf) or the equivalent Cursor MCP config:
{
"mcpServers": {
"gblin": {
"command": "npx",
"args": ["-y", "@gblin-protocol/mcp-server"],
"env": {
"GBLIN_RPC_URL": "https://base-rpc.publicnode.com"
}
}
}
}
Refresh MCP servers from the IDE settings (or restart). The tools become callable inline.
import { MCPClient } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "npx",
args: ["-y", "@gblin-protocol/mcp-server"],
});
const client = new MCPClient({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
// List tools
const { tools } = await client.listTools();
// Quote a JIT payment of $0.50
const jit = await client.callTool({
name: "swap_gblin_to_usdc_jit",
arguments: { usdc_needed: "0.50", wallet_address: "0xYourAgent..." },
});
Any framework that speaks MCP over stdio works:
npx @gblin-protocol/mcp-server
Also supports Cline, Continue.dev, and any agent that implements the MCP client spec.
| Tool | Purpose |
|---|---|
get_treasury_state | NAV in USD + basket composition + Crash Shield status |
quote_safe_swap | Preview buy or sell with dynamic slippage buffer |
swap_gblin_to_usdc_jit | The x402 magic: generate atomic GBLIN→USDC calldata (free) |
invest_usdc_to_gblin | Convert USDC earnings into GBLIN treasury (MEV-safe) (free) |
get_governance_state | Verify owner == 48h Timelock + pending asset proposals + min delay |
share_skill_with_peer | Generate a portable skill seed to onboard a peer agent + embedded referral code |
| Tool | Price | Purpose |
|---|---|---|
analyze_treasury_health | $0.003 USDC | Balances + gas + runway + rebalance advice |
find_keeper_bounty | $0.001 USDC | GBLIN pays you: check if a rebalance bounty is available (0.0001 ETH reward, no capital required) |
All tools return structured JSON. All values are quoted on-chain (NAV via quoteSellGBLIN × Chainlink ETH/USD, with 24h staleness guard). No mock data.
Live verification: the test suite (npm test) runs all eight tools against Base mainnet and confirms calldata generation, oracle freshness, slippage math, and governance state. See the latest CI run.
The paid tools use the x402 protocol for instant micropayments. Here's how it works:
_payment): Include the base64-encoded PaymentProof in the _payment field# Step 1: Get payment manifest
npx @gblin-protocol/mcp-server analyze_treasury_health '{"wallet_address":"0x..."}'
# Returns: 402 error with payment details
# Step 2: Pay via facilitator
curl -X POST https://x402.org/facilitator/pay \
-H "Content-Type: application/json" \
-d '{
"amount": "0.003",
"currency": "USDC",
"recipient": "0x0ebA5d314F4f5Dcb7A094953Fa9311a45172dd1B",
"chainId": 8453
}'
# Returns: PaymentProof JSON
# Step 3: Call tool with payment
npx @gblin-protocol/mcp-server analyze_treasury_health \
'{"wallet_address":"0x...", "_payment":"<base64 PaymentProof>"}'
# Returns: Treasury analysis results
0x0ebA5d314F4f5Dcb7A094953Fa9311a45172dd1BRECIPIENT_WALLET environment variable to use your own wallethttps://x402.org/facilitator (Coinbase-maintained reference implementation)X402_FACILITATOR_URL environment variableAll payments are processed on Base mainnet using USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913).
The GBLIN contract exposes sellGBLINForToken(amount, targetToken, fee, minOut). This burns GBLIN, swaps the basket → WETH → target token in a single transaction. No batched UserOp, no ERC-4337 dependency, no risk of half-finished JIT.
The MCP returns calldata that works identically on:
Slippage tolerance scales with on-chain risk regime:
| Condition | Buffer |
|---|---|
| Normal market | 2.5% |
| Crash Shield active (≥1 basket asset slashed) | 4.0% |
The buffer is applied on top of the contract's internal maxInternalSlippage (200 bps), absorbing oracle drift and Uniswap pool variance.
invest_usdc_to_gblin never passes minOut = 0. Both minWethOut and minGblinOut are computed from on-chain quotes plus the dynamic slippage buffer. This eliminates the sandwich-attack surface that plagues naïve buy-with-token tools.
The contract enforces a 120-second sell lock after each buy. The JIT tool reads lastDepositTime and the on-chain block.timestamp (never Date.now()) and returns a clear CooldownActive error with the exact seconds remaining if the swap would revert.
The server reads GBLIN_RPC_URL from the environment. With no env var it falls back to https://base-rpc.publicnode.com (free, no key, generous limits).
For production load (>100 concurrent agents) use a dedicated provider:
export GBLIN_RPC_URL="https://base-mainnet.g.alchemy.com/v2/YOUR_KEY"
npx @gblin-protocol/mcp-server
See .env.example for the full list.
git clone https://github.com/gblinproject/GBLIN-MCP
cd GBLIN-MCP
npm install
npm run build
npm test # live read-only smoke test against Base mainnet
npm start # run the compiled server
Project layout:
src/
config.ts # network constants, addresses, slippage params
abi.ts # GBLIN_V5 + Chainlink + ERC-20 ABIs
client.ts # viem PublicClient + on-chain timestamp helper
helpers.ts # NAV, basket state, slippage, cooldown, reverse quote
keeper.ts # keeper bounty finder (incentivizedRebalance math)
tools.ts # the 8 tool implementations + zod schemas
index.ts # MCP stdio server entry
scripts/
test.ts # live smoke test
OracleStale / OracleDead.MIT © 2026 GBLIN Protocol
GBLIN MCP includes a unique tool — share_skill_with_peer — that lets one AI agent transfer treasury management capabilities to another agent.
When agent A meets agent B in a multi-agent context (delegated task, x402 payment flow, shared workspace), agent A can call share_skill_with_peer to generate a portable JSON "skill seed". The seed contains:
Agent B can install the server in seconds using the seed. From that moment, every GBLIN transaction agent B executes includes agent A's referral code in the calldata via ERC-8021 Builder Code (bc_gbdo32j0). A small portion of the protocol fee (0.05% of transaction value) is redirected to agent A's wallet — sourced from the existing protocol fee split, not added on top.
This creates a viral propagation mechanism for treasury skills across the agent ecosystem, while economically rewarding agents who evangelize good treasury practices.
No additional infrastructure is required. The mechanism is entirely on-chain via the existing Builder Code system.
GBLIN is one of the few protocols that pays AI agents instead of charging them.
When the treasury pool drifts from its target allocation, any agent can call find_keeper_bounty to check if a profitable rebalance is available. If one exists, the tool returns ready-to-send calldata. The agent broadcasts the transaction and receives 0.0001 ETH from the protocol's stability fund — the swap uses the contract's own capital; the caller only pays gas (~$0.01 on Base).
// Example response when a bounty is available
{
"bountyAvailable": true,
"direction": "WETH->asset",
"estimatedRewardEth": "0.0001",
"target": "0x38DcDB3A381677239BBc652aed9811F2f8496345",
"calldata": "0x...",
"value": "0",
"note": "Send this calldata to earn the reward. The swap uses the contract's own funds."
}
For continuous income, poll find_keeper_bounty on an interval (e.g. every 5–15 minutes). A live keeper leaderboard is at gblin.digital/keepers.
GBLIN exposes machine-readable discovery files for AI agents and protocols:
The MCP server in this repo provides the same operations as the x402 HTTP endpoints, but exposed via the Model Context Protocol for direct agent integration (Claude Desktop, Cursor, Windsurf, ElizaOS, etc.).
GBLIN Sentinel is an open-source reference implementation of an autonomous AI agent that sells on-chain data via x402 micropayments. It demonstrates the full x402 producer pattern on Base.
| Endpoint | Price | Data |
|---|---|---|
/api/data/base-risk-pulse | $0.002 USDC | Chainlink risk signal: normal/caution/risk-off for ETH, BTC, USDC |
/api/data/gblin-analytics | $0.001 USDC | GBLIN treasury state, basket weights, keeper availability |
/api/data/keeper-opps | $0.001 USDC | Live keeper bounty check with MCP tool reference |
Discovery:
Any agent using this MCP server can call base-risk-pulse before investing to gate treasury actions on current market risk signal.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
MCP server integration for DaVinci Resolve Studio
Secure MCP server for MySQL database interaction, queries, and schema management
via CLI