@avakit/mcp

An MCP server that exposes Avalanche actions, not just docs, to Claude Code and Cursor.

Read this first. Pasting the JSON below into a chat message does not connect the server — the model just sees text. It has to go into your MCP client's config file (or be added with the CLI command), and then you restart the client. It worked when your client lists an avakit tool.

You need Node.js installed (for npx). There's nothing else to install — npx fetches the server on demand. Follow the steps for your client.

Claude Code (CLI)

One command, no file to edit:

$ claude mcp add avakit -- npx -y @avakit/mcp

Run /mcp inside Claude Code to confirm avakit is connected, then just ask in natural language (see the example below).

Cursor

Open Settings → Tools & MCP → Add new MCP server, or create/edit ~/.cursor/mcp.json and add:

{
  "mcpServers": {
    "avakit": {
      "command": "npx",
      "args": ["-y", "@avakit/mcp"]
    }
  }
}

Save and reload Cursor. The server shows up under Settings → MCP with a green dot when it's connected.

Claude Desktop

Open (or create) the config file, paste the JSON, save, then fully restart the app. The file lives at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "avakit": {
      "command": "npx",
      "args": ["-y", "@avakit/mcp"]
    }
  }
}

Then fully quit and reopen Claude Desktop (close the window is not enough — quit it completely). Open a chat and click the tools / plug icon in the message box; you should see avakit and its tools. Now ask in natural language.

Tools

ToolDescription
scaffold_appCreate an Avalanche dapp from a template.
list_templatesList available templates.
read_chainRead a balance, a tx receipt, or a contract view function.
deploy_contractDeploy compiled bytecode. Fuji by default; mainnet needs confirmation.
estimate_gasEstimate gas for a call before you send it.
get_contextAvaKit + Avalanche coding context and doc links.
Tool inputs are validated with strict schemas — unknown parameters are rejected rather than silently ignored, so a mistyped field (e.g. network instead of chain) fails loudly instead of falling back to a default.

Example

Ask your agent in natural language:

“Scaffold an nft-mint dapp called gm-avax and deploy it to Fuji.”

The agent calls scaffold_app, then deploy_contract, then reads the result back with read_chain.

Deploy key

deploy_contract signs with a private key from the AVAKIT_DEPLOYER_KEY environment variable. Use a throwaway testnet key — never one holding real funds. Mainnet deploys require an explicit confirm: true.