Agents

MCP server and skill

apps/mcp is a stdio Model Context Protocol server over the same SDK and relayer API the widget uses. An agent lists destinations, quotes, creates the intent, signs with its own wallet, and follows the deposit to the position. The same server takes the position back out: it builds the exit, hands the agent the permit to sign, and follows the USDC to every chain it lands on.

Configure

mcp.json
{
  "mcpServers": {
    "inlet": {
      "command": "node",
      "args": ["/path/to/inlet/apps/mcp/dist/index.js"],
      "env": {
        "INLET_RELAYER_URL": "https://inlet-relayer.wonderfulforest-6c3e22a4.westeurope.azurecontainerapps.io"
      }
    }
  }
}

Set INLET_PRIVATE_KEY as well and three more tools appear that run the whole flow with that wallet.

Tools

ToolWhat it does
list_destinationsEvery live destination and the adapter behind it
list_sourcesChains a deposit can start from
quote_depositRoute, timing and the position the user ends up with
create_intentDeposit address plus the exact transaction or EIP 712 payload to sign; with solanaOwner it returns the partially signed Solana transaction for the wallet to complete
report_source_transactionHand the burn hash back to the relayer
submit_gateway_intentSubmit the signed Gateway intent
deposit_statusFollow a deposit all the way to the position
uniswap_quoteLive pool price from the Uniswap Trading API
list_withdrawablePositions the exit rail can take back out, with what the wallet holds in each
create_exitThe exit intent, the derived executor, and the exact permit or authorization to sign
submit_exitHand the signed withdrawal to the relayer
exit_statusFollow a withdrawal to the USDC on every leg
depositRun a whole deposit with the configured key
withdrawRun a whole withdrawal with the configured key
fund_gateway_balanceTop up the unified balance before depositing

Signing stays with the agent. Without a key the server never touches funds, it only prepares the payloads and reports state.

deposit and withdraw report each stage through MCP progress notifications while they run, from the derived executor to the last leg landing, so a client that asks for progress can draw the road as it fills. The probe in apps/mcp/scripts does exactly that in a terminal.

Recorded agent runs

One deposit tool call moved 1 USDC from a Base Sepolia Gateway balance into Compound III in sixteen seconds against the hosted relayer: mint on Arc, sweep, execute on Base Sepolia. The live app replays it.

One withdraw tool call took 0.5 aUSDC out of Aave V3 on Arbitrum Sepolia and landed 0.2 USDC on Base Sepolia and the rest on Arc in seventeen seconds, one permit signed by the agent's key: redeem on Arbitrum Sepolia, mint on Base Sepolia, mint on Arc. The live app shows it.

The skill file

skills/inlet/SKILL.md teaches a coding agent how to decide what a protocol needs, mount the widget, deposit without a browser, write an adapter, and run a relayer, with the testnet addresses at the end. Drop it into any agent that reads skills.