Skip to main content
Glama

DigitalOcean MCP Server

floating_ips.goβ€’2.53 kB
package handlers import ( "context" "fmt" "github.com/digitalocean/godo" mcp_golang "github.com/metoro-io/mcp-golang" ) func (h *Handler) ListFloatingIPs() (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() floatingIPs, _, err := client.FloatingIPs.List(context.Background(), &godo.ListOptions{}) if err != nil { return h.HandleError(err, "list_floating_ips") } return h.HandleSuccess(floatingIPs, "list_floating_ips") } func (h *Handler) GetFloatingIP(ip string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() floatingIP, _, err := client.FloatingIPs.Get(context.Background(), ip) if err != nil { return h.HandleError(err, "get_floating_ip") } return h.HandleSuccess(floatingIP, "get_floating_ip") } func (h *Handler) CreateFloatingIP(region string, dropletID int) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() var createRequest *godo.FloatingIPCreateRequest if dropletID > 0 { // Assign to specific droplet createRequest = &godo.FloatingIPCreateRequest{ DropletID: dropletID, } } else { // Create reserved floating IP for region createRequest = &godo.FloatingIPCreateRequest{ Region: region, } } floatingIP, _, err := client.FloatingIPs.Create(context.Background(), createRequest) if err != nil { return h.HandleError(err, "create_floating_ip") } return h.HandleSuccess(floatingIP, "create_floating_ip") } func (h *Handler) DeleteFloatingIP(ip string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() _, err := client.FloatingIPs.Delete(context.Background(), ip) if err != nil { return h.HandleError(err, "delete_floating_ip") } return h.HandleSuccess(map[string]string{ "status": "success", "message": fmt.Sprintf("Floating IP %s deleted successfully", ip), }, "delete_floating_ip") } func (h *Handler) AssignFloatingIP(ip string, dropletID int) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() action, _, err := client.FloatingIPActions.Assign(context.Background(), ip, dropletID) if err != nil { return h.HandleError(err, "assign_floating_ip") } return h.HandleSuccess(action, "assign_floating_ip") } func (h *Handler) UnassignFloatingIP(ip string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() action, _, err := client.FloatingIPActions.Unassign(context.Background(), ip) if err != nil { return h.HandleError(err, "unassign_floating_ip") } return h.HandleSuccess(action, "unassign_floating_ip") }

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