UNPKG

it-tools-mcp

Version:

Full MCP 2025-06-18 compliant server with 121+ IT tools, logging, ping, progress tracking, cancellation, and sampling utilities

60 lines (59 loc) 2.23 kB
import { z } from "zod"; export function registerTextToUnicode(server) { server.registerTool("convert_text_to_unicode", { description: "Convert text to Unicode code points and vice versa", inputSchema: { input: z.string().describe("Text to convert to Unicode or Unicode to convert to text"), operation: z.enum(["encode", "decode"]).describe("Operation: encode text to Unicode or decode Unicode to text"), }, // VS Code compliance annotations annotations: { title: "Convert Text To Unicode", description: "Convert text to Unicode code points and vice versa", readOnlyHint: false } }, async ({ input, operation }) => { try { if (operation === "encode") { const unicode = input .split('') .map(char => `U+${char.charCodeAt(0).toString(16).toUpperCase().padStart(4, '0')}`) .join(' '); return { content: [ { type: "text", text: `Text: ${input}\nUnicode: ${unicode}`, }, ], }; } else { // Decode Unicode to text const unicodePattern = /U\+([0-9A-Fa-f]{4,6})/g; const text = input.replace(unicodePattern, (match, hex) => { const decimal = parseInt(hex, 16); return String.fromCharCode(decimal); }); return { content: [ { type: "text", text: `Unicode: ${input}\nText: ${text}`, }, ], }; } } catch (error) { return { content: [ { type: "text", text: `Error converting text/Unicode: ${error instanceof Error ? error.message : 'Unknown error'}`, }, ], }; } }); }