Tools Reference
Complete reference for every read-only tool in the DigiUsher MCP Server
The DigiUsher MCP Server has 59 read-only tools in 14 domains. Every tool needs an authentication.
Most tools take an optional organization_id. If you omit it and your account can access one organization, the tool uses that organization. If your account can access more than one organization, the tool returns the list of organizations. Then call the tool again with the organization_id of the organization that you want.
Every tool calls the DigiUsher API for you, so the permissions of your DigiUsher account apply. A tool with a body parameter takes a JSON object. A separate Body fields table gives the fields of that object.
Dates are YYYY-MM-DD strings. Wherever a tool takes start_date and end_date, start_date must be on or before end_date.
Organizations & Users
list_organizations
Returns the organizations that the authenticated user can access, with the currency of each organization. The other tools find the organization automatically. You need this tool only to see the choices when your account can access more than one organization.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| (none) | — | — | — | No parameters needed |
Example prompt: "What organizations do I have access to in DigiUsher?"
get_current_user
Returns the profile of the authenticated DigiUsher user. Use it to identify the caller, and to make sure that the account context is correct, before an operation on an organization.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| (none) | — | — | — | No parameters needed |
Example prompt: "Who am I in DigiUsher?"
Glossary
get_glossary
Returns the definitions of the DigiUsher terms that the tool results use. Examples are showback, chargeback, pools, dimensions, allocation runs, the FOCUS columns, and the anomaly terms. Read it once in each conversation, before you interpret cost figures.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| (none) | — | — | — | No parameters needed |
Example prompt: "What is the difference between showback and chargeback in DigiUsher?"
Data Sources
list_data_sources
Lists cloud account and billing data sources for an organization. Useful for mapping data_source_id values in expense and recommendation results.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "What cloud accounts are connected to my organization?"
get_data_source
Get detailed information for a single data source by ID, including configuration and status. Use list_data_sources first to find the data_source_id.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
data_source_id | UUID | Yes | — | Data source ID |
Example prompt: "Show me the details and status of data source abc-123."
Expenses
DigiUsher recommends this workflow for the expense tools:
- Call
get_expense_dimension_catalogto find the available dimensions. - Call
query_expense_dimension_valuesto get the valid filter values of a dimension. - Call
query_expense_datato run the expense query. - Call
get_expense_dimension_lookupsto translate the IDs in the results into names.
get_expense_dimension_catalog
Lists available expense dimensions and their capabilities for filtering or grouping.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "What dimensions can I use to break down my cloud costs?"
query_expense_dimension_values
Returns the valid values of one expense dimension. It works for standard dimensions and for tags. In a query_expense_data filter, use only these values. Another value gives an error.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Query parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
dimension | object | Yes | — | Dimension specification. The field dimension_type gives its shape, as in the table that follows |
search | string | No | — | Search term to filter values (max 100 characters) |
limit | integer | No | 100 | Maximum number of values to return (1–1,000,000) |
The dimension object takes one of four shapes:
dimension_type | Other fields | Description |
|---|---|---|
standard | name | A standard dimension name, for example {"dimension_type": "standard", "name": "service_name"} |
tag | tag_type, key | Cloud tags. tag_type is keys to list the tag keys, and you then omit key. tag_type is values to list the values of one tag, and key is then necessary |
allocated_tag | tag_type, key | Allocated tags (JSON paths such as k8s.namespace). Same tag_type/key rules as tag |
derived | key | A derived allocation dimension identified by its slug, as defined in Cost Allocation |
Standard dimension names: service_name, service_category, service_subcategory, resource_type, resource_id, resource_group, region_id, network_from, network_to, data_source_id, provider, publisher, charge_category, pricing_category, license_model, sku_name, invoice_id, invoice_issuer, commitment_discount_type, commitment_discount_category, commitment_discount_id, commitment_discount_status, consumed_unit, allocated_resource_id, allocated_resource_name, allocated_method_id.
Example prompt: "What services are available in my expense data?"
query_expense_data
Query aggregated expense data with grouping, filtering, and sorting.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Query parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
start_date | string (YYYY-MM-DD) | Yes | — | Start of date range |
end_date | string (YYYY-MM-DD) | Yes | — | End of date range |
currency | string | No | organization currency | The API accepts the currency of your organization only. Omit this field. It rejects every other value |
granularity | string | No | day | Time bucket: hour, day, week, month, year, or total |
group_by | array | No | [] | Up to 3 dimensions. Each entry is a standard dimension name, for example "service_name", or a tag object from the table that follows |
filters | object | No | — | One object, with one key for each dimension, as in the table that follows |
metrics | array | No | ["effective_cost", "billed_cost"] | Metrics to return: billed_cost, effective_cost, list_cost, consumed_quantity |
order_by | array | No | [] | Up to 3 {"field": ..., "direction": ...} objects. field is date, billed_cost, effective_cost, list_cost, or consumed_quantity. direction is asc or desc, and the default is desc |
limit | integer | No | — | Maximum number of rows (1–100,000) |
group_by entries: a plain string from the list of standard dimension names, or one of these objects:
source | Other fields | Description |
|---|---|---|
tag | type, key | Cloud tags. type is keys to group by tag key, and you then omit key. type is values to group by the values of one tag, and key is then necessary. An example is {"source": "tag", "type": "values", "key": "Environment"} |
allocated_tag | type, key | Allocated tags (JSON paths). Same type/key rules |
derived | key | A derived allocation dimension slug, for example {"source": "derived", "key": "team"} |
filters object: one key per dimension you want to filter. Unknown keys are rejected.
| Key(s) | Value shape |
|---|---|
Any standard dimension name, for example service_name, region_id, data_source_id, or provider. The key sku_id is also valid | A list of the values to include, such as ["Amazon EC2"], or an object {"include": [...], "exclude": [...]} with at least one of the two keys |
tags, allocated_tags | List of {"key": "...", "include": [...], "exclude": [...]} or {"key": "...", "exists": true} objects. exists cannot be combined with include/exclude |
dimensions | List of {"key": "<slug>", "include": [...], "exclude": [...]} objects for derived allocation dimensions |
billed_cost, effective_cost, list_cost, consumed_quantity | List of {"value": <number>, "op": "gt" | "gte" | "lt" | "lte"} range conditions |
Ordering rules: a cost metric used in order_by must also appear in metrics, and date cannot be used when granularity is total.
Example prompt: "Show me our AWS spending for January 2026 broken down by service, sorted by effective cost descending, top 10."
get_expense_dimension_lookups
Returns lookup tables that translate data source IDs and pool IDs into names. Use it after query_expense_data when the results contain IDs.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
include_pools | boolean | No | — | Include pool name lookups |
include_data_sources | boolean | No | — | Include data source name lookups |
Example prompt: "Translate the data source IDs in my expense results to names."
Anomaly Detection
If you give no start_date and no end_date, the summary tools and the list tools use the last 90 days. A range that you give cannot be longer than 366 days.
get_anomaly_summary
Get aggregated anomaly counts by severity, anomaly type, and scope. Use as a dashboard-style overview before drilling into individual anomalies.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
severity | array | No | — | Filter by severity: HIGH, MEDIUM, LOW |
anomaly_type | array | No | — | Filter by type: COST_SPIKE, PATTERN_DEVIATION, RESOURCE_INEFFICIENCY, UNEXPECTED_RESOURCE |
scope_type | array | No | — | Filter by scope: organization, data_source, service, region, perspective |
start_date | string (YYYY-MM-DD) | No | 90 days ago | Start of date range |
end_date | string (YYYY-MM-DD) | No | today | End of date range |
Example prompt: "Give me a summary of cost anomalies detected this month."
list_anomalies
List anomalies with filtering, sorting, and pagination. Use after get_anomaly_summary to inspect matching anomalies in detail.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | List parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
severity | array | No | — | Filter by severity: HIGH, MEDIUM, LOW |
anomaly_type | array | No | — | Filter by type: COST_SPIKE, PATTERN_DEVIATION, RESOURCE_INEFFICIENCY, UNEXPECTED_RESOURCE |
scope_type | array | No | — | Filter by scope: organization, data_source, service, region, perspective |
scope_id | array of strings | No | — | Filter by the IDs of specific scopes (max 1,000) |
start_date | string (YYYY-MM-DD) | No | 90 days ago | Start of date range |
end_date | string (YYYY-MM-DD) | No | today | End of date range |
sort_by | string | No | date | Sort field: date, severity, cost_impact, anomaly_score |
sort_direction | string | No | desc | asc or desc |
limit | integer | No | 50 | Max results (1–500) |
offset | integer | No | 0 | Pagination offset |
Example prompt: "Show me all high-severity cost anomalies from the last 30 days, biggest cost impact first."
get_anomaly
Get a single anomaly by ID with computed impact metrics and metadata. Use after list_anomalies for deeper inspection.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
anomaly_id | UUID | Yes | — | Anomaly ID |
Example prompt: "Show me the full details of anomaly abc-123."
Recommendations
list_all_scenarios
List recommendation scenarios and their configurable thresholds. Use to discover scenario IDs and threshold metadata before working with overrides or filtering recommendations.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
cloud_provider | string | No | — | Filter by data source type. Accepts any DigiUsher data source type value, for example aws, azure, gcp, oci, alibaba, kubernetes, databricks, nebius, snowflake, mongodb, focus_any |
Example prompt: "What types of cost optimization scenarios does DigiUsher check for on AWS?"
get_scenario_by_id
Get one recommendation scenario by ID, including threshold definitions and optimization detection metadata.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
scenario_id | string | Yes | — | Scenario ID |
Example prompt: "Show me the details of the rightsizing scenario."
list_threshold_overrides
List threshold overrides configured for the organization, optionally filtered by scenario. Use to audit customized scenario sensitivity.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
scenario_id | string | No | — | Filter by scenario ID |
Example prompt: "Are there any custom threshold overrides configured for our recommendations?"
get_threshold_override
Get a specific threshold override by ID. Use after list_threshold_overrides when details for one override are needed.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
override_id | UUID | Yes | — | Override ID |
Example prompt: "Show me override abc-123."
list_recommendations
List cost optimization recommendations with filtering, sorting, and pagination. Common filters include status, severity, scenario tags, cloud account, and resource attributes.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | List parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
status | array | No | ["open"] | Filter by status: open, applied, dismissed, snoozed, stale |
severity | array | No | — | Filter by severity: low, medium, high, critical |
scenario_id | array of strings | No | — | Filter by scenario |
scenario_tags | array | No | — | Filter by scenario tags: commitment, delete, resize, migrate, upgrade, quick_win, requires_planning, orphaned, idle, oversized, outdated, legacy, security, reliability |
data_source_id | array of UUIDs | No | — | Filter by data source |
assignee_id | array of UUIDs | No | — | Filter by assignee |
commitment_id | array of UUIDs | No | — | Filter to recommendations linked to specific commitments |
resource_id | array of strings | No | — | Filter by resource ID |
resource_type | array of strings | No | — | Filter by resource type |
region | array of strings | No | — | Filter by region |
service | array of strings | No | — | Filter by service |
resource_tags | array | No | — | List of {"key": "...", "include": [...], "exclude": [...]} or {"key": "...", "exists": true} objects. exists cannot be combined with include/exclude |
created_at_start_date | string (YYYY-MM-DD) | No | — | Recommendations created on or after this date (inclusive) |
created_at_end_date | string (YYYY-MM-DD) | No | — | Recommendations created on or before this date (inclusive) |
group_by | string | No | — | Group the embedded savings summary by: scenario_id, severity, data_source_id, region, service |
sort_by | string | No | annual_savings | Sort field: annual_savings, monthly_savings, severity, created_at, last_seen_at, status |
sort_direction | string | No | desc | asc or desc |
limit | integer | No | 50 | Max results (1–500) |
offset | integer | No | 0 | Pagination offset |
Example prompt: "Show me the top 5 open recommendations sorted by annual savings."
get_savings_summary
Get aggregated potential savings from recommendations, with optional filtering and grouping. Useful for executive summaries and trend breakdowns.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Summary parameters. The Body fields table gives them |
Body fields: the same filter fields as list_recommendations, without the pagination fields and the sorting fields. These fields are status (default ["open"]), severity, scenario_id, scenario_tags, data_source_id, assignee_id, commitment_id, resource_id, resource_type, region, service, resource_tags, created_at_start_date, created_at_end_date, and group_by.
Example prompt: "What's the total potential savings from all open recommendations, grouped by scenario?"
get_recommendation
Get one recommendation by ID, including the latest automation status and detailed payload.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
recommendation_id | UUID | Yes | — | Recommendation ID |
Example prompt: "Show me the full details of recommendation abc-123."
Kubernetes
These tools report the cost, the rightsizing, and the node pool capacity of your Kubernetes clusters. The amounts use the currency of your organization.
Most Kubernetes tools take a filters object in the body. Each key takes a list of values to include, or an object {"include": [...], "exclude": [...]}.
| Key | Description |
|---|---|
cluster | Cluster IDs. A cluster ID is the data source ID from list_data_sources |
namespace | Namespace names |
workload | Workload names |
pod | Pod names |
storage_class | StorageClass names. The rightsizing tools and query_k8s_node_pools do not accept this key |
node_pool | Node pool names. An empty string in include matches the nodes that have no node pool |
get_k8s_expense_summary
Get the total Kubernetes cost of a date range, split into used cost, unused requests, and unrequested capacity. The result also gives the efficiency ratio.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Query parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
start_date | string (YYYY-MM-DD) | No | 6 days ago | Start of date range |
end_date | string (YYYY-MM-DD) | No | today | End of date range |
filters | object | No | — | Filters from the table at the start of this section |
Example prompt: "How much of our Kubernetes spend last week was idle capacity?"
query_k8s_expenses
Get Kubernetes cost rows grouped by one dimension, with a daily series for each row. Only the cluster, namespace, node, and pod groupings add up to the cluster total.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Query parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
start_date | string (YYYY-MM-DD) | No | 6 days ago | Start of date range |
end_date | string (YYYY-MM-DD) | No | today | End of date range |
filters | object | No | — | Filters from the table at the start of this section |
group_by | string | No | namespace | cluster, namespace, node, pod, pvc, deployment, daemonset, replicaset, or replicationcontroller |
sort_by | string | No | total | total, compute, gpu, or storage |
limit | integer | No | 100 | Max results (1–500) |
Example prompt: "Which namespaces cost the most in our production cluster this week?"
get_k8s_rightsizing_summary
Get the total monthly saving from workload rightsizing, the workload counts, and the capacity that the changes free. For node counts, use query_k8s_node_pools.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Query parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
filters | object | No | — | Filters from the table at the start of this section, without storage_class |
Example prompt: "How much can we save each month if we rightsize our Kubernetes workloads?"
list_k8s_rightsizing
List the rightsizing recommendations for Kubernetes workloads, with the highest monthly saving first. Each entry gives the current and recommended CPU and memory requests and limits for each container.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Query parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
filters | object | No | — | Filters from the table at the start of this section, without storage_class |
limit | integer | No | 100 | Max results (1–500) |
Example prompt: "Which Kubernetes workloads in the payments namespace have the largest rightsizing savings?"
get_k8s_workload_series
Get the hourly CPU and memory usage, requests, limits, and throttle ratio for each container of one workload. The result also gives the restarts for each hour. Before you reduce the requests of a workload, use this tool to examine its throttling and restarts.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Query parameters. The Body fields table gives them |
Body fields: take all four values from a list_k8s_rightsizing entry.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
data_source_id | UUID | Yes | — | Data source of the cluster |
namespace | string | Yes | — | Kubernetes namespace |
kind | string | Yes | — | Workload kind in lowercase, for example deployment or statefulset |
name | string | Yes | — | Workload name |
Example prompt: "Was the checkout deployment throttled before we lower its CPU request?"
query_k8s_node_pools
Get one entry for each node pool of each cluster. Each entry gives the requested and used capacity, the idle capacity, and the node count that the pods need at their recommended requests. If a less expensive instance type fits, the entry also gives it.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Query parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
filters | object | No | — | Only the cluster and node_pool keys |
Example prompt: "Which node pools have the most idle capacity?"
KPIs
list_kpi_definitions
List available KPI definitions, including units, categories, and favorable direction. Use before snapshot or time-series calls to select kpi_ids.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Available KPI IDs: effective_savings_rate, compute_commitment_coverage, commitment_discount_waste, allocation_accuracy_index, compute_cost_per_core, cost_per_gb_stored, legacy_resource_percentage, cost_optimization_index.
Example prompt: "What FinOps KPIs are available for my organization?"
get_kpi_snapshots
Get KPI values for a single date. Billing data for yesterday and the day before is still arriving, so these two days return no values.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
date | string (YYYY-MM-DD) | No | three days ago | Date for the snapshot. The default is the latest settled day |
kpi_ids | array | No | — | Filter by KPI IDs (see list_kpi_definitions) |
Example prompt: "What are our current KPI values?"
get_kpi_time_series
Get KPI values across a date range. The series stops three days ago, because billing data for yesterday and the day before is still arriving. The end_date in the response tells where the series stopped.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
start_date | string (YYYY-MM-DD) | Yes | — | Start of date range |
end_date | string (YYYY-MM-DD) | Yes | — | End of date range |
kpi_ids | array | No | — | Filter by KPI IDs (see list_kpi_definitions) |
Example prompt: "How has our effective savings rate trended over the last 3 months?"
Unit Economics
Unit economics combine a cost expression with a North Star Metric (NSM) to compute cost per unit of business value. Dimension map groups translate raw billing dimension values into business categories that formulas can use.
list_dimension_map_groups
List dimension map groups in the organization. A dimension map group is a named set of mappings used to translate raw billing dimension values into business-meaningful categories.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "What dimension map groups are defined for unit economics?"
get_dimension_map_group
Get a single dimension map group by ID, including all of its source-to-target mapping entries.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
group_id | UUID | Yes | — | Dimension map group ID |
Example prompt: "Show me the mappings in dimension map group abc-123."
list_formulas
List unit-economics formulas in the organization. Use to discover formula IDs before fetching or calculating one.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "What unit economics formulas do we have?"
get_formula
Get a single unit-economics formula by ID, including its cost expression, NSM reference, default grouping, and metadata.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
formula_id | UUID | Yes | — | Formula ID |
Example prompt: "Show me how the cost-per-transaction formula is defined."
calculate_formula
Calculate cost, NSM, and cost-per-unit for a formula over a date range. Returns one entry per period with totals plus a per-group breakdown.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
formula_id | UUID | Yes | — | Formula ID (from list_formulas) |
body | object | Yes | — | Calculation parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
start_date | string (YYYY-MM-DD) | Yes | — | Inclusive start of the calculation window |
end_date | string (YYYY-MM-DD) | Yes | — | Inclusive end of the calculation window |
granularity | string | No | formula's base granularity | day, week, or month. Must be at least as coarse as both the formula's base granularity and the NSM key's granularity |
group_by | string | No | — | NSM dimension to break each group's cost down by, in proportion to that dimension's NSM share. Cannot be a dimension already linked by the formula |
filters | array | No | [] | List of {"dimension": "<key>", "values": [...]} objects. A filter changes the visible rows only. The share and the allocated cost still use the full NSM denominator, without the filter |
Example prompt: "What was our cost per transaction each month last quarter?"
Chargeback
get_chargeback_for_month
Get the cost of each pool for one month, after the redistribution rules move shared costs between pools. Returns the saved run when one exists, or else computes the month. If DigiUsher cannot compute the month, the tool returns a 404. To compare showback and chargeback cost side by side, use get_allocation_pools_overview.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
month | string (YYYY-MM-DD) | Yes | — | A date in the month, for example 2026-01-01 |
Example prompt: "Show me the chargeback data for January 2026."
get_cost_allocation_summary
Get the showback summaries or the chargeback summaries of one or more months. DigiUsher moves start_date to the start of its month. end_date is inclusive, and it can be any date.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
body | object | Yes | — | Summary parameters. The Body fields table gives them |
Body fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
start_date | string (YYYY-MM-DD) | Yes | — | Start date (snapped to the start of the month) |
end_date | string (YYYY-MM-DD) | Yes | — | End date (inclusive) |
view | string | Yes | — | showback (cost per pool before redistribution) or chargeback (cost per pool after all redistributions) |
granularity | string | No | month | month or day |
pool_id | UUID | No | — | Restrict to one pool |
filters | object | No | — | {"service_names": [...], "regions": [...], "data_source_ids": [...]}. Every key is optional. The result contains the matching costs only |
breakdown_dimensions | array | No | [] | Dimensions to break pool costs down by: service_name, data_source, region. Empty returns pool totals only |
Example prompt: "Show me the chargeback allocation across teams for Q1 2026, by month."
get_cost_allocation_dimensions
Get available filter dimension values (services, regions, data sources) for cost allocation queries. Use this to discover valid filter options before calling get_cost_allocation_summary.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
start_date | string (YYYY-MM-DD) | Yes | — | Start of date range |
end_date | string (YYYY-MM-DD) | Yes | — | End of date range |
view | string | Yes | — | showback or chargeback |
Example prompt: "What services and regions are available for chargeback filtering?"
Allocation Hub
These tools show how DigiUsher allocates cost to pools and dimensions. They also show why some cost stays unallocated. Where a tool takes a period, use any day in the month. If you omit period, the tool uses the current month.
get_allocation_pools_overview
Get the cost of each pool for a period, before and after redistribution. Use it to find what a team, pool, or cost center spent.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
start_date | string (YYYY-MM-DD) | No | current month | Start of date range |
end_date | string (YYYY-MM-DD) | No | current month | End of date range |
Example prompt: "What did each team spend this month, before and after chargeback?"
list_allocation_pools
List the pool hierarchy with the name, parent, owner, and cost-center code of each pool. The result has no costs.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "Show me our pool hierarchy."
get_allocation_pool
Get the configuration of one pool.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
pool_id | UUID | Yes | — | Pool ID (from list_allocation_pools) |
Example prompt: "Show me the configuration of the platform pool."
list_allocation_dimensions
List the allocation dimensions, such as team, application, or cost center. The slug of a published dimension is also a derived dimension key in query_expense_data.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "What allocation dimensions do we have?"
list_allocation_mapping_rules
List the mapping rules that give each expense row a dimension value, in evaluation order. The first rule that matches a row wins.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
dimension_id | UUID | No | — | Show the rules of one dimension. Omit it to show the rules of all dimensions |
Example prompt: "What rules assign costs to teams?"
get_allocation_dimension_rule_match_stats
Show how much cost each mapping rule of a dimension matched in a month, and how much cost stayed unallocated. Use it to find why cost is unallocated.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
dimension_id | UUID | Yes | — | Dimension ID (from list_allocation_dimensions) |
period | string (YYYY-MM-DD) | No | current month | Any day in the month |
Example prompt: "Why is so much of our cost unallocated on the team dimension?"
get_allocation_dimension_sample_traces
Show sample expense rows and the rule that matched each row. The result also contains a sample unallocated row.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
dimension_id | UUID | Yes | — | Dimension ID (from list_allocation_dimensions) |
window_days | integer | No | 30 | Lookback window in days (1–365) |
rows_per_outcome | integer | No | 1 | Sample rows for each matched rule (1–10) |
Example prompt: "Show me examples of costs that end up unallocated on the team dimension."
list_allocation_split_rules
List the split rules that divide one shared expense row across the values of a dimension. Examples of shared rows are a database instance, a NAT gateway, or a Kubernetes node.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "How do we split shared database costs across teams?"
get_allocation_split_rule_stats
Show, for each split rule in a month, the cost that the rule split and the cost that it left unallocated.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
period | string (YYYY-MM-DD) | No | current month | Any day in the month |
Example prompt: "How much shared cost did our split rules leave unallocated last month?"
list_redistribution_rule_sets
List the redistribution rule sets. Each rule set tells how a shared pool, such as a platform pool, charges its costs out to other pools.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "How are platform costs charged back to the product teams?"
list_redistribution_stages
List the redistribution stages in the order that DigiUsher applies them. Use it when the chargeback cost of a pool is different from what one rule set suggests.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "In what order are our chargeback rules applied?"
list_allocation_runs
List the allocation runs, newest first. A run is the computed allocation of one month. A month with no completed run has no allocated cost.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
period | string (YYYY-MM-DD) | No | — | Any day in a month. Shows the runs of that month only |
limit | integer | No | 50 | Max results (1–200) |
offset | integer | No | 0 | Pagination offset |
Example prompt: "Has the allocation for last month been computed?"
get_allocation_run
Get one allocation run, with its status, timings, the configuration version that it used, and its cost totals. If the run failed, the result also gives the error.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
run_id | UUID | Yes | — | Run ID (from list_allocation_runs) |
Example prompt: "Why did the allocation run for March fail?"
get_allocation_config_status
Show which allocation changes are in draft and the latest published version. Draft changes do not change allocated cost until you publish them and a run computes them.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "Do we have unpublished allocation changes?"
Forecasting
get_forecast_summary
Get the forecast overview of the organization. Returns projected totals, trend direction, and confidence range.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "What's the cost forecast for my organization?"
get_forecast_series
Get daily forecast time-series data for charting: actuals, predicted values, and confidence bands. Use after get_forecast_summary to drill into the trend.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "Show me the daily forecast trend with confidence bands for next month."
Resource Inventory
get_resource_types
List available resource types for resource inventory queries. Use before get_dimension_values to select a valid resource_type.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
search | string | No | — | Search filter |
limit | integer | No | 100 | Max results (1–10,000) |
Example prompt: "What resource types are in my cloud inventory?"
get_dimension_values
Get values for resource inventory dimensions for a specific resource type. This is for resource dimensions, not expense dimensions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
resource_type | string | Yes | — | Resource type (from get_resource_types) |
name | string | Yes | — | Dimension name: region, service, resource_group, tag_keys, or tag_values |
key | string | No | — | Tag key (required when name is tag_values) |
search | string | No | — | Search filter |
limit | integer | No | 100 | Max results (1–10,000) |
Example prompt: "What regions do our EC2 instances run in?"
get_resource_time_series
Get the metric time series of one discovered cloud resource. Returns the daily metric values of the date range. The default range is the last 30 days.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
discovered_resource_id | UUID | Yes | — | Discovered resource ID |
start_date | string (YYYY-MM-DD) | No | 30 days ago | Start of date range |
end_date | string (YYYY-MM-DD) | No | today | End of date range |
Example prompt: "Show me the CPU utilization metrics for resource abc-123 over the last 30 days."
Governance
list_tagging_policies
List all tagging policies configured for the organization. Each policy defines required tags, allowed values, and the resources it applies to. Use to discover policy IDs before fetching details or violations.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "What tagging policies are enforced in our organization?"
get_tagging_policy
Get a single tagging policy by ID, including its rules, required tag keys, allowed values, and resource scope.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
policy_id | UUID | Yes | — | Tagging policy ID |
Example prompt: "Show me the rules of the cost-center tagging policy."
list_tagging_violations
List individual tagging-policy violations across the organization, optionally filtered to one or more policies and paginated.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
policy_ids | array of UUIDs | No | — | Restrict to these policies |
sort_direction | string | No | desc | desc (newest first) or asc (oldest first) |
offset | integer | No | 0 | Pagination offset |
limit | integer | No | 50 | Max results (1–500) |
Example prompt: "List the 20 most recent resources violating our tagging policies."
get_tagging_violations_summary
Get a roll-up summary of tagging violations across the organization, including counts by policy and severity. Use for governance dashboards before drilling into individual violations.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
organization_id | UUID | No | your only organization | Organization ID |
Example prompt: "How many tagging violations do we have, by policy?"
DigiUsher Documentation