diff --git a/docs/ai-agents/guides/batch-calls.mdx b/docs/ai-agents/guides/batch-calls.mdx
index d8708fafe..d59d096e6 100644
--- a/docs/ai-agents/guides/batch-calls.mdx
+++ b/docs/ai-agents/guides/batch-calls.mdx
@@ -6,7 +6,9 @@ keywords: ["send_calls MCP", "batch contract calls AI", "EIP-5792 AI", "DeFi AI
import { AcceptingPaymentsDemo } from "/snippets/AcceptingPaymentsDemo.jsx"
-
+
+
+
## What it does
diff --git a/docs/ai-agents/guides/check-balance.mdx b/docs/ai-agents/guides/check-balance.mdx
index dc20cea83..88c15fbc5 100644
--- a/docs/ai-agents/guides/check-balance.mdx
+++ b/docs/ai-agents/guides/check-balance.mdx
@@ -6,7 +6,9 @@ keywords: ["check balance AI", "get_portfolio MCP", "get_wallets MCP", "Base wal
import { DataFetchingDemo } from "/snippets/DataFetchingDemo.jsx"
-
+
+
+
## What you can ask
diff --git a/docs/ai-agents/guides/send-tokens.mdx b/docs/ai-agents/guides/send-tokens.mdx
index eb803731b..c2f87c1a5 100644
--- a/docs/ai-agents/guides/send-tokens.mdx
+++ b/docs/ai-agents/guides/send-tokens.mdx
@@ -6,7 +6,9 @@ keywords: ["send tokens AI", "send USDC AI assistant", "send ETH AI", "Base MCP
import { TradeExecutionDemo } from "/snippets/TradeExecutionDemo.jsx"
-
+
+
+
## What you can ask
diff --git a/docs/ai-agents/guides/sign-messages.mdx b/docs/ai-agents/guides/sign-messages.mdx
index 5883c12e1..29dc30b98 100644
--- a/docs/ai-agents/guides/sign-messages.mdx
+++ b/docs/ai-agents/guides/sign-messages.mdx
@@ -6,7 +6,9 @@ keywords: ["sign message AI", "EIP-712 sign AI", "personal_sign AI", "Base MCP s
import { SignMessagesDemo } from "/snippets/SignMessagesDemo.jsx"
-
+
+
+
## What it does
diff --git a/docs/ai-agents/guides/swap-tokens.mdx b/docs/ai-agents/guides/swap-tokens.mdx
index 15dab1443..1efcb495a 100644
--- a/docs/ai-agents/guides/swap-tokens.mdx
+++ b/docs/ai-agents/guides/swap-tokens.mdx
@@ -6,7 +6,9 @@ keywords: ["swap tokens AI", "token swap AI assistant", "USDC ETH swap AI", "Bas
import { TradingQuickstartDemo } from "/snippets/TradingQuickstartDemo.jsx"
-
+
+
+
## What you can ask
diff --git a/docs/ai-agents/guides/view-history.mdx b/docs/ai-agents/guides/view-history.mdx
index e648e4830..d84f0e1f8 100644
--- a/docs/ai-agents/guides/view-history.mdx
+++ b/docs/ai-agents/guides/view-history.mdx
@@ -6,7 +6,9 @@ keywords: ["transaction history AI", "get_transaction_history MCP", "Base wallet
import { AgentRegistrationDemo } from "/snippets/AgentRegistrationDemo.jsx"
-
+
+
+
## What you can ask
diff --git a/docs/ai-agents/guides/x402-payments.mdx b/docs/ai-agents/guides/x402-payments.mdx
index 21610b36d..ee8e721cd 100644
--- a/docs/ai-agents/guides/x402-payments.mdx
+++ b/docs/ai-agents/guides/x402-payments.mdx
@@ -6,7 +6,9 @@ keywords: ["x402 payments AI", "x402 Base MCP", "paid API requests AI", "USDC AP
import { X402PaymentsDemo } from "/snippets/X402PaymentsDemo.jsx"
-
+
+
+
The x402 experience in Base MCP is currently better suited for larger purchases because each paid request still requires approval and a wallet signature. For additional x402 solutions, including guidance on building an x402 endpoint, see the [CDP x402 docs](https://docs.cdp.coinbase.com/x402/welcome).
diff --git a/docs/ai-agents/index.mdx b/docs/ai-agents/index.mdx
index 3d284102b..1ba0a37e2 100644
--- a/docs/ai-agents/index.mdx
+++ b/docs/ai-agents/index.mdx
@@ -10,7 +10,9 @@ Base MCP gives your AI assistant direct access to your [Base Account](/base-acco
## Demo
-
+
+
+
## How it works
diff --git a/docs/ai-agents/plugins/custom-plugins.mdx b/docs/ai-agents/plugins/custom-plugins.mdx
index c3b022922..33548ef6c 100644
--- a/docs/ai-agents/plugins/custom-plugins.mdx
+++ b/docs/ai-agents/plugins/custom-plugins.mdx
@@ -182,10 +182,13 @@ Use Base MCP's chain names (`base`, `base-sepolia`, `ethereum`, `optimism`, `pol
| Pattern | When to use | Example |
|---------|-------------|---------|
-| Single-call envelope | One action, one tx | [Avantis](https://github.com/base/skills/blob/main/skills/base-mcp/plugins/avantis.md) |
-| Ordered batch | Approval + action must be atomic | [Moonwell](https://github.com/base/skills/blob/main/skills/base-mcp/plugins/moonwell.md) |
-| CLI or MCP prepared batch | Prefer a protocol CLI when shell access exists; fall back to an MCP server on chat-only surfaces | [Morpho](https://github.com/base/skills/blob/main/skills/base-mcp/plugins/morpho.md) |
-| Multi-endpoint flow | Quote, approve, swap as separate calls | [Uniswap](https://github.com/base/skills/blob/main/skills/base-mcp/plugins/uniswap.md) |
+| Single-call envelope | One action, one tx | [Avantis](https://github.com/base/skills/blob/master/skills/base-mcp/plugins/avantis.md) |
+| Ordered batch | Approval + action must be atomic | [Moonwell](https://github.com/base/skills/blob/master/skills/base-mcp/plugins/moonwell.md) |
+| CLI-only prepared batch | Protocol CLI produces calldata; no MCP fallback needed | [Aerodrome](https://github.com/base/skills/blob/master/skills/base-mcp/plugins/aerodrome.md) |
+| CLI or MCP prepared batch | Prefer a protocol CLI when shell access exists; fall back to an MCP server on chat-only surfaces | [Morpho](https://github.com/base/skills/blob/master/skills/base-mcp/plugins/morpho.md) |
+| Multi-endpoint flow | Quote, approve, swap as separate calls | [Uniswap](https://github.com/base/skills/blob/master/skills/base-mcp/plugins/uniswap.md) |
+| Discovery API + swap | Read-only feed selects the token; `swap` executes the purchase | [Bankr](https://github.com/base/skills/blob/master/skills/base-mcp/plugins/bankr.md) |
+| MCP server + SIWE session auth | Protocol has its own MCP server; Base MCP wallet signs the login challenge | [Virtuals](https://github.com/base/skills/blob/master/skills/base-mcp/plugins/virtuals.md) |
## Related
diff --git a/docs/ai-agents/quickstart.mdx b/docs/ai-agents/quickstart.mdx
index 45d876532..7b5a51b1b 100644
--- a/docs/ai-agents/quickstart.mdx
+++ b/docs/ai-agents/quickstart.mdx
@@ -10,7 +10,9 @@ import { TruncatedPrompt } from "/snippets/TruncatedPrompt.jsx"
## Demo
-
+
+
+
## Steps
@@ -32,7 +34,9 @@ import { TruncatedPrompt } from "/snippets/TruncatedPrompt.jsx"
4. Click **Add**
5. Next hit **Connect**, then approve the connection in Base Account. Click **Allow** once to authorize:
-
+
+
+