Work with DoiT MCP server
This page explains how to work with the DoiT MCP server, including the tools and prompts it exposes, suggested workflows, usage examples, and troubleshooting.
The DoiT MCP server maps tools to the DoiT developer API. Tool names and behavior follow the open-source @doitintl/doit-mcp-server package; see that repository for the latest list.
MCP prompts
The DoiT MCP server can expose prompts as defined in the MCP prompts specification. Prompts are reusable playbooks your client can list in a prompt picker. Some prompts currently accept arguments, while others do not.
The following example uses placeholder argument names (for example, project, cloud account, or date range) that may differ from depending on your client. Some legacy prompts are being phased out as prompt definitions are standardized.
For example, spend on a specific Google Cloud service rises sharply over a week. Your MCP client shows a prompt like Review a cost spike for a cloud service. You can select it and supply the arguments the prompt defines (service name, project, start and end dates). The server returns prompt text that guides the model to use DoiT MCP tools, for example, narrow the window with get_anomaly or get_anomalies, then run a focused run_query or fetch a saved report with get_report_results, and to summarize likely drivers and follow-up checks. The same idea extends to AWS or multi-cloud cost views when that data is available through DoiT.
Clients discover prompts with prompts/list and retrieve content with prompts/get. On local STDIO connections, the server supports the standard prompt flow, including arguments on the prompt definitions. Behavior may differ by transport or client version; use the latest @doitintl/doit-mcp-server if your client reports missing or invalid prompt handling.
DoiT MCP server tools
Tools are grouped by area. Each name links to the API reference for request and response details.
Cloud incidents and anomalies
- get_cloud_incidents: Retrieve cloud incidents from various platforms.
- get_cloud_incident: Get details about a specific cloud incident by ID.
- get_anomalies: Retrieve anomalies detected in cloud resources.
- get_anomaly: Get details about a specific anomaly by ID.
Assets, CloudFlow, and Cloud Diagrams
- list_assets: List customer assets such as Google Cloud billing accounts, Google Workspace subscriptions, and related resources.
- get_asset: Get details of a specific customer asset by ID.
- trigger_cloud_flow: Trigger a CloudFlow by its flow ID, optionally with a JSON payload.
- find_cloud_diagrams: Return Cloud Diagrams URLs for the given resource IDs.
Cloud Analytics reports and dimensions
- list_reports: List Cloud Analytics reports your account can access.
- run_query: Run a report query with the given configuration without persisting it.
- get_report_results: Get the results of a specific report by ID.
- get_report_config: Get the configuration of a specific Cloud Analytics report by ID.
- create_report: Create a new Cloud Analytics report.
- update_report: Update an existing Cloud Analytics report.
- validate_user: Validate the current API user and return domain and email information.
- list_dimensions: List Cloud Analytics dimensions your account can access.
- get_dimension: Get a specific Cloud Analytics dimension by type and ID.
Support requests
- list_tickets: List support requests using the support API.
- get_ticket: Get details of a specific support request by ID.
- list_ticket_comments: List comments on a support request. Customers see public comments only; DoiT employees may also see internal notes.
- create_ticket_comment: Add a comment to an existing support request.
Invoices and allocations
- list_invoices: List current and historical invoices for your organization.
- get_invoice: Get full details for an invoice by invoice number.
- list_allocations: List allocations available for report or query configuration.
- get_allocation: Get a specific allocation by ID.
- create_allocation: Create a new allocation.
- update_allocation: Update an existing allocation.
Alerts, budgets, annotations, and commitments
- list_alerts: List alerts your account can access.
- get_alert: Get a specific alert by ID.
- create_alert: Create an alert for cost thresholds.
- update_alert: Update an existing alert.
- list_budgets: List budgets you can access.
- get_budget: Get budget details and utilization.
- create_budget: Create a budget.
- update_budget: Update an existing budget.
- list_annotations: List annotations your account can access.
- get_annotation: Get a specific annotation by ID.
- create_annotation: Create an annotation with optional report or label associations.
- update_annotation: Update an existing annotation.
- list_commitments: List commitments (reserved capacity or spend agreements).
- get_commitment: Get commitment details including periods and attainment.
Ava
- ask_ava_sync: Ask DoiT AVA a question about your account, spend, or optimization. Complex questions may take longer to answer.
Organization, users, and roles
- list_organizations: List organizations available to the authenticated user.
- list_users: List users in the organization.
- update_user: Update user profile fields and role.
- invite_user: Invite a user by email with optional role and organization.
- list_roles: List IAM roles, including preset and custom roles.
Products
- list_platforms: List available platforms.
- list_products: List products available per platform, optionally filtered by platform name.
DataHub
- list_datahub_datasets: List DataHub datasets for the customer.
- get_datahub_dataset: Get dataset details by name.
- create_datahub_dataset: Create a DataHub dataset.
- update_datahub_dataset: Update a dataset description.
- send_datahub_events: Send events for ingestion (limits apply per API reference).
Labels
- list_labels: List labels you can access.
- get_label: Get label details by ID.
- create_label: Create a label with name and color.
- update_label: Update a label name or color.
- get_label_assignments: List objects assigned to a label.
- assign_objects_to_label: Assign or unassign objects to a label.
Common workflows
These patterns help your AI assistant use the smallest reliable sequence of tools.
Reporting and saved reports
- Optionally call
validate_userif you need to confirm which account or tenant the session targets. - Call
list_reportsto find a saved report when the user names a dashboard or recurring report. - Call
get_report_resultsonce you know the report ID.
Prefer this path over run_query when a saved report already answers the question.
Ad hoc analytics queries
- Call
list_dimensionswhen grouping or filter fields are unclear. - Build a narrow query, then call
run_query. - Refine and rerun if the first result is too broad.
Cost anomalies
- Use
get_anomaliesfor recent or top anomalies, orget_anomalywhen the user already has an ID. - Use cloud, account or project, time range, and service from the anomaly before combining with other data sources.
Usage examples
The outputs and recommendations provided by the DoiT MCP server are generated dynamically and may vary based on the query. You should thoroughly review all outputs/recommendations to ensure they align with your organization's security best practices, cost-efficiency goals, and compliance requirements before implementation.
Your AI tool may be integrated with other MCP servers. To ensure your request yields the intended results, you should frame your request with relevant contextual cues for the DoiT MCP server. Some common queries that you might ask include: “What are my top 3 AWS services by cost”, “What are my recent cost anomalies”, “Show me the results of my Monthly Cost Overview report”, and “List all my invoices”.
In addition, you can use deep research when asking questions or making requests related to DoiT Cloud Intelligence data. This is useful as the MCP server can provide more granular insight into invoices, cost anomalies, resources, and so on. To do this using Claude:
-
Ask, for example: “What are my last 3 anomalies?”
-
Once you have the list, in the reply prompt, select Research.
-
In the reply prompt, ask for more in-depth information, for example: “Investigate number 3 — Cloud run anomaly — June 18, 2025. What caused it? How frequently does it happen? How can we prevent it from happening again?” Claude performs a deep dive into the anomaly.
Authorization and security
-
Remote connectors (for example Claude or ChatGPT in the browser): the client shows an authorization step. You provide your DoiT API key and your DoiT Customer ID. The remote server requires customer context on every connect. If you can access multiple customers, pick the Customer ID for the tenant you intend to use. See Connect ChatGPT and Connect Claude.
-
Local STDIO clients (for example Cursor or Gemini CLI): you configure
DOIT_API_KEYin the client config. The key is sent from your machine to the DoiT API through the MCP server process. -
Access control: MCP calls use your API identity and obey DoiT Console permissions. You need the role described under Required permissions to connect. Data and mutating tools still respect fine-grained API and product rules.
-
Operational hygiene: Do not share API keys or commit them to source control. Rotate a key if it may be exposed. If your organization changes your role or access, reconnect or retest the integration.
Troubleshooting
| Symptom | Things to check |
|---|---|
| Connector or auth window does not open | Browser pop-up blockers, corporate proxies, or extensions blocking OAuth or embedded flows. Retry after allowing the site. |
| Authentication fails | Wrong or revoked API key, or Customer ID that does not match the customer you want. |
| Access denied or empty data for expected resources | User lacks Billing Profiles Admin or other required Console permissions for that data. |
| Connected, but many tools are missing in the AI client | Some web-based MCP connectors expose only a subset of tools when the full catalog is large. Prefer a local STDIO setup via @doitintl/doit-mcp-server (see Connections) for the broadest tool list. |
| Unexpected tool errors | Confirm the API reference for the tool you are using; parameters and quotas apply the same as for direct API calls. |