Skip to main content
Glama

Agents Library MCP Server

manage_resource.sh4.26 kB
#!/usr/bin/env bash ################################################################################ # # Script Name: manage_resource.sh # ---------------- # Manages a specified cloud resource (create, delete, update). # # @author Nicholas Wilde, 0xb299a622 # @date 02 Sep 2025 # @version 0.1.0 # ################################################################################ set -o errexit set -o nounset set -o pipefail # --- Global Variables --- RESOURCE_TYPE="" ACTION="" RESOURCE_NAME="" CLOUD_PROVIDER="" REGION="" CONFIG_FILE="" TAGS="" # --- Functions --- # Function to display script usage usage() { echo "Usage: $0 --resource-type <type> --action <action> --resource-name <name> --cloud-provider <provider> [--region <region>] [--config-file <path>] [--tags <key=value,...>]" echo " --resource-type Type of resource (e.g., s3-bucket, ec2-instance, rds-database)." echo " --action Action to perform (create, delete, update)." echo " --resource-name Name of the resource." echo " --cloud-provider Cloud provider (e.g., aws, azure, gcp)." echo " --region (Optional) Cloud region. Defaults to provider's default." echo " --config-file (Optional) Path to a resource-specific configuration file." echo " --tags (Optional) Comma-separated key=value pairs for resource tags." exit 1 } # Function to parse command-line arguments parse_args() { while [[ "$#" -gt 0 ]]; do case "$1" in --resource-type) RESOURCE_TYPE="$2"; shift ;; --action) ACTION="$2"; shift ;; --resource-name) RESOURCE_NAME="$2"; shift ;; --cloud-provider) CLOUD_PROVIDER="$2"; shift ;; --region) REGION="$2"; shift ;; --config-file) CONFIG_FILE="$2"; shift ;; --tags) TAGS="$2"; shift ;; -h|--help) usage ;; *) echo "Unknown parameter passed: $1"; usage ;; esac shift done # Validate required arguments if [[ -z "$RESOURCE_TYPE" || -z "$ACTION" || -z "$RESOURCE_NAME" || -z "$CLOUD_PROVIDER" ]]; then echo "Error: Missing required arguments." usage fi # Validate action case "$ACTION" in create|delete|update) ;; *) echo "Error: Invalid action: $ACTION. Must be create, delete, or update."; usage ;; esac } # Function to manage AWS resources manage_aws_resource() { echo "Managing AWS $RESOURCE_TYPE '$RESOURCE_NAME' with action '$ACTION'..." # Add AWS-specific resource management logic here (e.g., aws s3api create-bucket) case "$RESOURCE_TYPE" in s3-bucket) if [[ "$ACTION" == "create" ]]; then echo "Creating S3 bucket: $RESOURCE_NAME" # aws s3api create-bucket --bucket "$RESOURCE_NAME" --region "$REGION" elif [[ "$ACTION" == "delete" ]]; then echo "Deleting S3 bucket: $RESOURCE_NAME" # aws s3api delete-bucket --bucket "$RESOURCE_NAME" fi ;; *) echo "Error: Unsupported AWS resource type: $RESOURCE_TYPE" exit 1 ;; esac echo "AWS resource management complete." } # Function to manage Azure resources manage_azure_resource() { echo "Managing Azure $RESOURCE_TYPE '$RESOURCE_NAME' with action '$ACTION'..." # Add Azure-specific resource management logic here (e.g., az storage account create) echo "Azure resource management complete." } # Function to manage GCP resources manage_gcp_resource() { echo "Managing GCP $RESOURCE_TYPE '$RESOURCE_NAME' with action '$ACTION'..." # Add GCP-specific resource management logic here (e.g., gcloud storage buckets create) echo "GCP resource management complete." } # --- Main Logic --- main() { parse_args "$@" echo "Starting resource management for '$RESOURCE_NAME' ($RESOURCE_TYPE) with action '$ACTION' on $CLOUD_PROVIDER." if [[ -n "$CONFIG_FILE" ]]; then echo "Using configuration file: $CONFIG_FILE" # Load configuration from file fi if [[ -n "$TAGS" ]]; then echo "Applying tags: $TAGS" # Parse and apply tags fi case "$CLOUD_PROVIDER" in aws) manage_aws_resource ;; azure) manage_azure_resource ;; gcp) manage_gcp_resource ;; *) echo "Error: Unsupported cloud provider: $CLOUD_PROVIDER" usage ;; esac echo "Resource management script finished." } main "$@"

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/nicholaswilde/mcp-server'

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