@takashito/linode-mcp-server
Version:
MCP server for Linode API
204 lines • 9.12 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createNetworkingClient = createNetworkingClient;
function createNetworkingClient(axios) {
return {
// IP Address operations
getIPAddresses: async () => {
const response = await axios.get('/networking/ips');
return response.data;
},
getIPAddress: async (address) => {
const response = await axios.get(`/networking/ips/${address}`);
return response.data;
},
updateIPAddress: async (address, data) => {
const response = await axios.put(`/networking/ips/${address}`, data);
return response.data;
},
allocateIPAddress: async (data) => {
const response = await axios.post('/networking/ips', data);
return response.data;
},
shareIPAddresses: async (data) => {
const response = await axios.post('/networking/ips/share', data);
return response.data;
},
// IPv6 operations
getIPv6Ranges: async () => {
const response = await axios.get('/networking/ipv6/ranges');
return response.data;
},
getIPv6Range: async (range) => {
const response = await axios.get(`/networking/ipv6/ranges/${range}`);
return response.data;
},
getIPv6Pools: async () => {
const response = await axios.get('/networking/ipv6/pools');
return response.data;
},
// Firewall operations
getFirewalls: async (params) => {
const response = await axios.get('/networking/firewalls', { params });
return response.data;
},
getFirewall: async (id) => {
const response = await axios.get(`/networking/firewalls/${id}`);
return response.data;
},
createFirewall: async (data) => {
// Ensure inbound_policy and outbound_policy are provided
if (!data.rules.inbound_policy) {
data.rules.inbound_policy = 'DROP';
}
if (!data.rules.outbound_policy) {
data.rules.outbound_policy = 'ACCEPT';
}
const response = await axios.post('/networking/firewalls', data);
return response.data;
},
updateFirewall: async (id, data) => {
const response = await axios.put(`/networking/firewalls/${id}`, data);
return response.data;
},
deleteFirewall: async (id) => {
const response = await axios.delete(`/networking/firewalls/${id}`);
return response.data;
},
getFirewallDevices: async (firewallId) => {
const response = await axios.get(`/networking/firewalls/${firewallId}/devices`);
return response.data;
},
createFirewallDevice: async (firewallId, data) => {
const response = await axios.post(`/networking/firewalls/${firewallId}/devices`, data);
return response.data;
},
deleteFirewallDevice: async (firewallId, deviceId) => {
const response = await axios.delete(`/networking/firewalls/${firewallId}/devices/${deviceId}`);
return response.data;
},
getFirewallRules: async (firewallId) => {
const response = await axios.get(`/networking/firewalls/${firewallId}/rules`);
return response.data;
},
updateFirewallRules: async (firewallId, data) => {
const response = await axios.put(`/networking/firewalls/${firewallId}/rules`, data);
return response.data;
},
// VLAN operations
getVLANs: async (params) => {
const response = await axios.get('/networking/vlans', { params });
return response.data;
},
getVLAN: async (regionId, label) => {
const response = await axios.get(`/networking/vlans/${regionId}/${label}`);
return response.data;
},
deleteVLAN: async (regionId, label) => {
const response = await axios.delete(`/networking/vlans/${regionId}/${label}`);
return response.data;
},
// Get a specific firewall device
getFirewallDevice: async (firewallId, deviceId) => {
const response = await axios.get(`/networking/firewalls/${firewallId}/devices/${deviceId}`);
return response.data;
},
// Firewall history operations
getFirewallHistory: async (firewallId, params) => {
const response = await axios.get(`/networking/firewalls/${firewallId}/history`, { params });
return response.data;
},
getFirewallRuleVersion: async (firewallId, version) => {
const response = await axios.get(`/networking/firewalls/${firewallId}/history/rules/${version}`);
return response.data;
},
// Firewall settings operations
getFirewallSettings: async () => {
const response = await axios.get('/networking/firewalls/settings');
return response.data;
},
updateFirewallSettings: async (data) => {
const response = await axios.put('/networking/firewalls/settings', data);
return response.data;
},
// Firewall template operations
getFirewallTemplates: async () => {
const response = await axios.get('/networking/firewalls/templates');
return response.data;
},
getFirewallTemplate: async (slug) => {
const response = await axios.get(`/networking/firewalls/templates/${slug}`);
return response.data;
},
// IP assignment operations
assignIPs: async (data) => {
const response = await axios.post('/networking/ips/assign', data);
return response.data;
},
// IPv4 operations
assignIPv4Addresses: async (data) => {
const response = await axios.post('/networking/ipv4/assign', data);
return response.data;
},
shareIPv4Addresses: async (data) => {
const response = await axios.post('/networking/ipv4/share', data);
return response.data;
},
// IPv6 range operations
createIPv6Range: async (data) => {
const response = await axios.post('/networking/ipv6/ranges', data);
return response.data;
},
deleteIPv6Range: async (range) => {
const response = await axios.delete(`/networking/ipv6/ranges/${range}`);
return response.data;
},
// Network Transfer Prices operations
getNetworkTransferPrices: async () => {
const response = await axios.get('/network-transfer/prices');
return response.data;
},
// Linode Interface operations
getLinodeInterfaces: async (linodeId) => {
const response = await axios.get(`/linode/instances/${linodeId}/interfaces`);
return response.data;
},
getLinodeInterface: async (linodeId, interfaceId) => {
const response = await axios.get(`/linode/instances/${linodeId}/interfaces/${interfaceId}`);
return response.data;
},
createLinodeInterface: async (linodeId, data) => {
const response = await axios.post(`/linode/instances/${linodeId}/interfaces`, data);
return response.data;
},
updateLinodeInterface: async (linodeId, interfaceId, data) => {
const response = await axios.put(`/linode/instances/${linodeId}/interfaces/${interfaceId}`, data);
return response.data;
},
deleteLinodeInterface: async (linodeId, interfaceId) => {
const response = await axios.delete(`/linode/instances/${linodeId}/interfaces/${interfaceId}`);
return response.data;
},
getLinodeInterfaceHistory: async (linodeId, params) => {
const response = await axios.get(`/linode/instances/${linodeId}/interfaces/history`, { params });
return response.data;
},
getLinodeInterfaceSettings: async (linodeId) => {
const response = await axios.get(`/linode/instances/${linodeId}/interfaces/settings`);
return response.data;
},
updateLinodeInterfaceSettings: async (linodeId, data) => {
const response = await axios.put(`/linode/instances/${linodeId}/interfaces/settings`, data);
return response.data;
},
getLinodeInterfaceFirewalls: async (linodeId, interfaceId) => {
const response = await axios.get(`/linode/instances/${linodeId}/interfaces/${interfaceId}/firewalls`);
return response.data;
},
upgradeLinodeInterfaces: async (linodeId) => {
const response = await axios.post(`/linode/instances/${linodeId}/upgrade-interfaces`);
return response.data;
}
};
}
//# sourceMappingURL=networking.js.map