Skip to main content
Glama

Blockchain MCP Server

by lienhage
utils.ts•1.81 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { z } from "zod"; import { ethers } from "ethers"; export class UtilsService { registerWithServer(server: McpServer) { server.registerTool( "sig", { title: "sig", description: "get function selector", inputSchema: { functionName: z.string().describe("function signature, e.g. 'transfer(address,uint256)'"), } }, async ({ functionName }) => { const functionSelector = ethers.keccak256(ethers.toUtf8Bytes(functionName)).slice(0, 10); return { content: [{ type: "text", text: `function selector: ${functionSelector}` }] }; } ); // register tools to get event signature server.registerTool( "event-sig", { title: "event-sig", description: "get event selector", inputSchema: { eventName: z.string().describe("event name, e.g. 'Transfer(address indexed from, address indexed to, uint256 amount)'"), } }, async ({ eventName }) => { const eventSignature = ethers.keccak256(ethers.toUtf8Bytes(eventName)).slice(0, 10); return { content: [{ type: "text", text: `event signature: ${eventSignature}` }] }; } ); // tool to calculate keccak256 hash server.registerTool( "keccak256", { title: "keccak256", description: "calculate keccak256 hash", inputSchema: { data: z.string().describe("data to hash"), } }, async ({ data }) => { const hash = ethers.keccak256(ethers.toUtf8Bytes(data)); return { content: [{ type: "text", text: `keccak256 hash: ${hash}` }] }; } ); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lienhage/blockchain-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server