What is an MCP-native treasury?
How Forge Treasury uses the Model Context Protocol so AI agents can discover, quote, and deposit into USDC vaults without custodial intermediaries.
Last updated: May 25, 2026 · Published 2026-05-25
Forge Treasury smart contracts are unaudited. Yield is variable and not guaranteed. Read Risks & Disclosures before depositing USDC or integrating MCP tools.
Most treasury software assumes a human operator clicks through a dashboard. Forge Treasury is built for a different user: an autonomous agent that needs structured tools, not HTML forms. The Model Context Protocol (MCP) is the integration layer — a standard way for Cursor, Claude Desktop, and custom agent runtimes to call Forge tools over HTTP and receive machine-readable responses. If you are wiring an agent to move USDC into yield venues on Base, MCP is the front door.
Calldata, not custody
When an agent calls a Forge MCP tool such as `forge_deposit` or `forge_get_vault_info`, the server returns transaction calldata and context — not a signed transaction and never user private keys. The agent (or its local wallet) signs locally. Forge does not receive USDC on the public production MCP endpoint. This non-custodial posture is central to how the protocol is designed; see Risks & Disclosures for the full model. Coinbase documents a similar pattern for AgentKit MCP integration in local development — but production Forge MCP on Hetzner exposes eight Forge vault tools only, with no CDP credentials on the server.
How MCP differs from a REST dashboard API
| Dimension | REST / GraphQL | MCP (Forge) |
|---|---|---|
| Discovery | OpenAPI docs; agent must memorize routes | Tool schemas self-describe in the client |
| Composition | Custom glue per integration | Chain with wallet MCP, block explorer, internal ops |
| Signing | Often custodial or session-based | Calldata returned; agent EOA signs locally |
| Failure modes | HTTP codes only | Health endpoint + version strings in tool metadata |
| Primary user | Human + frontend | Autonomous agent runtime |
REST endpoints work for dashboards like Stats; MCP works for agents. Tool schemas are self-describing, discoverable in Cursor, and composable with other MCP servers. An agent can chain "check USDC balance → approve → deposit → claim FORGE" without bespoke prompt engineering for every HTTP route. The MCP specification defines resources, tools, and prompts as first-class primitives — exactly what treasury automation needs.
What agents can do today
- Query vault metadata — share price, adapter allocation, chain ID, and contract addresses for the Core vault on Base.
- Build USDC deposit and withdraw calldata for Core on Base mainnet (chain ID `8453`).
- Read illustrative APY targets and FORGE emission parameters — variable, not promises.
- Check MCP health via the JSON endpoint linked from integration docs.
- Map legacy `profile: "conservative"` parameters to Core vault until multi-vault strategy tools ship.
Vaults vs strategies in MCP responses
Forge has three on-chain vault buckets — Core, Middle, and Infra — each a separate ERC-4626 `ForgeVault`. Conservative, Balanced, and Aggressive are strategies: default weights telling an agent how much USDC to send to each vault. MCP tools should route to vault addresses, not strategy names. Read the full canon in our Conservative strategy guide and Balanced strategy guide.
| Layer | Names | On-chain? |
|---|---|---|
| Vault bucket | Core · Middle · Infra | Yes — separate ForgeVault each |
| Strategy | Conservative · Balanced · Aggressive | No — allocation guidance only |
| MVP deposit path | Conservative → Core only | Single calldata today |
| Phase 2 target | Balanced → Core + Middle (+ Infra later) | Multi-tx calldata bundle |
The eight production Forge tools
The public MCP server exposes vault discovery, deposit/withdraw calldata builders, share price reads, and FORGE reward context. Tools return structured JSON — contract addresses, function selectors, encoded parameters, and human-readable warnings when timelocks are pending. Agents should always call vault info before broadcasting: adapter counts change after P2-C0 Core expansion (~May 27, 2026) and Middle vault timelock execution.
- Add the Forge MCP server to your agent config (see Docs for the Cursor deeplink).
- Confirm chain ID `8453` (Base mainnet) and USDC `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`.
- Read Risks & Disclosures — Forge contracts are unaudited; TVL is early-stage smoke testing (~$10 as of May 2026).
- Call vault info tools before broadcasting; verify adapter count and timelock status on Stats.
- Sign deposit calldata from the agent EOA, not from operator or CDP wallets.
- Keep USDC vault yield and FORGE emissions in separate agent prompts.
Phase 2: multi-vault strategy routing
Phase 2 will extend MCP to multi-vault routing: a Balanced strategy deposit may return two calldata payloads — one for Core and one for Middle — with default weights from the product canon (50/40/10, with Infra redirecting to Middle until live). Today, agents sign separate transactions per vault. The Balanced strategy article walks through split amounts, gas limits, and timelock gates.
End-to-end deposit workflow for agents
A complete MCP-native deposit follows a predictable sequence. First, the agent calls a vault info tool to read share price, `adapterCount`, timelock flags, and the Core contract address. Second, it checks the user EOA USDC balance on Base (chain ID `8453`) against the intended deposit amount. Third, it builds an ERC-20 `approve` transaction targeting the vault — USDC address `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`. Fourth, it calls the deposit calldata tool and signs the resulting `ForgeVault.deposit(assets, receiver)` payload. Fifth, optionally, it queries unclaimed FORGE eligibility — a separate claim path documented in FORGE emissions vs vault yield.
- Discover vault state via MCP (`forge_get_vault_info` or equivalent).
- Validate chain, USDC address, and receiver EOA.
- Simulate or estimate gas — post P2-C0 Core deposits may need ~4M limit.
- Broadcast approve + deposit from agent EOA.
- Monitor share balance and subgraph lag on Stats.
Production vs local MCP profiles
| Profile | Endpoint | Tools | CDP keys? |
|---|---|---|---|
| Production integrator | mcp.forgetreasury.com | 8 Forge vault tools | No — stripped on deploy |
| Local full stack | localhost via pnpm mcp:dev | Forge + optional AgentKit | Yes — engineer machine only |
| Health check | mcp.forgetreasury.com/health | JSON status | N/A |
Option A custody is locked: Hetzner production never holds CDP credentials. The deploy script strips `CDP_*` env vars before upload. Agents integrating from Cursor should point MCP config at production for demos and docs; local AgentKit experiments stay on engineer laptops per Docs. Never interpret local AgentKit behavior as prod custody posture.
Common agent mistakes to avoid
- Depositing from the Forge deployer wallet (`0x2aAbb8…`) — that address is for owner ops, not user funds.
- Using Ethereum Sepolia USDC on a Base mainnet vault — wrong chain asset.
- Treating MCP illustrative APY as realised yield — rates are variable; see Tokenomics.
- Assuming `profile: "balanced"` works before Middle timelock — check Balanced strategy status.
- Broadcasting without reading Risks & Disclosures — unaudited contracts, early-stage TVL.
Security and compliance posture
- Unaudited Forge vault and adapter contracts — treat as experimental infrastructure.
- No guaranteed yield — MCP illustrative APY strings are planning UX, not realised returns.
- No custodial USDC on prod MCP — calldata-only reduces server-side key risk but not smart-contract risk.
- Underlying protocols (Spark, Morpho, Aave) have independent security material; that does not cover Forge wrappers.
Appendix: Base mainnet constants for integrators
Forge MCP tools embed or return chain-specific constants. Hard-coding these in agent memory reduces hallucination risk. Always treat MCP responses as authoritative over prompt-stale values — deploys can change adapter addresses after timelock without bumping MCP semver. The Core vault on Base mainnet is the primary Conservative destination; Middle vault serves Balanced routing after its timelock. USDC on Base uses Circle's native deployment — not Ethereum L1 USDC bridged informally.
| Constant | Value |
|---|---|
| Chain ID | 8453 |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Core ForgeVault | 0x2C9a3922b426005B979FDD1A8F43Eb61B309193B |
| Middle ForgeVault | 0x0cAB46658aFD0F01018117475e17CAE439E36C5D |
| Prod MCP | https://mcp.forgetreasury.com/mcp |
| MCP health | https://mcp.forgetreasury.com/health |
Subgraph-backed Stats and MCP vault info should agree on share price within indexing lag. For dispute resolution, Basescan raw `totalAssets` / `totalSupply` reads win. Agents building user-facing UIs should show "last updated" timestamps and link Risks & Disclosures on every deposit flow. Phase 2 MCP will add strategy weight objects — until then, manual split math from Balanced strategy applies.
Frequently asked questions
Does Forge MCP hold my private keys?
No. Production MCP returns unsigned calldata. Your agent EOA or local wallet signer holds keys. The Hetzner server has no CDP wallet secrets in Option A deployment. This is different from custodial yield APIs where the provider co-signs or holds funds.
Can I use Forge MCP from Claude Desktop or Cursor?
Yes — add the server URL from Docs to your MCP client config. Tools appear in the tool picker with JSON schemas. Test on Base mainnet with small amounts first; contracts are unaudited and TVL is smoke-test scale (~$10 as of May 2026).
What happens if MCP is down?
Agents can still interact with vault contracts directly via Basescan or viem/ethers using published ABIs — MCP is convenience, not a protocol requirement. Check `mcp.forgetreasury.com/health` for status. On-chain vaults remain callable independent of MCP uptime.
How do strategies map to MCP deposit tools?
Today: `conservative` → Core vault calldata. `balanced` / `aggressive` may return not-live errors until Middle adapters execute and Infra vault deploys. Phase 2 returns explicit weight objects plus per-vault calldata arrays. Read Conservative and Balanced guides for manual split math in the interim.
External resources
Primary protocol documentation and data sources. Forge is not affiliated with these projects; links are for education only.
- Model Context Protocol ↗Open standard for connecting AI agents to tools and data.
- MCP Introduction ↗Architecture overview — tools, resources, prompts.
- Coinbase AgentKit docs ↗Local AgentKit + MCP patterns (not on Forge prod).
- Forge Core vault — Basescan ↗Live Core ForgeVault on Base mainnet.
- Spark protocol ↗Underlying savings-rate venue in Core book.
- Morpho ↗Curated lending markets used via Core adapters.
Related reading
- Conservative strategy: Core vault explainedThe Conservative agent strategy routes USDC to the Core vault — Spark Savings, Morpho Steakhouse Prime, and Aave V3 on Base mainnet.
- FORGE emissions vs vault yield — keep them separateWhy USDC adapter yield and FORGE token emissions must not be blended in agent prompts or marketing copy.
- Why agent treasuries could reach institutional scaleA vision piece on autonomous treasury management — with explicit early-stage status, unaudited contracts, and no performance promises.
- How to build an automated USDC treasury for AI agents on BaseStep-by-step MCP flow for programmatic stablecoin yield: vault discovery, approve/deposit calldata, Core vault routing, gas notes, and agent FAQ.
- Agent treasury automation with Cursor and Forge MCPCursor MCP deeplink install, first vault info call, approve/deposit calldata walkthrough, test amounts, and troubleshooting on Base mainnet.
Share this article
Draft copy for social posts — review before publishing. URL: https://forgetreasury.com/learn/mcp-native-treasury
Open Graph / preview card
MCP-native treasuries: calldata, not custody How Forge MCP lets agents build USDC vault deposits on Base — local signing, eight prod tools, unaudited MVP. Read risks first. https://forgetreasury.com/learn/mcp-native-treasury
Twitter / X
Forge MCP returns deposit calldata — your agent signs locally. Non-custodial by design. Learn how: https://forgetreasury.com/learn/mcp-native-treasury
AI treasuries need structured tools, not HTML dashboards. Forge Treasury exposes eight MCP tools on Base mainnet — calldata-only, non-custodial deposits from the agent EOA. Contracts are unaudited; yield is variable. Full integration guide: https://forgetreasury.com/learn/mcp-native-treasury