UNPKG

@sinch/mcp

Version:

Sinch MCP server

42 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listAvailableRegionsHandler = exports.registerListAvailableRegions = void 0; const zod_1 = require("zod"); const types_1 = require("../../types"); const utils_1 = require("../../utils"); const numbers_tools_helper_1 = require("./utils/numbers-tools-helper"); const numbers_service_helper_1 = require("./utils/numbers-service-helper"); const TOOL_KEY = 'listAvailableRegions'; const TOOL_NAME = (0, numbers_tools_helper_1.getToolName)(TOOL_KEY); const registerListAvailableRegions = (server, tags) => { if (!(0, utils_1.matchesAnyTag)(tags, numbers_tools_helper_1.toolsConfig[TOOL_KEY].tags)) return; server.tool(TOOL_NAME, 'Lists all regions for numbers provided for the project ID.', { types: zod_1.z.array(zod_1.z.enum(['MOBILE', 'LOCAL', 'TOLL_FREE'])).optional().describe('Only return regions for which numbers are provided with the given types: MOBILE, LOCAL or TOLL_FREE.'), }, exports.listAvailableRegionsHandler); }; exports.registerListAvailableRegions = registerListAvailableRegions; const listAvailableRegionsHandler = async ({ types }) => { const maybeService = (0, numbers_service_helper_1.getNumbersService)(TOOL_NAME); if ((0, utils_1.isPromptResponse)(maybeService)) { return maybeService.promptResponse; } const numbersService = maybeService; try { const response = await numbersService.availableRegions.list({ types }); return new types_1.PromptResponse(JSON.stringify({ success: true, data: response.availableRegions })).promptResponse; } catch (error) { return new types_1.PromptResponse(JSON.stringify({ success: false, error: (error instanceof Error ? error.message : String(error)) })).promptResponse; } }; exports.listAvailableRegionsHandler = listAvailableRegionsHandler; //# sourceMappingURL=list-available-regions.js.map