Tool: list_fleet_issues
This tool provides a list of issues and recommendations that a user has access to and that are within the requested scope. Use this tool to identify specific database resources affected by health issues based on different categories like availability, data protection, security, performance and cost. It supports filtering issues by criteria such as product type, location, issue severity, tags, and labels. You can also apply filters for specific signal types and their associated products. The results can be sorted by signal type, product, location, or issue severity. If you need aggregated issue statistics instead of a list of individual issues, use the list_fleet_health_issues tool.
The following sample demonstrate how to use curl to invoke the list_fleet_issues MCP tool.
| Curl Request |
|---|
curl --location 'https://databasecenter.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_fleet_issues", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
QueryIssuesRequest is the request to get a list of issues.
QueryIssuesRequest
| JSON representation |
|---|
{
"parent": string,
"filter": string,
"signalProductsFilters": [
{
object ( |
| Fields | |
|---|---|
parent |
Required. Parent can be a project, a folder, or an organization. The list is limited to the one attached to resources within the The allowed values are:
|
filter |
Optional. Supported fields are: 'product', |
signalProductsFilters[] |
Optional. Filters based on signal and product. The filter list will be ORed across pairs and ANDed within a signal and products pair. |
orderBy |
Optional. Following fields are sortable: SignalType Product Location IssueSeverity The default order is ascending. Add "DESC" after the field name to indicate descending order. Add "ASC" after the field name to indicate ascending order. It only supports a single field at a time. |
pageSize |
Optional. If unspecified, at most 50 issues will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000. |
pageToken |
Optional. A page token, received from a previous |
SignalProductsFilters
| JSON representation |
|---|
{ "signalType": enum ( |
| Fields | |
|---|---|
signalType |
Optional. The type of signal. |
products[] |
Optional. Product type of the resource. The version of the product will be ignored in filtering. |
Product
| JSON representation |
|---|
{ "type": enum ( |
| Fields | |
|---|---|
type |
Optional. Type of specific database product. It could be CloudSQL, AlloyDB etc.. |
engine |
Optional. The specific engine that the underlying database is running. |
version |
Optional. Version of the underlying database engine. Example values: For MySQL, it could be "8.0", "5.7" etc. For Postgres, it could be "14", "15" etc. |
minorVersion |
Optional. Minor version of the underlying database engine. Example values: For MySQL, it could be "8.0.35", "5.7.25" etc. For PostgreSQL, it could be "14.4", "15.5" etc. |
Output Schema
QueryIssuesResponse is the response containing a list of issues.
QueryIssuesResponse
| JSON representation |
|---|
{
"resourceIssues": [
{
object ( |
| Fields | |
|---|---|
resourceIssues[] |
List of issues and resource details. |
nextPageToken |
A token that can be sent as |
unreachable[] |
Unordered list. List of unreachable regions from where data could not be retrieved. |
DatabaseResourceIssue
| JSON representation |
|---|
{ "signal": { object ( |
| Fields | |
|---|---|
signal |
Signal associated with the issue. |
resource |
Resource associated with the issue. |
Signal
| JSON representation |
|---|
{ "signalType": enum ( |
| Fields | |
|---|---|
signalType |
Type of the signal. |
signalStatus |
Status of the signal. |
additionalDetails[] |
Additional information related to the signal. In the case of composite signals, this field encapsulates details associated with granular signals, having a signal status of "ISSUE"; signals with a status of "OK" are not included. For granular signals, it encompasses information relevant to the signal, regardless of the signal status. |
issueSeverity |
Severity of the issue. |
issueCreateTime |
Timestamp when the issue was created (when signal status is ISSUE). Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
AdditionalDetail
| JSON representation |
|---|
{ "signalSource": enum ( |
| Fields | |
|---|---|
signalSource |
Where the signal is coming from. |
signalType |
Type of the signal. |
signalEventTime |
Event time when signal was recorded by source service. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Union field detail. Details related to signal. detail can be only one of the following: |
|
shortBackupRetentionInfo |
Short backup retention information applies to signals with type SIGNAL_TYPE_SHORT_BACKUP_RETENTION. |
backupRunInfo |
Backup run information applies to signals with types SIGNAL_TYPE_LAST_BACKUP_FAILED and SIGNAL_TYPE_LAST_BACKUP_OLD. |
sccInfo |
SCC information applies to SCC signals. |
recommendationInfo |
Recommendation information applies to recommendations. |
automatedBackupPolicyInfo |
Automated backup policy information applies to signals with type SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY. |
deletionProtectionInfo |
Deletion protection information applies to signals with type |
resourceSuspensionInfo |
Resource suspension information applies to signals with type |
inefficientQueryInfo |
Inefficient query information applies to signals with type |
outdatedMinorVersionInfo |
Outdated minor version information applies to signals with type SIGNAL_TYPE_OUTDATED_MINOR_VERSION. |
maintenanceRecommendationInfo |
Maintenance recommendation information applies to signals with type SIGNAL_TYPE_RECOMMENDED_MAINTENANCE_POLICIES. |
RetentionSettingsInfo
| JSON representation |
|---|
{ "subResource": { object ( |
| Fields | |
|---|---|
subResource |
Optional. Sub resource details associated with the backup configuration. |
Union field
|
|
quantityBasedRetention |
Number of backups that will be retained. |
durationBasedRetention |
Duration based retention period i.e. 172800 seconds (2 days) A duration in seconds with up to nine fractional digits, ending with ' |
timestampBasedRetentionTime |
Timestamp based retention period i.e. till 2024-05-01T00:00:00Z Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Int32Value
| JSON representation |
|---|
{ "value": integer } |
| Fields | |
|---|---|
value |
The int32 value. |
Duration
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
nanos |
Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
SubResource
| JSON representation |
|---|
{
"resourceType": string,
"fullResourceName": string,
"product": {
object ( |
| Fields | |
|---|---|
resourceType |
Optional. Resource type associated with the sub resource where backup settings are configured. E.g. "spanner.googleapis.com/Database" for Spanner where backup retention is configured on database within an instance OPTIONAL |
fullResourceName |
Optional. Resource name associated with the sub resource where backup settings are configured. E.g."//spanner.googleapis.com/projects/project1/instances/inst1/databases/db1" for Spanner where backup retention is configured on database within an instance OPTIONAL |
product |
Optional. Product information associated with the sub resource where backup retention settings are configured. e.g. for Spanner where backup is configured on database within an instance OPTIONAL |
container |
Specifies where the resource is created. For Google Cloud resources, it is the full name of the project. |
Product
| JSON representation |
|---|
{ "type": enum ( |
| Fields | |
|---|---|
type |
Optional. Type of specific database product. It could be CloudSQL, AlloyDB etc.. |
engine |
Optional. The specific engine that the underlying database is running. |
version |
Optional. Version of the underlying database engine. Example values: For MySQL, it could be "8.0", "5.7" etc. For Postgres, it could be "14", "15" etc. |
minorVersion |
Optional. Minor version of the underlying database engine. Example values: For MySQL, it could be "8.0.35", "5.7.25" etc. For PostgreSQL, it could be "14.4", "15.5" etc. |
BackupRunInfo
| JSON representation |
|---|
{ "startTime": string, "endTime": string, "state": enum ( |
| Fields | |
|---|---|
startTime |
The time the backup operation started. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
endTime |
The time the backup operation completed. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
state |
Output only. The state of this run. |
errorMessage |
Additional information about the error encountered. |
operationErrorType |
Optional. OperationErrorType to expose specific error when backup operation of database resource failed, that is state is FAILED. |
subResource |
Optional. Sub resource details associated with the backup run. |
SCCInfo
| JSON representation |
|---|
{
"signal": string,
"category": string,
"regulatoryStandards": [
{
object ( |
| Fields | |
|---|---|
signal |
Name of the signal. |
category |
Name by which SCC calls this signal. |
regulatoryStandards[] |
Compliances that are associated with the signal. |
externalUri |
External URI which points to a SCC page associated with the signal. |
RegulatoryStandard
| JSON representation |
|---|
{ "standard": string, "version": string } |
| Fields | |
|---|---|
standard |
Name of industry compliance standards, such as such as CIS, PCI, and OWASP. |
version |
Version of the standard or benchmark, for example, 1.1. |
RecommendationInfo
| JSON representation |
|---|
{ "recommender": string, "recommenderId": string, "recommenderSubtype": string } |
| Fields | |
|---|---|
recommender |
Name of recommendation. Examples: organizations/1234/locations/us-central1/recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations/9876 |
recommenderId |
ID of recommender. Examples: "google.cloudsql.instance.PerformanceRecommender" |
recommenderSubtype |
Contains an identifier for a subtype of recommendations produced for the same recommender. Subtype is a function of content and impact, meaning a new subtype might be added when significant changes to Examples: For recommender = "google.cloudsql.instance.PerformanceRecommender", recommender_subtype can be "MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE"/"POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE" |
AutomatedBackupPolicyInfo
| JSON representation |
|---|
{
"subResource": {
object ( |
| Fields | |
|---|---|
subResource |
Optional. Sub resource details associated with the signal. |
isEnabled |
Is automated policy enabled. |
DeletionProtectionInfo
| JSON representation |
|---|
{
"subResource": {
object ( |
| Fields | |
|---|---|
subResource |
Optional. Sub resource details associated with the signal. |
deletionProtectionEnabled |
Is deletion protection enabled. |
ResourceSuspensionInfo
| JSON representation |
|---|
{
"resourceSuspended": boolean,
"suspensionReason": enum ( |
| Fields | |
|---|---|
resourceSuspended |
Is resource suspended. |
suspensionReason |
Suspension reason for the resource. |
InefficientQueryInfo
| JSON representation |
|---|
{ "database": string, "table": string, "sqlIndexStatement": string, "storageCostBytes": string, "impactedQueriesCount": string } |
| Fields | |
|---|---|
database |
Name of the database where index is required. For example, "db1", which is the name of the database present in the instance. |
table |
Name of the table where index is required |
sqlIndexStatement |
SQL statement of the index. Based on the ddl type, this will be either CREATE INDEX or DROP INDEX. |
storageCostBytes |
Cost of additional disk usage in bytes |
impactedQueriesCount |
Count of queries to be impacted if index is applied |
OutdatedMinorVersionInfo
| JSON representation |
|---|
{ "recommendedMinorVersion": string } |
| Fields | |
|---|---|
recommendedMinorVersion |
Recommended minor version of the underlying database engine. Example values: For MySQL, it could be "8.0.35", "5.7.25" etc. For PostgreSQL, it could be "14.4", "15.5" etc. |
MaintenanceRecommendationInfo
| JSON representation |
|---|
{
"resourceMaintenanceSchedules": [
{
object ( |
| Fields | |
|---|---|
resourceMaintenanceSchedules[] |
Optional. List of recommended maintenance schedules for the database resource. |
ResourceMaintenanceSchedule
| JSON representation |
|---|
{ "startTime": { object ( |
| Fields | |
|---|---|
startTime |
Optional. Preferred time to start the maintenance operation on the specified day. |
day |
Optional. Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc. |
phase |
Optional. Phase of the maintenance window. This is to capture order of maintenance. For example, for Cloud SQL resources, this can be used to capture if the maintenance window is in Week1, Week2, Week5, etc. Non production resources are usually part of early phase. For more details, refer to Cloud SQL resources - https://cloud.google.com/sql/docs/mysql/maintenance |
TimeOfDay
| JSON representation |
|---|
{ "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer } |
| Fields | |
|---|---|
hours |
Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. |
minutes |
Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59. |
seconds |
Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds. |
nanos |
Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999. |
DatabaseResource
| JSON representation |
|---|
{ "childResources": [ { object ( |
| Fields | |
|---|---|
childResources[] |
List of children associated with a database group. |
fullResourceName |
The full resource name, based on CAIS resource name format https://cloud.google.com/asset-inventory/docs/resource-name-format Example:
|
container |
Specifies where the resource is created. For Google Cloud resources, it is the full name of the project. |
product |
The product this resource represents. |
location |
The location of the resources. It supports returning only regional locations in Google Cloud. These are of the form: "us-central1", "us-east1", etc. See https://cloud.google.com/about/locations for a list of such regions. |
labels[] |
Labels applied on the resource. The requirements for labels assigned to Google Cloud resources may be found at https://cloud.google.com/resource-manager/docs/labels-overview#requirements |
tags[] |
Tags applied on the resource. The requirements for tags assigned to Google Cloud resources may be found at https://cloud.google.com/resource-manager/docs/tags/tags-overview |
resourceType |
The type of resource defined according to the pattern: {Service Name}/{Type}. Ex: sqladmin.googleapis.com/Instance alloydb.googleapis.com/Cluster alloydb.googleapis.com/Instance spanner.googleapis.com/Instance |
subResourceType |
Subtype of the resource specified at creation time. |
machineConfig |
Machine configuration like CPU, memory, etc for the resource. |
signalGroups[] |
The list of signal groups and count of issues related to the resource. Only those signals which have been requested would be included. |
metrics |
Observable metrics for the resource e.g. CPU utilization, memory utilization, etc. |
resourceCategory |
The category of the resource. |
resourceName |
The name of the resource(The last part of the full resource name). Example: For full resource name - |
backupdrConfig |
Optional. Backup and disaster recovery details for the resource. |
edition |
The edition of the resource. |
maintenanceInfo |
Optional. The maintenance information of the resource. |
Label
| JSON representation |
|---|
{ "key": string, "value": string, "source": string } |
| Fields | |
|---|---|
key |
The key part of the label. |
value |
The value part of the label. |
source |
The source of the Label. Source is empty if the label is directly attached to the resource and not inherited. |
Tag
| JSON representation |
|---|
{ "key": string, "value": string, "source": string, "inherited": boolean } |
| Fields | |
|---|---|
key |
|
value |
The value part of the tag. |
source |
The source of the tag. According to https://cloud.google.com/resource-manager/docs/tags/tags-overview#tags_and_labels, tags can be created only at the project or organization level. Tags can be inherited from different project as well not just the current project where the database resource is present. Format: "projects/{PROJECT_ID}", "projects/{PROJECT_NUMBER}", "organizations/{ORGANIZATION_ID}" |
inherited |
Indicates the inheritance status of a tag value attached to the given resource. If the tag value is inherited from one of the resource's ancestors, inherited will be true. If false, then the tag value is directly attached to the resource. |
MachineConfig
| JSON representation |
|---|
{ "memorySizeBytes": string, // Union field |
| Fields | |
|---|---|
memorySizeBytes |
Memory size in bytes. |
Union field
|
|
shardCount |
Optional. The number of Shards (if applicable). |
Union field
|
|
vcpuCount |
Optional. The number of vCPUs (if applicable). |
SignalGroup
| JSON representation |
|---|
{
"displayName": string,
"issueCount": integer,
"signals": [
{
object ( |
| Fields | |
|---|---|
displayName |
Title of a signal group corresponding to the request. |
issueCount |
When applied to a DatabaseResource represents count of issues associated with the resource. A signal is an issue when its SignalStatus field is set to SIGNAL_STATUS_ISSUE. |
signals[] |
List of signals present in the group and associated with the resource. Only applies to a DatabaseResource. |
Metrics
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
p99CpuUtilization |
P99 CPU utilization observed for the resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases). |
Union field
|
|
p95CpuUtilization |
P95 CPU utilization observed for the resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases). |
Union field
|
|
currentStorageUsedBytes |
Current storage used by the resource in bytes. |
Union field
|
|
peakStorageUtilization |
Peak storage utilization observed for the resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases). |
Union field
|
|
peakMemoryUtilization |
Peak memory utilization observed for the resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases). |
Union field
|
|
peakNumberConnections |
Peak number of connections observed for the resource. The value is a positive integer. |
Union field
|
|
nodeCount |
Number of nodes in instance for spanner or bigtable. |
Union field
|
|
processingUnitCount |
Number of processing units in spanner. |
Union field
|
|
currentMemoryUsedBytes |
Current memory used by the resource in bytes. |
MetricData
| JSON representation |
|---|
{
"value": {
object ( |
| Fields | |
|---|---|
value |
The value associated with the metric. |
observationTime |
The time the metric was observed in the metric source service. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
TypedValue
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field value. The data type of metric value would be chosen based on the metric type. value can be only one of the following: |
|
doubleValue |
The value of the metric as double. |
int64Value |
The value of the metric as int. |
BackupDRConfig
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
backupdrManaged |
Indicates if the resource is managed by BackupDR. |
MaintenanceInfo
| JSON representation |
|---|
{ "maintenanceSchedule": { object ( |
| Fields | |
|---|---|
maintenanceSchedule |
Optional. Maintenance window for the database resource. |
denyMaintenanceSchedules[] |
Optional. List of Deny maintenance period for the database resource. |
maintenanceVersion |
Output only. Current Maintenance version of the database resource. Example: "MYSQL_8_0_41.R20250531.01_15" |
ResourceMaintenanceDenySchedule
| JSON representation |
|---|
{ "startDate": { object ( |
| Fields | |
|---|---|
startDate |
Optional. The start date of the deny maintenance period. |
endDate |
Optional. Deny period end date. |
time |
Optional. Time in UTC when the deny period starts on start_date and ends on end_date. |
Date
| JSON representation |
|---|
{ "year": integer, "month": integer, "day": integer } |
| Fields | |
|---|---|
year |
Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. |
month |
Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. |
day |
Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌