@gblin-protocol/mcp-server
The @gblin-protocol/mcp-server enables AI agents to manage treasury capital in GBLIN (a diversified index on Base mainnet) and perform Just-In-Time swaps to USDC for x402 invoice payments — via read-only calldata generation and on-chain queries. It does not hold or sign transactions itself.
Get Treasury State: Retrieve the current GBLIN protocol NAV in USD, basket composition (45% cbBTC / 45% WETH / 10% USDC) with dynamic weights, and Crash Shield activation status.
Preview Swaps: Simulate a buy (ETH→GBLIN) or sell (GBLIN→ETH) without executing, returning expected output, a safe
minOutwith dynamic slippage buffers (2.5% normal, 4% during Crash Shield), and fee breakdown.JIT GBLIN→USDC Swap: Generate atomic calldata for a single-transaction GBLIN→USDC conversion via
sellGBLINForToken, compatible with EOAs, ERC-4337 smart accounts, and EIP-7702 — ideal for instant x402 invoice payments.Invest USDC into GBLIN: Generate a two-step calldata sequence (approve USDC + call
buyGBLINWithToken) with MEV-safeminOutvalues to accumulate GBLIN treasury.Analyze Treasury Health: Inspect an agent wallet's GBLIN, USDC, and ETH balances, assess gas runway, and optionally calculate operational runway and rebalance recommendations based on a daily burn rate.
Check Governance State: Verify GBLIN ownership by the 48h Timelock Controller, inspect min delay and grace period, check role member counts, surface pending asset proposals, and query specific timelock operation statuses — used to gate trust-sensitive agent actions.
AI Agent Discovery: Run
gblin-initto auto-generate or append anAGENTS.mdpolicy file in your repository for AI coding assistant discovery.Broad Compatibility: Works with ElizaOS, Claude Desktop, Windsurf/Cursor, Coinbase AgentKit, and any MCP-compliant framework via stdio.
GBLIN MCP Server
Market risk regime and treasury tools for AI agents on Base mainnet. A Model Context Protocol (MCP) server that answers two questions an autonomous agent has to ask before it moves money:
Is the market risk-off right now? Read the live regime —
calm|elevated|crash— derived from an on-chain Crash Shield. Free, no API key, no wallet. If you need to prove to a counterparty that you checked, buy a signed EIP-712 risk attestation as portable proof-of-diligence.Where does idle USDC sit between jobs? In GBLIN, a collateral-backed cbBTC/WETH/USDC index that mints and redeems at NAV, with a Just-In-Time swap back to USDC the millisecond the agent needs to pay an x402 invoice. No lockup, unsigned calldata only — your wallet signs, we never hold keys.
📖 Full documentation and Quick Start: gblin.digital/agents
⚡ Copy-paste starter examples: examples/ — ElizaOS · AgentKit / TypeScript · Claude / any MCP client — each with the recommended treasury-policy system prompt and safe-default security env.
▶️ Runnable full-cycle demo (read-only, no keys): npx tsx examples/full-cycle.ts — live against Base: treasury state → risk regime → attestation verified offline → invest calldata → JIT redemption calldata. Source.
🌐 Hosted MCP (Streamable HTTP, no install): https://gblin-mcp.gblin-mcp-worker.workers.dev/mcp — 8 free tools in a dot-notation tree, no auth, no session: risk.regime, risk.attestation_sample, protocol.stats, protocol.info, coherence.report, plus AI Action Receipts (receipts.seal demo 5/day/IP, receipts.get, receipts.verify — pure-math verification, no trust in this server). Two prompts: risk_gate, seal_and_verify. The pre-rename flat names still work as unlisted aliases until 2026-11-21. Docs are MCP resources, not tools: gblin://howto/attestation, gblin://howto/seal, gblin://limits, gblin://keys (verifier keys + key-rotation policy). Nothing is paid over MCP.
GET-only audit (for reviewers and clients that cannot POST):
/meta(counts +manifest_hash) ·/tools.json·/resources.json·/conformance·/v1/verify/:index(per-check booleans + on-chain anchor consistency). This hosted surface is deliberately different from the npm stdio package below (13 tools, treasury/governance included). Also on Smithery. Source inworker/.
ElizaOS Plugin
For agents running on ElizaOS, install the companion plugin — now listed in the official ElizaOS plugin registry (v0.4.0, security-hardened):
npm install plugin-gblin
# or: elizaos plugins add gblinIt exposes four native Actions (CHECK_GBLIN_TREASURY_HEALTH, INVEST_IDLE_USDC_GBLIN, RESCUE_USDC_FROM_GBLIN, GET_GBLIN_RISK_ATTESTATION) and a Provider that injects live NAV + Crash Shield status into the agent context on every loop.
Related MCP server: mcp-server
AI Action Receipts — a witnessed transparency log for what your agent did
The problem this attacks is the #1 barrier to AI adoption in 2026: nobody can
prove, after the fact, exactly what an AI did (surveys: workers burn 2–4 h/week
verifying AI output; 70% of orgs say they cannot govern their agents). Our answer
is the smallest honest primitive: a public, append-only RFC 6962 transparency
log for AI actions. Input and output go in as hashes only (never content);
the short action label, agent_id, tool and meta strings you send are
published in the public log — put identifiers there, never secrets. You get back
a portable receipt any third party can verify offline, forever.
receipt = canonical payload
+ Ed25519 signature (key: gblin.digital/receipts-log)
+ RFC 6962 inclusion proof (leaf → Merkle root)
+ C2SP signed checkpoint (origin, tree size, root)Canonicalization is frozen as gblin-canonical-json/1: object keys sorted by
UTF-16 code unit, no whitespace, JSON.stringify semantics for primitives,
recursion for objects/arrays. Test vector: payload {"b":1,"a":null} →
canonical {"a":null,"b":1} → leaf = SHA256(0x00 || canonical_bytes). The
receipt signature is Ed25519 over "gblin-receipt/v1\n" + canonical.
Seal (paid, unlimited):
POST https://gblin.digital/api/x402/seal— $0.01 USDC via x402.Seal (demo, 5/day/IP):
POST <worker>/v1/seal-demoor hosted MCP toolreceipts.seal(verify withreceipts.verify).Read free forever:
<worker>/v1/receipt/:index·/log·/log/checkpoint·/log/proof/:index· human page/receipt/:index.Daily EAS anchor on Base of the tree root (verifiable on base.easscan.org, schema
0x9f433a96…, promiseIdkeccak256("gblin-receipts-log")).Offline verifier, zero dependencies:
verify-receipt.mjs—node verify-receipt.mjs receipt.json.
A seal proves existence and time in a signed append-only log whose root is
anchored daily on Base. The checkpoint is currently signed by the log operator
(us); independent witness cosigning is an open invitation — we already
cosign a third-party transparency log (C2SP tlog-witness) and will list any
witness that cosigns ours. Until then, honest wording: operator-signed, chain-anchored.
It is not a compliance certificate and not an endorsement of the content.
Worker: <worker> = https://gblin-mcp.gblin-mcp-worker.workers.dev.
Coherence Proof — verify GBLIN keeps its promises
GBLIN pre-registers hash-pinned public promises, then runs an automaton that probes them every 10 minutes and seals each closed day as an EAS attestation on Base. Reading is free forever; the paid service is being observed — the certifier submits itself to its own instrument first.
Free report:
/coherence(JSON) or the hosted MCP toolcoherence.report.Live promises: P1 (uptime of the paid Risk Attestation endpoint) and P2 (honesty of the public agent-economy counters, with our own wallets disclosed and excluded).
On-chain: each closed day is sealed as an EAS attestation on Base by a dedicated observer wallet. GBLIN is a discoverable ERC-8004 agent (#59286).
AI assistant discovery — gblin-init
Drop 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-initThe command is idempotent and safe:
If
AGENTS.mddoes not exist → creates it from the canonical template atgblin.digital/AGENTS.template.md.If
AGENTS.mdexists → appends a clearly delimited GBLIN block at the bottom; your own content is never touched.Re-running is a no-op (detected via stable HTML markers).
--dry-runprints what it would do without writing.--forcerefreshes the block to the latest version.
It also runs offline thanks to a bundled fallback template.
Postinstall hint
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.
Trust & Governance
GBLIN V6 is governed 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 V6 token | Index contract (production) | |
Timelock Controller | 48h immutable delay, 14d grace period | |
Ownership transfer tx | Transferred at block 46160610 |
Properties enforced at the contract level:
MIN_DELAYis immutable (override ofupdateDelayreverts permanently)PROPOSER_ROLEandCANCELLER_ROLEare strictly separated (constructor reverts on overlap)EXECUTOR_ROLEis open (address(0)) — anyone can execute a matured operation, anti-censorshipThe timelock is self-administered: every role/config change must itself go through the 48h delay
This 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.
Why this exists
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 adaptively reduces risk-asset exposure as drawdown rises (V6 adaptive threshold, from ~15%). GBLIN is managed crypto exposure with capped drawdown — a calmer way to hold BTC/ETH risk for surplus capital, not a substitute for USDC (it can still lose value in a crash). Agents settle x402 invoices instantly via Just-In-Time GBLIN→USDC redemption.
This server exposes that capability to any LLM agent through the standard MCP protocol.
Quick start
Claude Desktop
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 13 GBLIN tools appear in the tool picker.
Windsurf / Cursor
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.
Coinbase AgentKit (TypeScript)
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..." },
});ElizaOS / custom
Any framework that speaks MCP over stdio works:
npx @gblin-protocol/mcp-serverAlso supports Cline, Continue.dev, and any agent that implements the MCP client spec.
The 13 tools (npm stdio package)
Free tools (no payment required)
Tool | Purpose |
| NAV in USD + basket composition + Crash Shield status |
| Preview buy or sell with dynamic slippage buffer |
| The x402 magic: generate two-step GBLIN→USDC calldata (free) |
| Convert USDC earnings into GBLIN treasury (MEV-safe) (free) |
| Verify owner == 48h Timelock + pending asset proposals + min delay |
| Generate a portable skill seed to onboard a peer agent + embedded referral code |
| Verify a peer's Risk Attestation (perishable proof-of-diligence): integrity + EIP-712 signature + freshness + live drift (free) |
More free tools
Tool | Purpose |
| Start here: BTC/ETH risk regime (calm/elevated/crash) + severity + risk posture, from the on-chain Crash Shield — free, no key |
| Balances + gas + runway + rebalance advice |
| GBLIN pays you: check if a rebalance bounty is available (no capital required, you only pay gas) |
Risk Attestation — mint a perishable (10-minute), verifiable proof of the current BTC/ETH risk regime at
GET https://gblin.digital/api/x402/attestation($0.003 USDC via x402). Attach it to your action as proof-of-diligence; any counterparty verifies it for free withverify_risk_attestation.
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 the tool suite against Base mainnet and confirms calldata generation, oracle freshness, slippage math, and governance state. See the latest CI run.
x402 micropayments
Every MCP tool is free. The MCP server never charges: it is the discovery and read layer, and it monetizes only through the on-chain protocol fee (0.05% on mint) when an agent actually uses GBLIN.
Verifiable pay-per-call lives on the HTTP endpoints instead, all on Base mainnet in USDC
(0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913), settled through the Coinbase CDP facilitator
via gasless EIP-3009 transferWithAuthorization:
Endpoint | Price | What you get |
| $0.001 | NAV, basket weights, Crash Shield status |
| $0.001 | Safe swap preview with dynamic slippage |
| $0.001 | Owner = 48h timelock, pending operations |
| $0.002 | Wallet balances, gas runway, rebalance advice |
| $0.002 | Unsigned calldata: USDC → GBLIN |
| $0.005 | Unsigned calldata: GBLIN → USDC just in time |
| $0.003 | Signed EIP-712 risk attestation (10-minute proof-of-diligence) |
Machine-readable manifest: https://gblin.digital/.well-known/x402. Recommended clients: @x402/fetch
or @x402/axios (x402 v2 — they handle the 402 challenge, the signature and the retry for you).
The MCP tool verify_risk_attestation checks any attestation offline, for free.
Payment recipient: 0x0ebA5d314F4f5Dcb7A094953Fa9311a45172dd1B (GBLIN fee wallet).
Architectural decisions
Deterministic two-step JIT (V6)
GBLIN V6 removed the old sellGBLINForToken single-tx path. The JIT flow is now two deterministic transactions: (1) sellGBLINForEth(amount, minEthOut) burns GBLIN and redeems the basket to ETH with oracle-anchored minOut; (2) a single WETH→USDC swap on Uniswap V3 with its own minOut. The MCP returns both steps as ready-to-broadcast calldata (steps[]).
The MCP returns calldata that works identically on:
EOA wallets (Privy, MetaMask, raw private key)
ERC-4337 smart accounts (Safe, Coinbase smart account)
EIP-7702 delegated EOAs (Pectra+)
Dynamic slippage
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.
MEV protection
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.
Cooldown enforcement
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.
Configuration
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-serverSee .env.example for the full list.
Development
git clone https://github.com/gblinproject/gblin-treasury-risk-regime
cd GBLIN-MCP
npm install
npm run build
npm test # live read-only smoke test against Base mainnet
npm start # run the compiled serverProject layout:
src/
config.ts # network constants, addresses, slippage params
abi.ts # GBLIN_V6 + 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 10 treasury tool implementations + zod schemas (receipts.ts adds 3)
index.ts # MCP stdio server entry
scripts/
test.ts # live smoke testSecurity notes
The server is read-only. It never holds, signs, or broadcasts.
All quotes are derived from on-chain calls + Chainlink oracles. Stale or negative oracle answers cause the tool to abort with
OracleStale/OracleDead.The agent's wallet is the sole signer. Calldata returned by tools is plain ABI-encoded bytes — review before broadcasting in untrusted environments.
No telemetry, no analytics, no remote dependencies beyond the configured RPC.
Roadmap
v0.2: Uniswap V3 QuoterV2 integration for sub-1% slippage precision
v0.3: Permit2 support (skip the approve step for x402 reinvestment)
v0.4: Streamable HTTP transport for hosted multi-agent setups
v1.0: Audited contract integration + remote-only deployment guide
Links
Contract: 0x36C81d7E19…52f0
Protocol site: https://gblin.digital
Agent docs: https://gblin.digital/agents
Issues: https://github.com/gblinproject/gblin-treasury-risk-regime/issues
MIT © 2026 GBLIN Protocol
Agent-to-Agent Skill Propagation (v0.1.9+)
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:
Install instructions for the GBLIN MCP server
A working transaction example with reference TX on Basescan
Agent A's referral code (derived from its wallet)
The full natural-language explanation of GBLIN
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.
Keeper Bounty System (v0.1.11+)
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": "0x36C81d7E1966310F305eA637e761Cf77F90852f0",
"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.
Discovery & Trust
GBLIN exposes machine-readable discovery files for AI agents and protocols:
Coinbase x402 Bazaar: all 11 GBLIN endpoints (7 webapp + 4 Sentinel) are indexed in the CDP Bazaar discovery layer — agents find them via semantic search (
GET https://api.cdp.coinbase.com/platform/v2/x402/discovery/search?query=treasury+risk) or by merchant (.../discovery/merchant?payTo=0x0ebA5d314F4f5Dcb7A094953Fa9311a45172dd1B)x402 Manifest: https://gblin.digital/.well-known/x402 — full list of paid endpoints with prices, chain ID, and currency
LLM Discovery: https://gblin.digital/api/x402/llms.txt — human-readable protocol summary (free, no paywall)
Base MCP Plugin: PR #56 on base/skills — official integration in review
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 — x402 Data Agent Example
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 |
| $0.002 USDC | Chainlink risk signal: |
| $0.002 USDC | GBLIN treasury state, basket weights, keeper availability |
| $0.002 USDC | Live keeper bounty check with MCP tool reference |
| $0.03 USDC | Flagship: actionable recommendation (invest/hold/reduce/defer) + confidence + suggested allocation |
Discovery:
x402 manifest: https://gblin-sentinel.vercel.app/.well-known/x402
LLM reference: https://gblin-sentinel.vercel.app/llms.txt
Any agent using this MCP server can call base-risk-pulse before investing to gate treasury actions on current market risk signal.
GBLIN Aureus — Autonomous Trading Agent (Track-Record Engine)
Aureus is an autonomous catalyst & rotation agent that trades crypto, equities, indices and metals on Base — and cannot lie about its results: every thesis is keccak-hashed and committed on-chain before the agent acts, then revealed at close. Win or lose, the record is permanent and independently verifiable. No cherry-picked screenshots.
Status: DRY-RUN validation. Aureus runs the full loop on live market data with zero real funds. It graduates to real capital only if it passes a public gate: 30–50 closed trades, profit factor > 1.3, max drawdown < 10%, zero liquidations. The live dashboard publishes every metric in real time: gblin.digital/aureus.
Under the hood (the boring parts that keep capital alive):
Risk engine: volatility-targeted sizing, stops always inside the liquidation distance, mark-to-market equity with automatic drawdown halt, 10-second stop watcher
Multi-venue funding carry: delta-neutral funding harvest confirmed across Binance/Bybit/OKX medians, with persistence gating (regimes, not single prints)
Multi-timeframe alignment: fast mean-reversion signals are gated by the daily trend (time-series momentum, the most documented edge in finance)
Microstructure eyes: taker-flow (CVD) and order-book imbalance veto entries the tape opposes
Shadow book: every rejected strategy keeps paper-trading on live data; capital allocation follows statistical proof, never opinion
News sentinel: a multi-LLM consensus ensemble (6 independent providers) reads verified headlines into a risk signal — the math decides every entry, the LLMs only modulate
Aureus is also a planned GBLIN treasury user: idle capital parks in GBLIN via this MCP server and JIT-swaps to USDC when margin is needed — the agent eating the protocol's own cooking.
Live dashboard: https://gblin.digital/aureus
Announcement: @GBLIN_Protocol on X
Related Repositories
Smart Contract & Protocol: https://github.com/gblinproject/GBLIN-Protocol
Web App & x402 Endpoints: https://github.com/gblinproject/GBLIN_WEBAPP
ElizaOS Plugin: https://github.com/gblinproject/GBLIN_PLUGIN
GBLIN Sentinel (x402 data agent): https://github.com/gblinproject/gblin-sentinel
GBLIN Aureus (autonomous trading agent): https://gblin.digital/aureus — dry-run validation, on-chain commit-reveal track record
Available Tools
6 toolsanalyze_treasury_healthAInspect
Analyze an agent wallet's treasury health: GBLIN/USDC/ETH balances, gas runway, and (if daily_burn_usd provided) days of operational runway plus rebalance recommendation. Critical for autonomous decision-making.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | Agent's 0x address. | |
| daily_burn_usd | No | Optional. Average daily spend in USD (e.g. 1.5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses analysis scope and optional computation, but does not explicitly state that the tool is read-only or has no side effects. Adequate but could be more precise.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with key purpose, specific metrics, and actionable context. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main outputs (balances, gas, runway, recommendation) despite no output schema. Lacks detail on return format or error handling, but sufficient for a single-function analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers parameters 100% with descriptions. Description adds value by explaining that daily_burn_usd enables days of runway and rebalance recommendation, beyond schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Analyze' and specific resource 'agent wallet's treasury health'. Lists exact metrics (GBLIN/USDC/ETH balances, gas runway, days of runway, rebalance recommendation), distinguishing it from sibling tools like get_treasury_state or swap tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Critical for autonomous decision-making,' implying when to use. Does not explicitly exclude scenarios or name alternatives, but sibling context (analysis vs. actions) provides clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_governance_stateAInspect
Verify GBLIN protocol governance state: confirms whether GBLIN_V5 is owned by the 48h Timelock, reads the timelock's min delay and grace period, reports role member counts, and surfaces any pending asset-addition proposal on the index contract. If an operation_id is provided, also reports the status of that specific timelock operation. Read-only — use this to gate trust-sensitive agent actions.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | No | Optional 0x-prefixed 32-byte hex id of a specific timelock operation to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description declares 'Read-only', disclosing key behavioral trait. Lists exact data points inspected and optional status reporting. Could add more on side effects or permissions but sufficient for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two precise sentences front-load the purpose and constraints. No filler, every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional parameter and no output schema, the description fully covers expected behavior and return semantics, listing all governance aspects checked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by explaining the optional parameter's purpose: 'reports the status of that specific timelock operation', going beyond the schema's label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs and resources: 'verify GBLIN protocol governance state', and enumerates concrete checks (ownership, delays, role counts, pending proposals). It clearly distinguishes from siblings like 'analyze_treasury_health' by focusing on governance, not treasury.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'use this to gate trust-sensitive agent actions', providing clear context. Doesn't name alternative tools for governance but implies this is the go-to readiness check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_treasury_stateAInspect
Read the current GBLIN protocol state on Base mainnet: NAV in USD, basket composition with dynamic weights, and Crash Shield status. Use this BEFORE any swap to know the current price and risk regime.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'Read' implies read-only, but does not explicitly state no side effects or auth. Reasonably transparent for a simple read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first tells what data is returned, second gives usage guidance. No wasted words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description enumerates return values (NAV, basket composition, weights, Crash Shield status). Sufficient for a simple read tool among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters (0), schema coverage 100%. Description does not need parameter details. Baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Read' and resource 'GBLIN protocol state'. Specifies exact data returned: NAV, basket composition with dynamic weights, Crash Shield status. Distinguishes from siblings as a read-only observation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Use this BEFORE any swap to know the current price and risk regime.' Provides clear context for when to use versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invest_usdc_to_gblinAInspect
Generate calldata to convert USDC earnings into GBLIN (treasury accumulation). Returns two sequential steps: (1) approve USDC, (2) call buyGBLINWithToken. Includes properly-quoted minOut values to prevent MEV sandwich attacks — never accepts 0 minOut.
| Name | Required | Description | Default |
|---|---|---|---|
| usdc_amount | Yes | USDC amount to invest (decimal string). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the burden. It discloses that the tool generates calldata (not executes), returns two sequential steps, and includes MEV protection via minOut values that never accept 0.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with clear, front-loaded information. Every sentence serves a purpose: purpose, steps, and security. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and no output schema, the description fully explains what the tool returns (two steps) and includes critical security context, making it complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter usdc_amount has a schema description covering 100%. The description adds context about decimal string and automated minOut handling, providing marginal added value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate calldata' and the resource 'USDC into GBLIN', distinguishing it from siblings like swap_gblin_to_usdc_jit (reverse) and quote_safe_swap (quote vs calldata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for converting USDC earnings to GBLIN for treasury accumulation, but does not explicitly exclude alternative tools or state when not to use it. However, sibling context provides differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_safe_swapAInspect
Preview a buy (ETH→GBLIN) or sell (GBLIN→ETH) without executing. Returns expected output, safe minOut with dynamic slippage buffer (2.5% normal / 4% during Crash Shield), and fee breakdown. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes | ||
| amount_in | Yes | Positive decimal. ETH for buy, GBLIN for sell. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the burden. It discloses read-only nature, dynamic slippage buffer details (2.5% normal / 4% during Crash Shield), and return elements (expected output, minOut, fee breakdown).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence packed with essential information, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with no output schema, the description adequately explains inputs, outputs, and behavior (read-only, slippage buffer). No gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only amount_in has a description). The description adds no further explanation beyond what the schema provides; for instance, the direction enum values are not elaborated. Baseline 3 due to partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it previews a buy or sell without executing, specifying the exact tokens (ETH/GBLIN) and what it returns, distinguishing it from actual swap tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states 'without executing,' indicating it is for previewing. However, it does not explicitly contrast with sibling swap tools or provide when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_gblin_to_usdc_jitAInspect
Generate ready-to-broadcast calldata that converts GBLIN → USDC in a single atomic transaction via the contract's native sellGBLINForToken function. Works on any wallet (EOA, ERC-4337 smart account, EIP-7702). Use this immediately before paying an x402 invoice.
| Name | Required | Description | Default |
|---|---|---|---|
| usdc_needed | Yes | USDC amount, decimal string. | |
| wallet_address | Yes | Agent's 0x address (for cooldown check). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses calldata generation, atomicity, and wallet compatibility, but omits behavioral details like prerequisites (e.g., GBLIN balance, approvals) or cooldown implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key purpose, no wasted words. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers purpose, usage timing, and compatibility. However, it could briefly mention the return format (calldata hex) and prerequisites for a more complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with basic descriptions for both parameters. The description adds no additional detail beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates calldata for converting GBLIN to USDC via a specific function. However, it does not explicitly distinguish from siblings like invest_usdc_to_gblin or quote_safe_swap, missing a clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use ('immediately before paying an x402 invoice') and notes wallet compatibility, but lacks when-not-to-use or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v1.1.2- First observed
analyze_treasury_health - First observed
get_governance_state - First observed
get_treasury_state - First observed
invest_usdc_to_gblin - First observed
quote_safe_swap - First observed
swap_gblin_to_usdc_jit
TDQS
Each tool targets a distinct function: treasury health analysis, governance state, treasury state, investment calldata, swap preview, and swap calldata. No functional overlap.
All tool names follow a verb_noun pattern in snake_case, with some including prepositions or suffixes like 'jit'. The pattern is consistent enough for an agent to predict naming.
Six tools cover the essential operations for the GBLIN protocol: reading health, governance, and treasury state, plus generating calldata for investment and swaps. The count is well-scoped.
The set covers read and write operations for the core treasury and swap functionality. Missing a governance write tool, but the read-only governance state is present. Minor gap.
Maintenance
Related MCP Connectors
AI-native settlement rail + intelligence oracle for autonomous agents. x402, Base mainnet, 81 tools.
Pay-per-call crypto market intelligence for AI agents. USDC on Base via x402.
DeFi pool yield+security intelligence & token/contract risk scanner. USDC on Base via x402.
Non-custodial USDC yield vaults on Base mainnet with 9 MCP tools for AI agent treasury.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that provides real-time access to Chainlink's decentralized on-chain price feeds, optimized for seamless integration into AI agents and autonomous systems.5177MIT
- AlicenseAqualityCmaintenanceManage Uniswap and Aerodrome liquidity positions with leverage, automated rebalancing, and yield optimization on Base and Unichain.351545AGPL 3.0
- AlicenseAqualityDmaintenanceMCP server for pay-per-call DeFi and crypto data via x402 micropayments on Base. 8 endpoints: token prices, TVL, funding rates, token security, gas tracker, whale monitoring, wallet profiling, and yield scanning.851MIT
- AlicenseNot gradedqualityFmaintenanceOnchain agent-to-agent commerce protocol using x402 and ERC-8004. Enables AI agents to buy/sell services, manage vendor catalogs, and process payments on Base.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gblinproject/gblin-treasury-risk-regime'
If you have feedback or need assistance with the MCP directory API, please join our Discord server