Skip to main content
Glama
rohit-kaundal

DigitalOcean MCP Server

args.go12.3 kB
package types import "github.com/digitalocean/godo" type EmptyArgs struct{} type ListDropletsArgs struct { Page int `json:"page" jsonschema:"description=Page number to retrieve (starting from 1),default=1"` PerPage int `json:"per_page" jsonschema:"description=Number of items per page (1-200),default=25"` } type GetDropletArgs struct { DropletID int `json:"droplet_id" jsonschema:"description=ID of the droplet to retrieve"` } type CreateDropletArgs struct { Name string `json:"name" jsonschema:"description=Name of the droplet"` Region string `json:"region" jsonschema:"description=Region slug (e.g., 'nyc3', 'sfo2')"` Size string `json:"size" jsonschema:"description=Size slug (e.g., 's-1vcpu-1gb')"` Image string `json:"image" jsonschema:"description=Image slug (e.g., 'ubuntu-22-04-x64')"` } type DeleteDropletArgs struct { DropletID int `json:"droplet_id" jsonschema:"description=ID of the droplet to delete"` } type ResizeDropletArgs struct { DropletID int `json:"droplet_id" jsonschema:"description=ID of the droplet to resize"` Size string `json:"size" jsonschema:"description=New size slug (e.g., 's-2vcpu-2gb')"` Disk bool `json:"disk" jsonschema:"description=Whether to resize disk (permanent, cannot be undone),default=false"` } type CreateDropletSnapshotArgs struct { DropletID int `json:"droplet_id" jsonschema:"description=ID of the droplet to snapshot"` Name string `json:"name" jsonschema:"description=Name for the snapshot"` } type GetRegistryArgs struct { RegistryName string `json:"registry_name" jsonschema:"description=Name of the registry"` } type GetK8SClusterArgs struct { ClusterID string `json:"cluster_id" jsonschema:"description=ID of the cluster"` } type CreateK8SClusterArgs struct { Name string `json:"name" jsonschema:"description=Name of the cluster"` Region string `json:"region" jsonschema:"description=Region slug (e.g., 'nyc3', 'sfo2')"` Version string `json:"version" jsonschema:"description=Kubernetes version (e.g., '1.28.2-do.0')"` NodePoolSize string `json:"node_pool_size" jsonschema:"description=Node pool size (e.g., 's-2vcpu-2gb')"` NodeCount int `json:"node_count" jsonschema:"description=Number of nodes in the pool"` } type DeleteK8SClusterArgs struct { ClusterID string `json:"cluster_id" jsonschema:"description=ID of the cluster to delete"` } // Volume-related args type ListVolumesArgs struct { Region string `json:"region,omitempty" jsonschema:"description=Filter volumes by region (optional)"` } type GetVolumeArgs struct { VolumeID string `json:"volume_id" jsonschema:"description=ID of the volume to retrieve"` } type CreateVolumeArgs struct { Name string `json:"name" jsonschema:"description=Name of the volume"` Region string `json:"region" jsonschema:"description=Region slug (e.g., 'nyc3', 'sfo2')"` SizeGigaBytes int64 `json:"size_gigabytes" jsonschema:"description=Size of the volume in gigabytes"` Description string `json:"description,omitempty" jsonschema:"description=Description of the volume (optional)"` } type DeleteVolumeArgs struct { VolumeID string `json:"volume_id" jsonschema:"description=ID of the volume to delete"` } type AttachVolumeArgs struct { VolumeID string `json:"volume_id" jsonschema:"description=ID of the volume to attach"` DropletID int `json:"droplet_id" jsonschema:"description=ID of the droplet to attach to"` } type DetachVolumeArgs struct { VolumeID string `json:"volume_id" jsonschema:"description=ID of the volume to detach"` DropletID int `json:"droplet_id" jsonschema:"description=ID of the droplet to detach from"` } type ResizeVolumeArgs struct { VolumeID string `json:"volume_id" jsonschema:"description=ID of the volume to resize"` SizeGigaBytes int64 `json:"size_gigabytes" jsonschema:"description=New size in gigabytes"` Region string `json:"region" jsonschema:"description=Region slug"` } type CreateVolumeSnapshotArgs struct { VolumeID string `json:"volume_id" jsonschema:"description=ID of the volume to snapshot"` Name string `json:"name" jsonschema:"description=Name for the snapshot"` Description string `json:"description,omitempty" jsonschema:"description=Description of the snapshot (optional)"` } // Snapshot-related args type ListSnapshotsArgs struct { ResourceType string `json:"resource_type,omitempty" jsonschema:"description=Filter by resource type: 'droplet' or 'volume' (optional)"` } type GetSnapshotArgs struct { SnapshotID string `json:"snapshot_id" jsonschema:"description=ID of the snapshot to retrieve"` } type DeleteSnapshotArgs struct { SnapshotID string `json:"snapshot_id" jsonschema:"description=ID of the snapshot to delete"` } // Image-related args type ListImagesArgs struct { Type string `json:"type,omitempty" jsonschema:"description=Image type: 'distribution', 'application', 'user' (optional)"` IsPublic bool `json:"is_public,omitempty" jsonschema:"description=Whether to include public images (optional)"` } type GetImageArgs struct { ImageID string `json:"image_id" jsonschema:"description=ID or slug of the image to retrieve"` } type UpdateImageArgs struct { ImageID string `json:"image_id" jsonschema:"description=ID of the image to update"` Name string `json:"name" jsonschema:"description=New name for the image"` } type DeleteImageArgs struct { ImageID string `json:"image_id" jsonschema:"description=ID of the image to delete"` } type TransferImageArgs struct { ImageID string `json:"image_id" jsonschema:"description=ID of the image to transfer"` RegionSlug string `json:"region_slug" jsonschema:"description=Region slug to transfer to"` } type ConvertImageToSnapshotArgs struct { ImageID string `json:"image_id" jsonschema:"description=ID of the image to convert"` } // Floating IP-related args type GetFloatingIPArgs struct { IP string `json:"ip" jsonschema:"description=Floating IP address"` } type CreateFloatingIPArgs struct { Region string `json:"region,omitempty" jsonschema:"description=Region slug for reserved IP (required if no droplet_id)"` DropletID int `json:"droplet_id,omitempty" jsonschema:"description=Droplet ID to assign to (optional)"` } type DeleteFloatingIPArgs struct { IP string `json:"ip" jsonschema:"description=Floating IP address to delete"` } type AssignFloatingIPArgs struct { IP string `json:"ip" jsonschema:"description=Floating IP address"` DropletID int `json:"droplet_id" jsonschema:"description=Droplet ID to assign to"` } type UnassignFloatingIPArgs struct { IP string `json:"ip" jsonschema:"description=Floating IP address to unassign"` } // Load Balancer-related args type GetLoadBalancerArgs struct { LoadBalancerID string `json:"load_balancer_id" jsonschema:"description=ID of the load balancer"` } type CreateLoadBalancerArgs struct { Name string `json:"name" jsonschema:"description=Name of the load balancer"` Algorithm string `json:"algorithm" jsonschema:"description=Load balancing algorithm: 'round_robin', 'least_connections'"` Region string `json:"region" jsonschema:"description=Region slug"` ForwardingRules []godo.ForwardingRule `json:"forwarding_rules" jsonschema:"description=Forwarding rules configuration"` DropletIDs []int `json:"droplet_ids,omitempty" jsonschema:"description=Droplet IDs to add (optional)"` } type UpdateLoadBalancerArgs struct { LoadBalancerID string `json:"load_balancer_id" jsonschema:"description=ID of the load balancer"` Name string `json:"name" jsonschema:"description=Name of the load balancer"` Algorithm string `json:"algorithm" jsonschema:"description=Load balancing algorithm"` Region string `json:"region" jsonschema:"description=Region slug"` ForwardingRules []godo.ForwardingRule `json:"forwarding_rules" jsonschema:"description=Forwarding rules configuration"` DropletIDs []int `json:"droplet_ids,omitempty" jsonschema:"description=Droplet IDs (optional)"` } type DeleteLoadBalancerArgs struct { LoadBalancerID string `json:"load_balancer_id" jsonschema:"description=ID of the load balancer to delete"` } type AddDropletsToLoadBalancerArgs struct { LoadBalancerID string `json:"load_balancer_id" jsonschema:"description=ID of the load balancer"` DropletIDs []int `json:"droplet_ids" jsonschema:"description=Droplet IDs to add"` } type RemoveDropletsFromLoadBalancerArgs struct { LoadBalancerID string `json:"load_balancer_id" jsonschema:"description=ID of the load balancer"` DropletIDs []int `json:"droplet_ids" jsonschema:"description=Droplet IDs to remove"` } type AddForwardingRulesToLoadBalancerArgs struct { LoadBalancerID string `json:"load_balancer_id" jsonschema:"description=ID of the load balancer"` ForwardingRules []godo.ForwardingRule `json:"forwarding_rules" jsonschema:"description=Forwarding rules to add"` } type RemoveForwardingRulesFromLoadBalancerArgs struct { LoadBalancerID string `json:"load_balancer_id" jsonschema:"description=ID of the load balancer"` ForwardingRules []godo.ForwardingRule `json:"forwarding_rules" jsonschema:"description=Forwarding rules to remove"` } // Firewall-related args type GetFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall"` } type CreateFirewallArgs struct { Name string `json:"name" jsonschema:"description=Name of the firewall"` InboundRules []godo.InboundRule `json:"inbound_rules" jsonschema:"description=Inbound rules configuration"` OutboundRules []godo.OutboundRule `json:"outbound_rules" jsonschema:"description=Outbound rules configuration"` DropletIDs []int `json:"droplet_ids,omitempty" jsonschema:"description=Droplet IDs to assign (optional)"` Tags []string `json:"tags,omitempty" jsonschema:"description=Tags to assign (optional)"` } type UpdateFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall"` Name string `json:"name" jsonschema:"description=Name of the firewall"` InboundRules []godo.InboundRule `json:"inbound_rules" jsonschema:"description=Inbound rules configuration"` OutboundRules []godo.OutboundRule `json:"outbound_rules" jsonschema:"description=Outbound rules configuration"` } type DeleteFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall to delete"` } type AddDropletsToFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall"` DropletIDs []int `json:"droplet_ids" jsonschema:"description=Droplet IDs to add"` } type RemoveDropletsFromFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall"` DropletIDs []int `json:"droplet_ids" jsonschema:"description=Droplet IDs to remove"` } type AddTagsToFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall"` Tags []string `json:"tags" jsonschema:"description=Tags to add"` } type RemoveTagsFromFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall"` Tags []string `json:"tags" jsonschema:"description=Tags to remove"` } type AddRulesToFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall"` InboundRules []godo.InboundRule `json:"inbound_rules,omitempty" jsonschema:"description=Inbound rules to add (optional)"` OutboundRules []godo.OutboundRule `json:"outbound_rules,omitempty" jsonschema:"description=Outbound rules to add (optional)"` } type RemoveRulesFromFirewallArgs struct { FirewallID string `json:"firewall_id" jsonschema:"description=ID of the firewall"` InboundRules []godo.InboundRule `json:"inbound_rules,omitempty" jsonschema:"description=Inbound rules to remove (optional)"` OutboundRules []godo.OutboundRule `json:"outbound_rules,omitempty" jsonschema:"description=Outbound rules to remove (optional)"` }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rohit-kaundal/digitalocean-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server