UNPKG

@takashito/linode-mcp-server

Version:

MCP server for Linode API

58 lines (57 loc) 1.76 kB
import { AxiosInstance } from 'axios'; import { PaginatedResponse, PaginationParams } from './common'; export interface Volume { id: number; label: string; status: string; region: string; size: number; linode_id: number | null; created: string; updated: string; filesystem_path: string; tags: string[]; } export interface VolumeType { id: string; label: string; region: string; minimum: number; maximum: number; } export interface CreateVolumeRequest { label: string; size: number; region?: string; linode_id?: number; config_id?: number; tags?: string[]; encryption?: 'enabled' | 'disabled'; } export interface UpdateVolumeRequest { label?: string; tags?: string[]; } export interface AttachVolumeRequest { linode_id: number; config_id?: number; } export interface ResizeVolumeRequest { size: number; } export interface CloneVolumeRequest { label: string; } export interface LinodeVolumesClient { getVolumes: (params?: PaginationParams) => Promise<PaginatedResponse<Volume>>; getVolumeById: (id: number) => Promise<Volume>; createVolume: (data: CreateVolumeRequest) => Promise<Volume>; updateVolume: (id: number, data: UpdateVolumeRequest) => Promise<Volume>; deleteVolume: (id: number) => Promise<{}>; attachVolume: (id: number, data: AttachVolumeRequest) => Promise<{}>; detachVolume: (id: number) => Promise<{}>; resizeVolume: (id: number, data: ResizeVolumeRequest) => Promise<{}>; cloneVolume: (id: number, data: CloneVolumeRequest) => Promise<Volume>; getVolumeTypes: () => Promise<PaginatedResponse<VolumeType>>; } export declare function createVolumesClient(axios: AxiosInstance): LinodeVolumesClient;