A comprehensive collection of Model Context Protocol (MCP) tools for interacting with the Arbitrum blockchain. Enables AI assistants like Claude, Cursor, Windsurf, VS Code, Gemini CLI, and OpenAI Codex to perform blockchain operations including account an
npm install arbitrum-mcp-toolsThis project provides a set of tools for interacting with the Arbitrum blockchain via the Model Context Protocol (MCP), enabling AI assistants like Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Gemini CLI, Antigravity, and OpenAI Codex to perform blockchain operations.
- Quick Start
- Prerequisites
- Supported Platforms
- Environment Variables
- CLI Commands
- Available Tools
- Example Usage
- Development Guide
Install Arbitrum MCP Tools to your AI assistant with a single command:
``bash`
npx arbitrum-mcp-tools install
This launches an interactive wizard that guides you through the setup process.
- Node.js v20.x or higher
- npm (comes with Node.js)
- Alchemy API Key (sign up at https://www.alchemy.com/)
- Arbiscan API Key (optional, sign up at https://arbiscan.io) - Required for the decodeTransactionCalldata tool
Arbitrum MCP Tools supports 8 platforms across macOS, Windows, and Linux:
| Platform | Format | Status |
|----------|--------|--------|
| Claude Desktop | JSON | β
Supported |
| Claude Code | JSON | β
Supported |
| Cursor | JSON | β
Supported |
| Windsurf | JSON | β
Supported |
| VS Code | JSON | β
Supported |
| Gemini CLI | JSON | β
Supported |
| Antigravity | JSON | β
Supported |
| OpenAI Codex | TOML | β
Supported |
Set these environment variables in your shell profile (~/.zshrc or ~/.bashrc):
`bashRequired
export ALCHEMY_API_KEY="your_alchemy_api_key_here"
Then reload your shell:
source ~/.zshrc$3
`powershell
[Environment]::SetEnvironmentVariable("ALCHEMY_API_KEY", "your_key_here", "User")
`CLI Commands π οΈ
$3
Interactive installation wizard for setting up MCP tools.
`bash
npx arbitrum-mcp-tools install
`$3
Remove MCP tools from selected platforms.
`bash
npx arbitrum-mcp-tools uninstall
`$3
Display all supported platforms and their installation status.
`bash
npx arbitrum-mcp-tools list
`$3
Start the MCP server (used internally by MCP clients).
`bash
npx arbitrum-mcp-tools serve
`$3
`bash
npx arbitrum-mcp-tools --help
npx arbitrum-mcp-tools --version
`Available Tools π§°
The tools are organized into several categories:
1. Account Analysis - Tools for checking balances, transactions, and tokens
2. Chain Data - Tools for retrieving blockchain data like blocks and transactions
3. Contract Interaction - Tools for interacting with smart contracts
4. Cross-Chain - Tools for cross-chain operations
5. Development - Tools for developers (simulation, gas estimation)
6. Batch Operations - Tools for performing operations on multiple addresses
7. Stylus - Tools for Stylus development and deployment
For a detailed list of all tools, see the Feature Matrix.
Example Usage π
When using any supported AI assistant, you can simply ask for blockchain data using natural language:
- "What's the ETH balance of 0x123...?"
- "Check NFTs owned by 0xabc..."
- "How much gas is needed to transfer 1 ETH?"
- "Show me the latest block on Arbitrum"
- "Decode this transaction input data: 0x..."
- "Deploy my Stylus contract to Arbitrum Sepolia"
Development Guide ποΈ
$3
`
src/
βββ index.ts # Entry point (runs server)
βββ server.ts # MCP server setup and Alchemy config
βββ cli/ # CLI installer
β βββ index.ts # CLI entry point
β βββ commands/ # CLI commands (install, uninstall, list, serve)
β βββ clients/ # Platform config generators
β βββ utils/ # CLI utilities
βββ tools/ # All tools organized by category
β βββ common.ts # Shared utilities and configs
β βββ index.ts # Tool registration
β βββ accountAnalysis/ # Account analysis tools
β βββ chainData/ # Chain data tools
β βββ contractInteraction/# Contract interaction tools
β βββ crossChain/ # Cross-chain tools
β βββ development/ # Development tools
β βββ batchOperations/ # Batch operation tools
β βββ stylus/ # Stylus development tools
`$3
Arbitrum MCP Tools uses an active registration pattern β every tool is registered at runtime with
server.tool(...). To add a new tool:1. Add the tool to its category's
registerXTools function`typescript
// src/tools/myCategory/index.ts
import { z } from "zod";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";export function registerMyCategoryTools(server: McpServer) {
server.tool(
"myNewTool",
"Short description of what it does",
{
param1: z.string().describe("Example parameter"),
},
async ({ param1 }) => {
return {
content: [{ type: "text", text:
You sent ${param1} }],
};
}
);
}
`2. Hook the category into the global registry
`typescript
// src/tools/index.ts
import { registerMyCategoryTools } from "./myCategory/index.js";export function registerAllTools(server: McpServer) {
// β¦existing categories
registerMyCategoryTools(server);
}
`$3
1. Build the project:
`bash
npm run build
`2. Test the MCP server directly:
`bash
node build/src/index.js
`3. For testing with an AI assistant, temporarily modify your platform's config to point to the local build:
`json
{
"mcpServers": {
"arbitrum": {
"command": "node",
"args": ["/path/to/arbitrum-mcp-tools/build/src/index.js"]
}
}
}
``- Alchemy SDK: Alchemy SDK Quickstart
- Arbitrum Stylus: Stylus CLI Usage
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.