UNPKG

arbitrum-mcp-tools

Version:

A comprehensive collection of Model Context Protocol (MCP) tools for interacting with the Arbitrum blockchain. Enables AI assistants like Claude, Cursor, and Windsurf to perform blockchain operations including account analysis, contract interaction, cross

44 lines (43 loc) 1.79 kB
#!/usr/bin/env node var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { registerAllTools } from "./tools/index.js"; import { Alchemy, Network } from "alchemy-sdk"; import "dotenv/config"; // Create server instance const server = new McpServer({ name: "arbitrum", version: "1.0.0", }); const ALCHEMY_API_KEY = process.env.ALCHEMY_API_KEY; if (!ALCHEMY_API_KEY) { throw new Error("ALCHEMY_API_KEY environment variable is required"); } const alchemyConfig = { apiKey: ALCHEMY_API_KEY, network: Network.ARB_MAINNET, }; export const alchemy = new Alchemy(alchemyConfig); // Register all tools registerAllTools(server); // Start the server function main() { return __awaiter(this, void 0, void 0, function* () { const transport = new StdioServerTransport(); yield server.connect(transport); console.error("Arbitrum MCP Server running on stdio"); }); } main().catch((error) => { console.error("Fatal error in main():", error); process.exit(1); });