Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.base.org/llms.txt

Use this file to discover all available pages before exploring further.

This page describes how the Base MCP Skill and Plugins work under the hood. If you just want to install it in Claude Desktop, ChatGPT, Cursor, or Claude Code, head to the Quickstart.

Why a skill on top of the MCP server

The MCP server exposes capabilities. Without context, models might get confused, calling write tools without warning the user, skipping approval, inventing parameters, or failing to detect that the server isn’t connected at all. The skill closes that gap. Specifically, SKILL.md adds:
  • Detection and onboarding — the assistant can call get_wallets when it needs wallet context, supported chains, or an address for a write flow.
  • Approval mode — write tools (send, swap, sign, send_calls) return { approvalUrl, requestId }. The skill tells the model to present the link, wait, then poll get_request_status — never to claim success before confirmation.
  • Tone rules — load-bearing language conventions (e.g. “onchain”, never “web3”) and a beginner/sophisticated detection heuristic so responses match the user.
  • Plugin patterns — documented prepare → send_calls, swap, and sign patterns that let external protocols extend the skill without modifying the MCP server.

How SKILL.md is loaded

Skills use progressive disclosure. The model loads SKILL.md at session start (cheap — ~100 lines) and reads references/*.md and plugins/*.md only when a relevant task arises. The shape of the Base MCP skill:
skills/base-mcp
SKILL.md
SKILL.md itself defines the session flow, approval handling, and plugin routing. The MCP tool descriptions are the source of truth for core tool parameters; plugin specs are loaded only when a relevant task arises, such as loading plugins/morpho.md for a Morpho vault request. Read the canonical file at skills/base-mcp/SKILL.md.

How plugins extend the skill

A plugin is a markdown spec — one file in plugins/ — that teaches the assistant how to drive an external protocol with Base MCP. Most onchain-action plugins prepare unsigned calldata and execute it through send_calls; others use a core tool such as swap or sign. For calldata-based plugins, the contract is the same whether the protocol exposes an HTTP tx-builder, a CLI, or its own sibling MCP server: Most calldata-based plugin files follow the same four-section shape:
1

Onboarding gate

A STOP notice forcing the assistant to complete Base MCP detection and onboarding before touching the plugin’s tools.
2

Read endpoints

The GET endpoints, CLI commands, or read tools that return state — balances, positions, market data.
3

Prepare endpoints

The endpoints, CLI commands, or prepare_* tools that return unsigned calldata, with the exact response shape so the model knows which fields map to to, value, and data.
4

send_calls mapping

How to turn the prepare response into the calls array passed to Base MCP’s send_calls.
Base MCP passes the calldata to Base Account for user approval. The protocol never touches private keys.

Native vs custom plugins

Native plugins

Morpho, Moonwell, Uniswap, Avantis, Aerodrome, Virtuals, and Bankr — authored by the Base team and shipped with the skill.

Build a custom plugin

Write your own markdown spec for any protocol with an HTTP tx-builder, CLI, or MCP server.