UNPKG

it-tools-mcp

Version:

MCP-compliant server access to over 100 IT tools and utilities commonly used by developers, system administrators, and IT professionals.

43 lines (42 loc) 2.24 kB
import { z } from "zod"; export function registerFormatPhone(server) { server.registerTool("format_phone", { inputSchema: { phoneNumber: z.string().describe("Phone number to parse and format"), countryCode: z.string().optional().describe("Country code (e.g., 'US', 'GB', 'FR')"), }, // VS Code compliance annotations annotations: { title: "Format Phone", readOnlyHint: false } }, async ({ phoneNumber, countryCode }) => { try { const { isValidPhoneNumber, parsePhoneNumber } = await import("libphonenumber-js"); // First check if it's a valid phone number if (!isValidPhoneNumber(phoneNumber, countryCode)) { throw new Error("Invalid phone number format"); } // Parse the phone number const parsedNumber = parsePhoneNumber(phoneNumber, countryCode); return { content: [ { type: "text", text: `Phone Number Formatting:\n\nOriginal: ${phoneNumber}\nCountry: ${parsedNumber.country || 'Unknown'}\nNational: ${parsedNumber.formatNational()}\nInternational: ${parsedNumber.formatInternational()}\nE.164: ${parsedNumber.format('E.164')}\nURI: ${parsedNumber.getURI()}\n\nDetails:\nType: ${parsedNumber.getType() || 'Unknown'}\nCountry Code: +${parsedNumber.countryCallingCode}\nNational Number: ${parsedNumber.nationalNumber}\nValid: ${parsedNumber.isValid()}\n\n✅ Formatted using libphonenumber-js library for accuracy.`, }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error formatting phone number: ${error instanceof Error ? error.message : 'Unknown error'}\n\n💡 Tips:\n• Include country code (e.g., +1 555-123-4567)\n• Use standard formats (e.g., (555) 123-4567)\n• Specify country code parameter if needed\n• Examples: "+1-555-123-4567", "555-123-4567" with countryCode="US"`, }, ], }; } }); }