sign-message
Securely sign messages using MetaMask with MCPilot, enabling AI-driven blockchain interactions without exposing private keys. Simplify message signing for enhanced user onboarding.
Instructions
Sign messages
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes |
Implementation Reference
- Handler function that executes the signMessage using wagmi core, takes message from args, signs it with current account config, and returns the signature hash as text content.execute: async (args, { log }) => { try { const message = args.message const result = await signMessage(wagmiConfig, { message }) return { content: [ { type: "text", text: JSONStringify({ hash: result }), }, ], } } catch (error) { log.debug((error as Error).message) throw error; } },
- Zod schema defining the input parameter 'message' as a string.parameters: z.object({ message: z.string(), }),
- packages/metamask-mcp/src/tools/sign-message.ts:7-36 (registration)Function that registers the 'sign-message' tool with FastMCP server, including name, description, schema, and handler.export function registerSignMessageTools(server: FastMCP): void { server.addTool({ name: "sign-message", description: "Sign messages", parameters: z.object({ message: z.string(), }), execute: async (args, { log }) => { try { const message = args.message const result = await signMessage(wagmiConfig, { message }) return { content: [ { type: "text", text: JSONStringify({ hash: result }), }, ], } } catch (error) { log.debug((error as Error).message) throw error; } }, }); };
- packages/metamask-mcp/src/index.ts:56-56 (registration)Invocation of the registerSignMessageTools during server tool setup in the main entry point.registerSignMessageTools(server);