@takashito/linode-mcp-server
Version:
MCP server for Linode API
254 lines • 11.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createInstancesClient = createInstancesClient;
function createInstancesClient(axios) {
return {
// Instance operations
getLinodes: async (params) => {
const response = await axios.get('/linode/instances', { params });
return response.data;
},
getLinodeById: async (id) => {
const response = await axios.get(`/linode/instances/${id}`);
return response.data;
},
createLinode: async (data) => {
const response = await axios.post('/linode/instances', data);
return response.data;
},
updateLinode: async (id, data) => {
const response = await axios.put(`/linode/instances/${id}`, data);
return response.data;
},
deleteLinode: async (id) => {
const response = await axios.delete(`/linode/instances/${id}`);
return response.data;
},
bootLinode: async (id, configId) => {
const data = configId ? { config_id: configId } : {};
const response = await axios.post(`/linode/instances/${id}/boot`, data);
return response.data;
},
rebootLinode: async (id, configId) => {
const data = configId ? { config_id: configId } : {};
const response = await axios.post(`/linode/instances/${id}/reboot`, data);
return response.data;
},
shutdownLinode: async (id) => {
const response = await axios.post(`/linode/instances/${id}/shutdown`);
return response.data;
},
resizeLinode: async (id, data) => {
const response = await axios.post(`/linode/instances/${id}/resize`, data);
return response.data;
},
cloneLinode: async (id, data) => {
const response = await axios.post(`/linode/instances/${id}/clone`, data);
return response.data;
},
rebuildLinode: async (id, data) => {
const response = await axios.post(`/linode/instances/${id}/rebuild`, data);
return response.data;
},
rescueLinode: async (id, devices) => {
const response = await axios.post(`/linode/instances/${id}/rescue`, { devices });
return response.data;
},
migrateLinode: async (id, data) => {
const response = await axios.post(`/linode/instances/${id}/migrate`, data || {});
return response.data;
},
mutateLinode: async (id) => {
const response = await axios.post(`/linode/instances/${id}/mutate`);
return response.data;
},
resetRootPassword: async (id, data) => {
const response = await axios.post(`/linode/instances/${id}/password`, data);
return response.data;
},
// Config operations
getLinodeConfigs: async (linodeId, params) => {
const response = await axios.get(`/linode/instances/${linodeId}/configs`, { params });
return response.data;
},
getLinodeConfig: async (linodeId, configId) => {
const response = await axios.get(`/linode/instances/${linodeId}/configs/${configId}`);
return response.data;
},
createLinodeConfig: async (linodeId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/configs`, data);
return response.data;
},
updateLinodeConfig: async (linodeId, configId, data) => {
const response = await axios.put(`/linode/instances/${linodeId}/configs/${configId}`, data);
return response.data;
},
deleteLinodeConfig: async (linodeId, configId) => {
const response = await axios.delete(`/linode/instances/${linodeId}/configs/${configId}`);
return response.data;
},
// Disk operations
getLinodeDisks: async (linodeId, params) => {
const response = await axios.get(`/linode/instances/${linodeId}/disks`, { params });
return response.data;
},
getLinodeDisk: async (linodeId, diskId) => {
const response = await axios.get(`/linode/instances/${linodeId}/disks/${diskId}`);
return response.data;
},
createLinodeDisk: async (linodeId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/disks`, data);
return response.data;
},
updateLinodeDisk: async (linodeId, diskId, data) => {
const response = await axios.put(`/linode/instances/${linodeId}/disks/${diskId}`, data);
return response.data;
},
deleteLinodeDisk: async (linodeId, diskId) => {
const response = await axios.delete(`/linode/instances/${linodeId}/disks/${diskId}`);
return response.data;
},
resizeLinodeDisk: async (linodeId, diskId, size) => {
const response = await axios.post(`/linode/instances/${linodeId}/disks/${diskId}/resize`, { size });
return response.data;
},
cloneDisk: async (linodeId, diskId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/disks/${diskId}/clone`, data || {});
return response.data;
},
resetDiskPassword: async (linodeId, diskId, password) => {
const response = await axios.post(`/linode/instances/${linodeId}/disks/${diskId}/password`, { password });
return response.data;
},
// Kernel operations
getKernels: async (params) => {
const response = await axios.get('/linode/kernels', { params });
return response.data;
},
getKernelById: async (id) => {
const response = await axios.get(`/linode/kernels/${id}`);
return response.data;
},
// Instance Type operations
getTypes: async (params) => {
const response = await axios.get('/linode/types', { params });
return response.data;
},
getType: async (id) => {
const response = await axios.get(`/linode/types/${id}`);
return response.data;
},
// Backup operations
getBackups: async (linodeId) => {
const response = await axios.get(`/linode/instances/${linodeId}/backups`);
return response.data;
},
getBackup: async (linodeId, backupId) => {
const response = await axios.get(`/linode/instances/${linodeId}/backups/${backupId}`);
return response.data;
},
createSnapshot: async (linodeId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/backups`, data);
return response.data;
},
cancelBackups: async (linodeId) => {
const response = await axios.post(`/linode/instances/${linodeId}/backups/cancel`);
return response.data;
},
enableBackups: async (linodeId) => {
const response = await axios.post(`/linode/instances/${linodeId}/backups/enable`);
return response.data;
},
restoreBackup: async (linodeId, backupId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/backups/${backupId}/restore`, data || {});
return response.data;
},
// IP operations
getLinodeIPs: async (linodeId) => {
const response = await axios.get(`/linode/instances/${linodeId}/ips`);
return response.data;
},
allocateIP: async (linodeId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/ips`, data);
return response.data;
},
getLinodeIP: async (linodeId, address) => {
const response = await axios.get(`/linode/instances/${linodeId}/ips/${address}`);
return response.data;
},
updateLinodeIP: async (linodeId, address, data) => {
const response = await axios.put(`/linode/instances/${linodeId}/ips/${address}`, data);
return response.data;
},
deleteLinodeIP: async (linodeId, address) => {
const response = await axios.delete(`/linode/instances/${linodeId}/ips/${address}`);
return response.data;
},
// Firewall operations
getLinodeFirewalls: async (linodeId, params) => {
const response = await axios.get(`/linode/instances/${linodeId}/firewalls`, { params });
return response.data;
},
applyFirewalls: async (linodeId) => {
const response = await axios.post(`/linode/instances/${linodeId}/firewalls/apply`);
return response.data;
},
updateLinodeFirewalls: async (linodeId, data) => {
const response = await axios.put(`/linode/instances/${linodeId}/firewalls`, data);
return response.data;
},
// Stat operations
getLinodeStats: async (id) => {
const response = await axios.get(`/linode/instances/${id}/stats`);
return response.data;
},
getLinodeStatsByDate: async (id, year, month) => {
const response = await axios.get(`/linode/instances/${id}/stats/${year}/${month}`);
return response.data;
},
getNetworkTransfer: async (id) => {
const response = await axios.get(`/linode/instances/${id}/transfer`);
return response.data;
},
getMonthlyTransfer: async (id, year, month) => {
const response = await axios.get(`/linode/instances/${id}/transfer/${year}/${month}`);
return response.data;
},
// Config Interface operations
getConfigInterfaces: async (linodeId, configId) => {
const response = await axios.get(`/linode/instances/${linodeId}/configs/${configId}/interfaces`);
return response.data;
},
getConfigInterface: async (linodeId, configId, interfaceId) => {
const response = await axios.get(`/linode/instances/${linodeId}/configs/${configId}/interfaces/${interfaceId}`);
return response.data;
},
createConfigInterface: async (linodeId, configId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/configs/${configId}/interfaces`, data);
return response.data;
},
updateConfigInterface: async (linodeId, configId, interfaceId, data) => {
const response = await axios.put(`/linode/instances/${linodeId}/configs/${configId}/interfaces/${interfaceId}`, data);
return response.data;
},
deleteConfigInterface: async (linodeId, configId, interfaceId) => {
const response = await axios.delete(`/linode/instances/${linodeId}/configs/${configId}/interfaces/${interfaceId}`);
return response.data;
},
reorderConfigInterfaces: async (linodeId, configId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/configs/${configId}/interfaces/order`, data);
return response.data;
},
// NodeBalancer operations
getLinodeNodeBalancers: async (linodeId, params) => {
const response = await axios.get(`/linode/instances/${linodeId}/nodebalancers`, { params });
return response.data;
},
// Volume operations
getLinodeVolumes: async (linodeId, params) => {
const response = await axios.get(`/linode/instances/${linodeId}/volumes`, { params });
return response.data;
}
};
}
//# sourceMappingURL=instances.js.map