DBaaS
Generated on 5 Dec 2025
This content is automatically generated from https://github.com/digitalocean-labs/mcp-digitalocean/blob/main/pkg/registry/dbaas/README.md.
DBaaS MCP Tools
This directory contains tools and resources for managing DigitalOcean managed database resources via the MCP Server. These tools enable you to create, modify, and query clusters, users, firewalls, configuration, topics, and other database-related resources.
Supported Tools
Cluster Tools
-
db-cluster-list- Get list of clusters.
- Arguments:
page(optional, integer as string): Page number for paginationper_page(optional, integer): Number of results per page
-
db-cluster-get- Get a cluster by its ID.
- Arguments:
id(required): The ID of the cluster to retrieve
-
db-cluster-get-ca- Get the CA certificate for a cluster by its ID.
- Arguments:
id(required): The ID of the cluster to retrieve the CA for
-
db-cluster-create- Create a new database cluster.
- Arguments:
name(required): The name of the clusterengine(required): The engine slug (e.g., valkey, pg, mysql)version(required): The engine version (e.g., 14, 8.0, etc.)region(required): The region slug (e.g., nyc1)size(required): The size slug (e.g., db-s-2vcpu-4gb)num_nodes(required, number): The number of nodestags(optional, string): Comma-separated tags
-
db-cluster-delete- Delete a database cluster by its ID.
- Arguments:
id(required): The ID of the cluster to delete
-
db-cluster-resize- Resize a database cluster by its ID. At least one of the following must be provided:
size,num_nodes, orstorage_size_mib. - Arguments:
id(required): The ID of the cluster to resizesize(optional): The new cluster size (e.g., db-s-4vcpu-8gb)num_nodes(optional, number): The new number of nodesstorage_size_mib(optional, number): New storage size in MiB
- Resize a database cluster by its ID. At least one of the following must be provided:
-
db-cluster-list-backups- List backups for a database cluster by its ID.
- Arguments:
id(required): The ID of the clusterpage(optional, integer as string): Page numberper_page(optional, integer): Results per page
-
db-cluster-list-options- List available cluster creation options, including engines, sizes, and regions.
- Arguments: None
-
db-cluster-upgrade-major-version- Upgrade the major database version of a cluster.
- Arguments:
id(required): The cluster IDversion(required): Target major version (e.g., 15)
-
db-cluster-start-online-migration- Start an online migration for a cluster.
- Arguments:
id(required): The cluster IDsource(required, object): Source DB connection infohost(string): Hostname or IPport(integer): Source portdbname(string): Source database nameusername(string): Connection usernamepassword(string): Connection password
disable_ssl(optional, boolean): Disable SSLignore_dbs(optional, string): Comma-separated DBs to ignore
-
db-cluster-stop-online-migration- Cancel an ongoing online migration.
- Arguments:
id(required): Cluster IDmigration_id(required): Migration ID to stop
-
db-cluster-get-migration- Query the current status of an online migration.
- Arguments:
id(required): Cluster ID
Firewall Tools
-
db-cluster-get-firewall-rules- Get the firewall rules for a cluster by its ID.
- Arguments:
id(required, string): The cluster UUID
-
db-cluster-update-firewall-rules- Update the firewall rules for a cluster by its ID.
- Arguments:
id(required, string): The cluster UUIDrules(required, array of objects): The list of firewall rules to apply. Each rule supports:uuid(optional, string): Rule UUID (for updating existing rules)cluster_uuid(optional, string): UUID of the associated clustertype(required, string): Type of rule (ip_addr,droplet,tag,app, etc.)value(required, string): IP address, tag name, or droplet ID
Kafka Tools
-
db-cluster-list-topics- List topics for a Kafka cluster by its ID. Supports list options and filters.
- Arguments:
id(required, string): The Kafka cluster UUIDpage(optional, integer as string): Page number for paginationper_page(optional, integer): Number of results per pagewith_projects(optional, bool as string): Include project fieldsonly_deployed(optional, bool as string): Only list deployed topicspublic_only(optional, bool as string): Only include public topicsusecases(optional, string): Comma-separated list of usecases to include
-
db-cluster-create-topic- Create a topic for a Kafka database cluster.
- Arguments:
id(required, string): The Kafka cluster UUIDname(required, string): The topic namepartition_count(optional, integer as string): Number of partitionsreplication_factor(optional, integer as string): Replication factorconfig(optional, object): Configuration for the topic with the following fields:cleanup_policy,compression_type,delete_retention_ms,flush_messages,flush_ms,index_interval_bytes,max_compaction_lag_ms,max_message_bytes,message_down_conversion_enable,message_format_version,message_timestamp_difference_max_ms,message_timestamp_type,min_cleanable_dirty_ratio,min_compaction_lag_ms,min_insync_replicas,preallocate,retention_bytes,retention_ms,segment_bytes,segment_index_bytes,segment_jitter_ms,segment_ms
-
db-cluster-get-topic- Get a topic’s details from a Kafka database cluster.
- Arguments:
id(required, string): The Kafka cluster UUIDname(required, string): The topic name
-
db-cluster-delete-topic- Delete a topic for a Kafka database cluster.
- Arguments:
id(required, string): The Kafka cluster UUIDname(required, string): The topic name
-
db-cluster-update-topic- Update a topic’s partition count, replication factor, or config settings.
- Arguments:
id(required, string): The Kafka cluster UUIDname(required, string): Topic namepartition_count(optional, integer as string): Updated number of partitionsreplication_factor(optional, integer as string): Updated replication factorconfig(optional, object): Same fields ascreate-topic’sconfigobject
-
db-cluster-get-kafka-config- Get the Kafka configuration for a cluster.
- Arguments:
id(required, string): The Kafka cluster UUID
-
db-cluster-update-kafka-config- Update the Kafka cluster configuration using a structured object.
- Arguments:
id(required, string): The Kafka cluster UUIDconfig(required, object): Configuration object supporting:group_initial_rebalance_delay_ms,group_min_session_timeout_ms,group_max_session_timeout_ms,message_max_bytes,log_cleaner_delete_retention_ms,log_cleaner_min_compaction_lag_ms,log_flush_interval_ms,log_index_interval_bytes,log_message_downconversion_enable,log_message_timestamp_difference_max_ms,log_preallocate,log_retention_bytes,log_retention_hours,log_retention_ms,log_roll_jitter_ms,log_segment_delete_delay_ms,auto_create_topics_enable
Mongo Tools
-
db-cluster-get-mongodb-config- Get the MongoDB config for a cluster by its ID.
- Arguments:
id(required, string): The cluster UUID
-
db-cluster-update-mongodb-config- Update the MongoDB config for a cluster by its ID using a structured object.
- Arguments:
id(required, string): The cluster UUIDconfig(required, object): Configuration parameters for MongoDB:default_read_concern(optional, string): e.g.,local,majoritydefault_write_concern(optional, string): e.g.,majoritytransaction_lifetime_limit_seconds(optional, integer): Transaction timeoutslow_op_threshold_ms(optional, integer): Log slow ops above this threshold (ms)verbosity(optional, integer): Logging verbosity (0–5)
MySQL Tools
-
db-cluster-get-mysql-config- Get the MySQL config for a cluster by its ID.
- Arguments:
ID(required): The cluster UUID
-
db-cluster-update-mysql-config- Update the MySQL config for a cluster by its ID. Accepts a JSON string for the config.
- Arguments:
ID(required): The cluster UUIDconfig_json(required): JSON for the MySQLConfig to set
-
db-cluster-get-sql-mode- Get the SQL mode for a cluster by its ID.
- Arguments:
ID(required): The cluster UUID
-
db-cluster-set-sql-mode- Set the SQL mode for a cluster by its ID.
- Arguments:
ID(required): The cluster UUIDmodes(required): Comma-separated SQL modes to set
Absolutely! Based on your provided updated MysqlTool code, here’s the ✅ updated MySQL Tools section of your README in your preferred format:
MySQL Tools
-
db-cluster-get-sql-mode- Get the SQL mode for a cluster.
- Arguments:
id(required, string): The cluster UUID
-
db-cluster-set-sql-mode- Set the SQL mode for a cluster using a comma-separated list.
- Arguments:
id(required, string): The cluster UUIDmodes(required, string): Comma-separated SQL modes to set
Opensearch Tools
-
db-cluster-get-opensearch-config- Get the OpenSearch config for a cluster by its ID.
- Arguments:
id(required, string): The cluster UUID
-
db-cluster-update-os-config- Update the OpenSearch config for a cluster using a structured object.
- Arguments:
id(required, string): The cluster UUIDconfig(required, object): A structured object that supports dozens of OpenSearch configuration parameters. A few examples include:http_max_content_length_bytes(integer)indices_query_bool_max_clause_count(integer)ism_enabled(boolean)search_max_buckets(integer)thread_pool_write_queue_size(integer)cluster_max_shards_per_node(integer)script_max_compilations_rate(string)reindex_remote_whitelist(array of strings)plugins_alerting_filter_by_backend_roles_enabled(boolean)
Postgres Tools
-
db-cluster-get-postgresql-config- Get the PostgreSQL config for a cluster by its ID.
- Arguments:
id(required, string): The cluster UUID
-
db-cluster-update-psql-config- Update the PostgreSQL config for a cluster using a structured object.
- Arguments:
id(required, string): The cluster UUIDconfig(required, object): A structured configuration object that supports dozens of PostgreSQL tuning parameters. Examples include:autovacuum_max_workers(integer)autovacuum_vacuum_scale_factor(number)shared_buffers_percentage(number)timezone(string)temp_file_limit(integer)jit(boolean)pgbouncer(object)timescaledb(object)- …and many more.
Redis Tools
-
db-cluster-get-redis-config- Get the Redis config for a cluster by its ID.
- Arguments:
id(required, string): The cluster UUID
-
db-cluster-update-redis-config- Update the Redis config for a cluster by its ID using a structured
configobject. - Arguments:
id(required, string): The cluster UUIDconfig(required, object): Configuration for the Redis cluster. Includes:redis_maxmemory_policy(string): Eviction policy (e.g.,allkeys-lru)redis_pubsub_client_output_buffer_limit(integer)redis_number_of_databases(integer)redis_io_threads(integer)redis_lfu_log_factor(integer)redis_lfu_decay_time(integer)redis_ssl(boolean)redis_timeout(integer)redis_notify_keyspace_events(string)redis_persistence(string): e.g.,aof,rdb, ornoneredis_acl_channels_default(string)
- Update the Redis config for a cluster by its ID using a structured
User Tools
-
db-cluster-get-user- Get a database user by cluster ID and user name.
- Arguments:
id(required, string): The cluster ID (UUID)user(required, string): The user name
-
db-cluster-list-users- List database users for a cluster by its ID.
- Arguments:
id(required, string): The cluster ID (UUID)page(optional, string): Page number for paginationper_page(optional, integer): Number of results per page
-
db-cluster-create-user- Create a database user for a cluster.
- Arguments:
id(required, string): The cluster IDname(required, string): The user namemysql_auth_plugin(optional, string): MySQL auth plugin (e.g.,mysql_native_password)settings(optional, object): Structured settings object including:acl(array of objects):id(string)permission(string)topic(string)
opensearch_acl(array of objects):index(string)permission(string)
mongo_user_settings(object):databases(array of strings)role(string)
-
db-cluster-update-user- Update a user’s settings in a given database cluster.
- Arguments:
id(required, string): The cluster IDuser(required, string): The user namesettings(optional, object): Same structure as increate-user
-
db-cluster-delete-user- Delete a user from a database cluster.
- Arguments:
id(required, string): The cluster IDuser(required, string): The user name to delete
Example Queries Using DBaaS MCP Tools
Below are some example natural language queries you might use, along with the corresponding tool and arguments. Each example shows how a user might phrase a request, and how it maps to the underlying tool and parameters.
Clusters
| Example Query | Tool | Arguments |
|---|---|---|
| Could you please list all DBaaS clusters? | db-cluster-list | { "page": "1", "per_page": 10 } |
| Show me details for cluster `` | db-cluster-get | { "id": "" } |
| Create a DBaaS cluster called “my-db” in nyc1 | db-cluster-create | { "name": "my-db", "engine": "mysql", "version": "8", "region": "nyc1", "size": "db-s-1vcpu-1gb", "num_nodes": 1 } |
| Delete the cluster `` | db-cluster-delete | { "id": "" } |
| Resize cluster `` to 2 nodes | db-cluster-resize | { "id": "", "num_nodes": 2 } |
Users
| Example Query | Tool | Arguments |
|---|---|---|
| List all users for cluster `` | db-cluster-list-users | { "id": "" } |
| Add a user named “readonly” to cluster `` | db-cluster-create-user | { "id": "", "name": "readonly" } |
| Remove the user “readonly” from cluster `` | db-cluster-delete-user | { "id": "", "user": "readonly" } |
| Update user “readonly” with ACL settings | db-cluster-update-user | { "id": "", "user": "readonly", "settings": { "acl": [{...}] } } |
Firewalls
| Example Query | Tool | Arguments |
|---|---|---|
| What are the firewall rules for cluster ``? | db-cluster-get-firewall-rules | { "id": "" } |
| Update firewall rules for cluster `` | db-cluster-update-firewall-rules | { "id": "", "rules": [ { "type": "ip_addr", "value": "1.2.3.4" } ] } |
Configuration
| Example Query | Tool | Arguments |
|---|---|---|
| Show me the MySQL config for cluster `` | db-cluster-get-mysql-config | { "id": "" } |
| Update the MongoDB config for cluster `` | db-cluster-update-mongodb-config | { "id": "", "config": { "verbosity": 3 } } |
| Get the Redis config for cluster `` | db-cluster-get-redis-config | { "id": "" } |
| Update the PostgreSQL config for cluster `` | db-cluster-update-psql-config | { "id": "", "config": { "timezone": "UTC" } } |
Kafka Topics
| Example Query | Tool | Arguments |
|---|---|---|
| List all topics in Kafka cluster `` | db-cluster-list-topics | { "id": "" } |
| Create a topic named “my-topic” in cluster `` | db-cluster-create-topic | { "id": "", "name": "my-topic" } |
| Delete the topic “my-topic” from Kafka cluster `` | db-cluster-delete-topic | { "id": "", "name": "my-topic" } |
| Update topic “events” to have 6 partitions | db-cluster-update-topic | { "id": "", "name": "events", "partition_count": "6" } |
| Get Kafka config for cluster `` | db-cluster-get-kafka-config | { "id": "" } |
| Update Kafka config | db-cluster-update-kafka-config | { "id": "", "config": { "log_retention_ms": 86400000 } } |
Feel free to use these queries as a starting point for interacting with the DBaaS MCP tools!