Index of every page on this site: llms.txt
All skills
base avatar

/base-mcp

@ef8bcd5 official
by basebase/skills120 stars
130
Run it yourself

Base MCP — gives your AI assistant access to a Base Account via the Base MCP server (wallet-mcp.coinbase.com). Wallet, portfolio, sending, swapping, signing, x402 payments, batched contract calls, and transaction history across supported chains.

Use this Skill: https://skilld.dev/gh/base/skills/base-mcp

Nothing lands on disk. Nothing to clean up.

Fork this Skill

Edit a local copy. It keeps the author and licence.

referencescustom-plugins.md

≈1.4k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Custom / Non-Native Plugins and the web_request Allowlist

The native plugins shipped with this skill that rely on HTTP APIs may have their hosts allowlisted in the Base MCP web_request tool. This matters because Claude and ChatGPT restrict which APIs an agent can call directly from their surface — web_request is what makes those calls possible.

Plugins differ in how they reach their backend, and each plugin's own file (../plugins/<name>.md) is the source of truth for its routing. The categories are:

  • CLI-only plugins require a harness with shell or terminal access — do not route them through web_request, do not use a user-paste fallback, and do not recommend a separate protocol MCP to work around the lack of a shell. If there is no shell, tell the user the plugin requires CLI access and stop.
  • Hybrid plugins support more than one path: use the CLI (or a protocol MCP) when shell access exists; otherwise call the plugin's HTTP host through web_request when that host is allowlisted. Follow the routing in the plugin's file.
  • Some hybrid plugins split by operation: their view-only / read hosts are allowlisted for web_request and work on every surface, while their write or tx-builder hosts require a CLI harness. On chat-only surfaces, do not retry a write host through web_request and do not fall back to user-paste — follow the plugin file, which typically links the user to the protocol's web UI instead.

Custom or user-supplied plugins are almost certainly not in the allowlist and will be rejected by web_request.

Priority order for HTTP calls

Use this order for every HTTP-based plugin call — native or not. CLI-only plugins follow their plugin file and require shell access. Hybrid plugins follow the CLI/HTTP routing in their own plugin file.

1. Harness HTTP tool (preferred whenever available)

If the current environment lets you call HTTP APIs directly — e.g. Claude Code, Codex, Cursor, or any harness where you have a fetch / curl / shell tool — use that tool first for HTTP-based plugins, even for native plugins. It supports any HTTP method (GET, POST, etc.), avoids the allowlist entirely, and gives you the full response without round-tripping through the MCP.

Only fall back to web_request if you don't have a usable HTTP tool in the current harness.

2. web_request (when no harness HTTP tool exists)

If the harness has no direct HTTP capability, first check whether the plugin is CLI-only. If it is, stop and tell the user it requires a CLI harness. Otherwise, route the call through Base MCP's web_request:

  • Native HTTP plugin host — works if the host is allowlisted.
  • Non-native plugin host — will be rejected. Do not silently retry. Move to path 3.

3. User-paste fallback (Claude / ChatGPT consumer surfaces, non-native hosts)

Claude and ChatGPT can fetch GET URLs themselves, but for security reasons they will only fetch URLs that the user has pasted into the chat. The agent cannot freely construct and fetch arbitrary URLs on its own.

That makes the fallback effectively GET-only: there's no equivalent escape hatch for POST/PUT/DELETE with custom headers and a body, because the user can't realistically inject those into the chat in a fetchable form.

So for non-native plugins on Claude / ChatGPT consumer surfaces:

  • Only GET-style APIs are viable. If the protocol's API requires POST or other write methods to retrieve calldata, surface this limitation to the user — explain that their environment can't perform the fetch and that they would need a harness with HTTP tools (e.g. Claude Code) to proceed.
  • For GET endpoints:
    1. Construct the full URL with every query parameter encoded inline (address, amount, slippage, chain, etc.).
    2. Show the URL to the user and ask them to paste it back into the chat. Once pasted, you can fetch it yourself — that's the security model these surfaces enforce.
    3. Parse the response and continue the flow (e.g. map returned calldata into the batched-calls tool, then walk through the approval flow — see approval-mode.md and batch-calls.md).

Decision summary

Situation What to do
HTTP-based plugin, harness has an HTTP tool (Claude Code, Codex, Cursor, …) Use the harness's HTTP tool first. Any method is fine. Don't route through web_request when a direct call is available.
CLI-only plugin, no shell/terminal tool Tell the user the plugin requires CLI access and stop.
Hybrid plugin's view-only / read host, no shell Use web_request if the host is allowlisted (per the plugin file).
Hybrid plugin's write / tx-builder host, no shell Do not retry through web_request or user-paste. Follow the plugin file — typically link the user to the protocol's web UI.
Native HTTP plugin, no harness HTTP tool Use web_request if the host is allowlisted.
Non-native plugin, no harness HTTP tool (Claude / ChatGPT consumer apps) GET only. Construct the URL, ask the user to paste it into the chat so you're allowed to fetch it, then parse the response. If the API needs POST, tell the user this surface can't support it.

Source: SKILL.md on GitHub

skilld matched fixed text patterns in SKILL.md and file names. Patterns miss obfuscated code.

skilld run checks every file with the same patterns. It asks for approval before it loads a Skill with a behavior marked Needs approval.

1 alert14d3 checks · Risk CRITICAL
  • Gen Agent Trust Hub14d

    Security analysis identified a critical risk due to automated scanner detections of malicious files and URLs within the Flaunch plugin. The skill also contains hardcoded authentication credentials across multiple plugins and relies on downloading and executing various third-party packages at runtime. Furthermore, certain plugins handle highly sensitive personal information, such as credit card details and email contents, which increases the potential impact of an exploit.

  • Socket14d

    1 alert: gptSecurity

  • Snyk14d

    Risk: MEDIUM · 2 issues

Signed by skilld at ef8bcd5. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Activeupdated 2 weeks ago
title
Base MCP Skill
version
0.1.0
  • MCP
  • base
  • blockchain
  • wallet
  • defi
  • ethereum
  • swaps
  • tokens
  • agent-tools

README badge

README badge for base/skills/base-mcp

Gives your AI assistant access to a Base Account wallet via the Base MCP server, enabling balance checks, token sends and swaps, message signing, x402 payments, batched contract calls, and transaction history. Includes optional plugins for Morpho, Moonwell, Uniswap, Avantis perpetuals, Virtuals agents, Aerodrome, and Bankr token launches.

Generated from the current SKILL.md.

What do I need to install to use this skill?
You need the Base MCP server installed and connected. If Base MCP tools aren't available, visit https://docs.base.org/ai-agents/quickstart for installation steps specific to your platform.
What chains does Base MCP support?
The skill works across supported chains for wallet, portfolio, and transaction history. Individual plugins (Morpho, Moonwell, Uniswap, Avantis, Aerodrome, Bankr) are Base-only unless noted otherwise — Moonwell also supports Optimism.
Can I use this skill to sign transactions?
Yes. Base MCP supports signing messages and contract calls. Write operations that return an approval URL follow a specific approval flow — the skill will guide you through it.
What happens if I use a plugin that supports lending or leverage?
Plugins like Morpho, Moonwell, and Avantis can expose you to liquidation risk. The skill surfaces health factor and position data before risky actions, but you must review all details before approving any transaction.
Do I need to provide my wallet address at the start?
No. Wallet address and balance are only fetched when you ask for them or when a pending operation actually needs the address — like a token send or balance lookup.

Generated from the current SKILL.md. These answers refresh after source changes.