App Optimize API MCP
Google Cloud
Google Cloud
Google Cloud managed MCP server for App Optimize API. Exact tool names and accessible operations depend on the published server reference and configured Google Cloud permissions.
Official reference lists six tools for cost/utilization report creation, listing, inspection, reading, deletion and async operation polling. Report creation can take several minutes and reports expire after 24 hours. Google states no additional App Optimize charges during Preview; underlying Cloud Monitoring or other resources may have their own charges. Deleting a report is irreversible but does not delete billing/monitoring source data.
create_cost_reportCreates a saved, reusable cost and utilization report for Google Cloud — spend and CPU/memory usage for a project or App Hub application. This initiates an asynchronous long-running operation (LRO). Poll the operation status using get_report_operation until done: true , then read data using read_cost_report . Cost-only reports complete in under a minute; reports with utilization metrics take ~9-10 minutes (pulling from Cloud Monitoring). Scope: To query a specific project, set scopes: [{"project": "projects/{project}"}] . To query an App Hub application, set scopes: [{"application": "projects/{project}/locations/{location}/applications/{application}"}] . Do not specify both. If omitted, defaults to the parent project. Reports are deleted automatically 24 hours after creation. Required IAM on the scoped project: - roles/appoptimize.admin is required to create reports. - Role billing.resourceCosts.get (e.g. roles/cloudhub.operator , roles/reader , or roles/viewer ) if any cost metrics are requested. - Role roles/monitoring.viewer if any utilization metrics are requested. - Role roles/apphub.appManagementViewer on the host project if an App Hub scope is requested.
get_cost_report_configRetrieves the configuration details of an existing cost and utilization report (dimensions, metrics, filter, scope, and expire_time). Use this tool to inspect what an existing report measures and check its expiration time before reading data. Returns configuration metadata only, not actual cost data rows (use read_cost_report for data). Required IAM on the scoped project: - roles/appoptimize.viewer or roles/appoptimize.admin to get report configuration.
list_cost_reportsLists all saved cost and utilization reports in the specified parent location. location is always global (aggregated listing locations/- is not supported). Supports pagination via next_page_token . An empty list is normal: reports expire and are deleted automatically 24 hours after creation. Required IAM on the scoped project: - roles/appoptimize.viewer or roles/appoptimize.admin to list reports.
delete_cost_reportDeletes an existing cost and utilization report configuration. This action is destructive and irreversible. Deletes only the report definition and its prepared data; underlying billing and monitoring data is unaffected. Reports also expire automatically 24 hours after creation. Required IAM on the scoped project: - roles/appoptimize.admin is required to delete reports.
read_cost_reportReads and retrieves the actual data rows of a completed cost and utilization report (spend figures and resource usage). Call this tool after the report creation operation returned by create_cost_report has finished with done: true . Row and column formatting rules: - Cost columns ( type: "RECORD" ) are formatted as google.type.Money objects with currency_code (string, e.g. "USD" ), units (int64 serialized as a JSON string), and nanos (int32 billionths, 10^-9 ), or null when no cost was recorded or applicable for that entity. - Utilization and usage/allocation metric columns ( type: "FLOAT64" ) are JSON numbers, or null when not applicable to the resource (e.g. persistent disks or snapshots). - Dimension columns ( type: "STRING" ) are JSON strings. - Returns at most 10,000 rows per page by default (25,000 maximum); paginate using next_page_token . Empty results: When a report has zero matching cost or utilization records (for example, because the project or scope has no resources, usage, or billing charges for the configured time range and filter), the rows field is omitted from the JSON response and only columns is returned. A response containing columns without rows means the report succeeded and is validly empty — it is NOT corrupt or incomplete. Inform the user that no cost or usage data was recorded for that report's configuration, and do NOT call create_cost_report to recreate or test the report. Required IAM on the scoped project: - roles/appoptimize.viewer or roles/appoptimize.admin to read report data.
get_report_operationPolls the status of an asynchronous long-running operation (LRO) returned by create_cost_report . Use the name field from the LRO to poll. Keep polling until done is true, then call read_cost_report . Duration guidance: Cost-only reports typically complete in under a minute. Reports including utilization metrics take 9-10 minutes or more because they pull from Cloud Monitoring. A long-running operation is not stuck — do not abandon it or recreate the report while polling. Required IAM on the scoped project: - roles/appoptimize.viewer or roles/appoptimize.admin to get operation status.
Official Google Cloud catalog lists this product as an available remote MCP server.
Google Cloud describes remote MCP client setup, Streamable HTTP transport, supported authentication options, and ADC setup.
Google documents supported identity types and authorization requirements for Google Cloud MCP calls.
Current reference lists six exact tools, endpoint, IAM roles, async behavior, expiration and deletion semantics.
Google states App Optimize API report operations have no added cost during Preview; underlying resource services may have charges.
Documentation checked 2026-10-28. Connection has not been runtime tested.
Google Cloud
Google Cloud managed MCP server for App Optimize API. Exact tool names and accessible operations depend on the published server reference and configured Google Cloud permissions.
Official reference lists six tools for cost/utilization report creation, listing, inspection, reading, deletion and async operation polling. Report creation can take several minutes and reports expire after 24 hours. Google states no additional App Optimize charges during Preview; underlying Cloud Monitoring or other resources may have their own charges. Deleting a report is irreversible but does not delete billing/monitoring source data.
create_cost_reportCreates a saved, reusable cost and utilization report for Google Cloud — spend and CPU/memory usage for a project or App Hub application. This initiates an asynchronous long-running operation (LRO). Poll the operation status using get_report_operation until done: true , then read data using read_cost_report . Cost-only reports complete in under a minute; reports with utilization metrics take ~9-10 minutes (pulling from Cloud Monitoring). Scope: To query a specific project, set scopes: [{"project": "projects/{project}"}] . To query an App Hub application, set scopes: [{"application": "projects/{project}/locations/{location}/applications/{application}"}] . Do not specify both. If omitted, defaults to the parent project. Reports are deleted automatically 24 hours after creation. Required IAM on the scoped project: - roles/appoptimize.admin is required to create reports. - Role billing.resourceCosts.get (e.g. roles/cloudhub.operator , roles/reader , or roles/viewer ) if any cost metrics are requested. - Role roles/monitoring.viewer if any utilization metrics are requested. - Role roles/apphub.appManagementViewer on the host project if an App Hub scope is requested.
get_cost_report_configRetrieves the configuration details of an existing cost and utilization report (dimensions, metrics, filter, scope, and expire_time). Use this tool to inspect what an existing report measures and check its expiration time before reading data. Returns configuration metadata only, not actual cost data rows (use read_cost_report for data). Required IAM on the scoped project: - roles/appoptimize.viewer or roles/appoptimize.admin to get report configuration.
list_cost_reportsLists all saved cost and utilization reports in the specified parent location. location is always global (aggregated listing locations/- is not supported). Supports pagination via next_page_token . An empty list is normal: reports expire and are deleted automatically 24 hours after creation. Required IAM on the scoped project: - roles/appoptimize.viewer or roles/appoptimize.admin to list reports.
delete_cost_reportDeletes an existing cost and utilization report configuration. This action is destructive and irreversible. Deletes only the report definition and its prepared data; underlying billing and monitoring data is unaffected. Reports also expire automatically 24 hours after creation. Required IAM on the scoped project: - roles/appoptimize.admin is required to delete reports.
read_cost_reportReads and retrieves the actual data rows of a completed cost and utilization report (spend figures and resource usage). Call this tool after the report creation operation returned by create_cost_report has finished with done: true . Row and column formatting rules: - Cost columns ( type: "RECORD" ) are formatted as google.type.Money objects with currency_code (string, e.g. "USD" ), units (int64 serialized as a JSON string), and nanos (int32 billionths, 10^-9 ), or null when no cost was recorded or applicable for that entity. - Utilization and usage/allocation metric columns ( type: "FLOAT64" ) are JSON numbers, or null when not applicable to the resource (e.g. persistent disks or snapshots). - Dimension columns ( type: "STRING" ) are JSON strings. - Returns at most 10,000 rows per page by default (25,000 maximum); paginate using next_page_token . Empty results: When a report has zero matching cost or utilization records (for example, because the project or scope has no resources, usage, or billing charges for the configured time range and filter), the rows field is omitted from the JSON response and only columns is returned. A response containing columns without rows means the report succeeded and is validly empty — it is NOT corrupt or incomplete. Inform the user that no cost or usage data was recorded for that report's configuration, and do NOT call create_cost_report to recreate or test the report. Required IAM on the scoped project: - roles/appoptimize.viewer or roles/appoptimize.admin to read report data.
get_report_operationPolls the status of an asynchronous long-running operation (LRO) returned by create_cost_report . Use the name field from the LRO to poll. Keep polling until done is true, then call read_cost_report . Duration guidance: Cost-only reports typically complete in under a minute. Reports including utilization metrics take 9-10 minutes or more because they pull from Cloud Monitoring. A long-running operation is not stuck — do not abandon it or recreate the report while polling. Required IAM on the scoped project: - roles/appoptimize.viewer or roles/appoptimize.admin to get operation status.
Official Google Cloud catalog lists this product as an available remote MCP server.
Google Cloud describes remote MCP client setup, Streamable HTTP transport, supported authentication options, and ADC setup.
Google documents supported identity types and authorization requirements for Google Cloud MCP calls.
Current reference lists six exact tools, endpoint, IAM roles, async behavior, expiration and deletion semantics.
Google states App Optimize API report operations have no added cost during Preview; underlying resource services may have charges.
Documentation checked 2026-10-28. Connection has not been runtime tested.