Skip to main content
Glama
rohit-kaundal

DigitalOcean MCP Server

load_balancers.go4.75 kB
package handlers import ( "context" "fmt" "github.com/digitalocean/godo" mcp_golang "github.com/metoro-io/mcp-golang" ) func (h *Handler) ListLoadBalancers() (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() loadBalancers, _, err := client.LoadBalancers.List(context.Background(), &godo.ListOptions{}) if err != nil { return h.HandleError(err, "list_load_balancers") } return h.HandleSuccess(loadBalancers, "list_load_balancers") } func (h *Handler) GetLoadBalancer(lbID string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() loadBalancer, _, err := client.LoadBalancers.Get(context.Background(), lbID) if err != nil { return h.HandleError(err, "get_load_balancer") } return h.HandleSuccess(loadBalancer, "get_load_balancer") } func (h *Handler) CreateLoadBalancer(name, algorithm, region string, forwardingRules []godo.ForwardingRule, dropletIDs []int) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() createRequest := &godo.LoadBalancerRequest{ Name: name, Algorithm: algorithm, Region: region, ForwardingRules: forwardingRules, DropletIDs: dropletIDs, RedirectHttpToHttps: false, EnableProxyProtocol: false, } loadBalancer, _, err := client.LoadBalancers.Create(context.Background(), createRequest) if err != nil { return h.HandleError(err, "create_load_balancer") } return h.HandleSuccess(loadBalancer, "create_load_balancer") } func (h *Handler) UpdateLoadBalancer(lbID, name, algorithm, region string, forwardingRules []godo.ForwardingRule, dropletIDs []int) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() updateRequest := &godo.LoadBalancerRequest{ Name: name, Algorithm: algorithm, Region: region, ForwardingRules: forwardingRules, DropletIDs: dropletIDs, } loadBalancer, _, err := client.LoadBalancers.Update(context.Background(), lbID, updateRequest) if err != nil { return h.HandleError(err, "update_load_balancer") } return h.HandleSuccess(loadBalancer, "update_load_balancer") } func (h *Handler) DeleteLoadBalancer(lbID string) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() _, err := client.LoadBalancers.Delete(context.Background(), lbID) if err != nil { return h.HandleError(err, "delete_load_balancer") } return h.HandleSuccess(map[string]string{ "status": "success", "message": fmt.Sprintf("Load balancer %s deleted successfully", lbID), }, "delete_load_balancer") } func (h *Handler) AddDropletsToLoadBalancer(lbID string, dropletIDs []int) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() _, err := client.LoadBalancers.AddDroplets(context.Background(), lbID, dropletIDs...) if err != nil { return h.HandleError(err, "add_droplets_to_load_balancer") } return h.HandleSuccess(map[string]string{ "status": "success", "message": fmt.Sprintf("Droplets added to load balancer %s successfully", lbID), }, "add_droplets_to_load_balancer") } func (h *Handler) RemoveDropletsFromLoadBalancer(lbID string, dropletIDs []int) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() _, err := client.LoadBalancers.RemoveDroplets(context.Background(), lbID, dropletIDs...) if err != nil { return h.HandleError(err, "remove_droplets_from_load_balancer") } return h.HandleSuccess(map[string]string{ "status": "success", "message": fmt.Sprintf("Droplets removed from load balancer %s successfully", lbID), }, "remove_droplets_from_load_balancer") } func (h *Handler) AddForwardingRulesToLoadBalancer(lbID string, forwardingRules []godo.ForwardingRule) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() _, err := client.LoadBalancers.AddForwardingRules(context.Background(), lbID, forwardingRules...) if err != nil { return h.HandleError(err, "add_forwarding_rules_to_load_balancer") } return h.HandleSuccess(map[string]string{ "status": "success", "message": fmt.Sprintf("Forwarding rules added to load balancer %s successfully", lbID), }, "add_forwarding_rules_to_load_balancer") } func (h *Handler) RemoveForwardingRulesFromLoadBalancer(lbID string, forwardingRules []godo.ForwardingRule) (*mcp_golang.ToolResponse, error) { client := h.doClient.GetClient() _, err := client.LoadBalancers.RemoveForwardingRules(context.Background(), lbID, forwardingRules...) if err != nil { return h.HandleError(err, "remove_forwarding_rules_from_load_balancer") } return h.HandleSuccess(map[string]string{ "status": "success", "message": fmt.Sprintf("Forwarding rules removed from load balancer %s successfully", lbID), }, "remove_forwarding_rules_from_load_balancer") }

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