Skip to main content
Glama

DigitalOcean MCP Server

snapshots.goβ€’2.61 kB
package handlers import ( "context" "fmt" "github.com/digitalocean/godo" mcp_golang "github.com/metoro-io/mcp-golang" ) func (h *Handler) ListSnapshots(resourceType string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() listOptions := &godo.ListOptions{} snapshots, _, err := client.Snapshots.List(context.Background(), listOptions) if err != nil { return h.HandleError(err, "list_snapshots") } // Filter by resource type if specified if resourceType != "" { var filteredSnapshots []godo.Snapshot for _, snapshot := range snapshots { if snapshot.ResourceType == resourceType { filteredSnapshots = append(filteredSnapshots, snapshot) } } return h.HandleSuccess(filteredSnapshots, "list_snapshots") } return h.HandleSuccess(snapshots, "list_snapshots") } func (h *Handler) ListVolumeSnapshots() (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() snapshots, _, err := client.Snapshots.ListVolume(context.Background(), &godo.ListOptions{}) if err != nil { return h.HandleError(err, "list_volume_snapshots") } return h.HandleSuccess(snapshots, "list_volume_snapshots") } func (h *Handler) ListDropletSnapshots() (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() snapshots, _, err := client.Snapshots.ListDroplet(context.Background(), &godo.ListOptions{}) if err != nil { return h.HandleError(err, "list_droplet_snapshots") } return h.HandleSuccess(snapshots, "list_droplet_snapshots") } func (h *Handler) GetSnapshot(snapshotID string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() snapshot, _, err := client.Snapshots.Get(context.Background(), snapshotID) if err != nil { return h.HandleError(err, "get_snapshot") } return h.HandleSuccess(snapshot, "get_snapshot") } func (h *Handler) DeleteSnapshot(snapshotID string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() _, err := client.Snapshots.Delete(context.Background(), snapshotID) if err != nil { return h.HandleError(err, "delete_snapshot") } return h.HandleSuccess(map[string]string{ "status": "success", "message": fmt.Sprintf("Snapshot %s deleted successfully", snapshotID), }, "delete_snapshot") } func (h *Handler) CreateDropletSnapshot(dropletID int, name string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() action, _, err := client.DropletActions.Snapshot(context.Background(), dropletID, name) if err != nil { return h.HandleError(err, "create_droplet_snapshot") } return h.HandleSuccess(action, "create_droplet_snapshot") }

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