UNPKG

@takashito/linode-mcp-server

Version:

MCP server for Linode API

432 lines 19.5 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.registerAccountTools = registerAccountTools; const client_1 = require("../../client"); const schemas = __importStar(require("./schemas")); const errorHandler_1 = require("../common/errorHandler"); function registerAccountTools(server, client) { // Account operations server.addTool({ name: 'get_account', description: 'Get your account information', parameters: schemas.getAccountSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getAccount(); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'update_account', description: 'Update your account information', parameters: schemas.updateAccountSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.updateAccount(params); return JSON.stringify(result, null, 2); }) }); // Agreements operations server.addTool({ name: 'list_agreements', description: 'List legal agreements', parameters: schemas.listAgreementsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getAgreements(); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'acknowledge_agreements', description: 'Acknowledge legal agreements', parameters: schemas.acknowledgeAgreementsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { await (0, client_1.createClient)(context, server).account.acknowledgeAgreements(params); return JSON.stringify({ success: true }, null, 2); }) }); // Service availability operations server.addTool({ name: 'list_available_services', description: 'List available services by region', parameters: schemas.listServiceAvailabilitySchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getServiceAvailability(); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'get_region_service_availability', description: 'Get service availability for a specific region', parameters: schemas.getRegionServiceAvailabilitySchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getRegionServiceAvailability(params.regionId); return JSON.stringify(result, null, 2); }) }); // Account cancellation server.addTool({ name: 'cancel_account', description: 'Cancel your account', parameters: schemas.cancelAccountSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { await (0, client_1.createClient)(context, server).account.cancelAccount(params); return JSON.stringify({ success: true }, null, 2); }) }); // Child account operations server.addTool({ name: 'list_child_accounts', description: 'List child accounts', parameters: schemas.listChildAccountsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const paginationParams = { page: params.page, page_size: params.page_size }; const result = await (0, client_1.createClient)(context, server).account.getChildAccounts(paginationParams); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'get_child_account', description: 'Get a child account', parameters: schemas.getChildAccountSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getChildAccount(params.euuid); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'create_proxy_token', description: 'Create a proxy user token for a child account', parameters: schemas.createProxyTokenSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const { euuid, ...data } = params; const result = await (0, client_1.createClient)(context, server).account.createProxyToken(euuid, data); return JSON.stringify(result, null, 2); }) }); // Event operations server.addTool({ name: 'list_events', description: 'List account events', parameters: schemas.listEventsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const paginationParams = { page: params.page, page_size: params.page_size }; const result = await (0, client_1.createClient)(context, server).account.getEvents(paginationParams); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'get_event', description: 'Get a specific event', parameters: schemas.getEventSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getEvent(params.eventId); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'mark_event_as_read', description: 'Mark an event as read', parameters: schemas.markEventAsReadSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { await (0, client_1.createClient)(context, server).account.markEventAsRead(params.eventId); return JSON.stringify({ success: true }, null, 2); }) }); server.addTool({ name: 'mark_event_as_seen', description: 'Mark an event as seen', parameters: schemas.markEventAsSeenSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { await (0, client_1.createClient)(context, server).account.markEventAsSeen(params.eventId); return JSON.stringify({ success: true }, null, 2); }) }); // Invoice operations server.addTool({ name: 'list_invoices', description: 'List invoices', parameters: schemas.listInvoicesSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const paginationParams = { page: params.page, page_size: params.page_size }; const result = await (0, client_1.createClient)(context, server).account.getInvoices(paginationParams); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'get_invoice', description: 'Get a specific invoice', parameters: schemas.getInvoiceSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getInvoice(params.invoiceId); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'list_invoice_items', description: 'List items for a specific invoice', parameters: schemas.listInvoiceItemsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const { invoiceId, ...paginationParams } = params; const result = await (0, client_1.createClient)(context, server).account.getInvoiceItems(invoiceId, paginationParams); return JSON.stringify(result, null, 2); }) }); // Login operations server.addTool({ name: 'list_account_logins', description: 'List account logins', parameters: schemas.listAccountLoginsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const paginationParams = { page: params.page, page_size: params.page_size }; const result = await (0, client_1.createClient)(context, server).account.getLogins(paginationParams); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'get_account_login', description: 'Get a specific account login', parameters: schemas.getAccountLoginSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getLogin(params.loginId); return JSON.stringify(result, null, 2); }) }); // Maintenance operations server.addTool({ name: 'list_maintenances', description: 'List maintenance events', parameters: schemas.listMaintenancesSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const paginationParams = { page: params.page, page_size: params.page_size }; const result = await (0, client_1.createClient)(context, server).account.getMaintenances(paginationParams); return JSON.stringify(result, null, 2); }) }); // Notification operations server.addTool({ name: 'list_notifications', description: 'List notifications', parameters: schemas.listNotificationsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getNotifications(); return JSON.stringify(result, null, 2); }) }); // OAuth client operations server.addTool({ name: 'list_oauth_clients', description: 'List OAuth clients', parameters: schemas.listOAuthClientsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const paginationParams = { page: params.page, page_size: params.page_size }; const result = await (0, client_1.createClient)(context, server).account.getOAuthClients(paginationParams); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'create_oauth_client', description: 'Create an OAuth client', parameters: schemas.createOAuthClientSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.createOAuthClient(params); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'get_oauth_client', description: 'Get an OAuth client', parameters: schemas.getOAuthClientSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getOAuthClient(params.clientId); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'update_oauth_client', description: 'Update an OAuth client', parameters: schemas.updateOAuthClientSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const { clientId, ...data } = params; const result = await (0, client_1.createClient)(context, server).account.updateOAuthClient(clientId, data); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'delete_oauth_client', description: 'Delete an OAuth client', parameters: schemas.deleteOAuthClientSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { await (0, client_1.createClient)(context, server).account.deleteOAuthClient(params.clientId); return JSON.stringify({ success: true }, null, 2); }) }); server.addTool({ name: 'reset_oauth_client_secret', description: 'Reset an OAuth client secret', parameters: schemas.resetOAuthClientSecretSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.resetOAuthClientSecret(params.clientId); return JSON.stringify(result, null, 2); }) }); // Account settings operations server.addTool({ name: 'get_account_settings', description: 'Get account settings', parameters: schemas.getAccountSettingsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getAccountSettings(); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'update_account_settings', description: 'Update account settings', parameters: schemas.updateAccountSettingsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.updateAccountSettings(params); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'enable_managed_service', description: 'Enable Linode Managed service', parameters: schemas.enableManagedServiceSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { await (0, client_1.createClient)(context, server).account.enableManagedService(); return JSON.stringify({ success: true }, null, 2); }) }); // Network transfer operations server.addTool({ name: 'get_account_network_transfer', description: 'Get network transfer information for the entire account', parameters: schemas.getAccountNetworkTransferSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getNetworkTransfer(); return JSON.stringify(result, null, 2); }) }); // User operations server.addTool({ name: 'list_users', description: 'List users', parameters: schemas.listUsersSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const paginationParams = { page: params.page, page_size: params.page_size }; const result = await (0, client_1.createClient)(context, server).account.getUsers(paginationParams); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'create_user', description: 'Create a user', parameters: schemas.createUserSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.createUser(params); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'get_user', description: 'Get a user', parameters: schemas.getUserSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getUser(params.username); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'update_user', description: 'Update a user', parameters: schemas.updateUserSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const { username, ...data } = params; const result = await (0, client_1.createClient)(context, server).account.updateUser(username, data); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'delete_user', description: 'Delete a user', parameters: schemas.deleteUserSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { await (0, client_1.createClient)(context, server).account.deleteUser(params.username); return JSON.stringify({ success: true }, null, 2); }) }); server.addTool({ name: 'get_user_grants', description: 'Get a user\'s grants', parameters: schemas.getUserGrantsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const result = await (0, client_1.createClient)(context, server).account.getUserGrants(params.username); return JSON.stringify(result, null, 2); }) }); server.addTool({ name: 'update_user_grants', description: 'Update a user\'s grants', parameters: schemas.updateUserGrantsSchema, execute: (0, errorHandler_1.withErrorHandling)(async (params, context) => { const { username, ...data } = params; const updateData = data; // Type assertion to resolve the type mismatch const result = await (0, client_1.createClient)(context, server).account.updateUserGrants(username, updateData); return JSON.stringify(result, null, 2); }) }); } //# sourceMappingURL=tools.js.map