@sinch/mcp
Version:
Sinch MCP server
42 lines • 2.01 kB
JavaScript
;
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