Tools Reference
Complete reference for all 31 read-only tools
The DigiUsher MCP Server exposes 31 read-only tools organized across 9 domains. All tools require authentication and most require an organization_id — use list_organizations first to discover available organizations.
Organizations & Users
list_organizations
Entry-point tool. Returns organizations the authenticated user can access. Call this first when organization_id is unknown.
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | — | — | No parameters needed |
Example prompt: "What organizations do I have access to in DigiUsher?"
get_current_user
Returns the authenticated user's profile. Useful for confirming account context.
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | — | — | No parameters needed |
Example prompt: "Who am I 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 | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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. Returns richer detail than the list view, including configuration and status. Use list_data_sources first to find the data_source_id.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
data_source_id | UUID | Yes | Data source ID |
Example prompt: "Show me the details and status of data source abc-123."
Expenses
The expense tools follow a recommended workflow:
get_expense_dimension_catalog— Discover available dimensionsquery_expense_dimension_values— Get valid filter values for a dimensionquery_expense_data— Run the expense queryget_expense_dimension_lookups— Translate IDs in results to friendly names
get_expense_dimension_catalog
Lists available expense dimensions and their capabilities for filtering or grouping.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
Example prompt: "What dimensions can I use to break down my cloud costs?"
query_expense_dimension_values
Returns valid values for a selected expense dimension. Use the returned values in query_expense_data filters to avoid invalid filter errors.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
body | object | Yes | Query parameters (see below) |
Body fields:
| Field | Type | Required | Description |
|---|---|---|---|
dimension | string | Yes | Dimension name to query values for |
search | string | No | Optional search/filter string |
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 | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
body | object | Yes | Query parameters (see below) |
Body fields:
| Field | Type | Required | 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 | Currency code (e.g., "USD") |
granularity | string | No | Time granularity: "day", "week", "month" |
group_by | array | No | Dimensions to group by (max 3), e.g. [{"dimension": "service_name"}] |
filters | array | No | Filters to apply, e.g. [{"dimension": "service_name", "values": ["Amazon EC2"]}] |
metrics | array | No | Metrics to include |
order_by | array | No | Sort order (max 3), e.g. [{"field": "cost", "direction": "desc"}] |
limit | integer | No | Max number of results (1-10,000) |
Example prompt: "Show me our AWS spending for January 2026 broken down by service, sorted by cost descending, top 10."
get_expense_dimension_lookups
Returns lookup tables to translate IDs (like data_source_id and pool_id) into user-friendly names. Use after query_expense_data when results contain IDs.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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
get_anomaly_summary
Get aggregated anomaly counts by severity, type, and group. Use as a dashboard-style overview before drilling into individual anomalies.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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 |
group_type | array | No | Filter by group: ORGANIZATION, DATA_SOURCE, SERVICE, REGION, POOL, PERSPECTIVE |
start_date | string (YYYY-MM-DD) | No | Start of date range |
end_date | string (YYYY-MM-DD) | No | 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 | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
body | object | Yes | List parameters (see below) |
Body fields:
| Field | Type | Required | Description |
|---|---|---|---|
severity | array | No | Filter by severity: HIGH, MEDIUM, LOW |
anomaly_type | array | No | Filter by type |
group_type | array | No | Filter by group |
group_key | array | No | Filter by specific group keys |
start_date | string (YYYY-MM-DD) | No | Start of date range |
end_date | string (YYYY-MM-DD) | No | End of date range |
sort_by | string | No | Sort field |
sort_direction | string | No | Sort direction: asc or desc |
limit | integer | No | Max results (1-500, default: 50) |
offset | integer | No | Pagination offset (default: 0) |
Example prompt: "Show me all high-severity cost anomalies from the last 30 days."
get_anomaly
Get a single anomaly by ID with computed impact metrics and metadata. Use after list_anomalies for deeper inspection.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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 before filtering recommendations.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
cloud_provider | string | No | Filter by cloud provider |
Example prompt: "What types of cost optimization scenarios does DigiUsher check for?"
get_scenario_by_id
Get one recommendation scenario by ID, including threshold definitions and optimization detection metadata.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
body | object | Yes | List parameters |
Body fields:
| Field | Type | Required | Description |
|---|---|---|---|
status | array | No | Filter by status: open, applied, dismissed, snoozed, auto_resolved, stale |
severity | array | No | Filter by severity: low, medium, high, critical |
scenario_id | array | 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 | No | Filter by data source |
assignee_id | array | No | Filter by assignee |
resource_type | array | No | Filter by resource type |
region | array | No | Filter by region |
service | array | No | Filter by service |
resource_tags | array | No | Filter by resource tags |
group_by | string | No | Group results by: scenario_id, severity, data_source_id, region, service |
sort_by | string | No | Sort field: annual_savings, monthly_savings, severity, created_at, last_seen_at, status |
sort_direction | string | No | Sort direction: asc or desc |
limit | integer | No | Max results (1-500, default: 50) |
offset | integer | No | Pagination offset (default: 0) |
Example prompt: "Show me the top 5 open recommendations sorted by 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 | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
body | object | Yes | Summary parameters (see below) |
Body fields:
| Field | Type | Required | Description |
|---|---|---|---|
status | array | No | Filter by status: open, applied, dismissed, snoozed, auto_resolved, stale |
severity | array | No | Filter by severity |
scenario_id | array | No | Filter by scenario |
scenario_tags | array | No | Filter by scenario tags |
data_source_id | array | No | Filter by data source |
assignee_id | array | No | Filter by assignee |
resource_type | array | No | Filter by resource type |
region | array | No | Filter by region |
service | array | No | Filter by service |
resource_tags | array | No | Filter by resource tags |
group_by | string | No | Group results by: scenario_id, severity, data_source_id, region, service |
Example prompt: "What's the total potential savings from all open recommendations?"
get_recommendation
Get one recommendation by ID, including automation status and detailed payload.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
recommendation_id | UUID | Yes | Recommendation ID |
Example prompt: "Show me the full details of recommendation abc-123."
KPIs
list_kpi_definitions
List available KPI definitions, including units, categories, and favorable direction. Use before snapshot or time-series calls to discover kpi_ids.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
Available KPIs:
| KPI ID | Description |
|---|---|
effective_savings_rate | Overall savings rate from discounts and optimizations |
compute_commitment_coverage | Percentage of compute covered by commitments |
commitment_discount_waste | Wasted spend from unused commitments |
allocation_accuracy_index | How accurately costs are allocated to teams |
compute_cost_per_core | Cost per compute core |
cost_per_gb_stored | Storage cost per GB |
legacy_resource_percentage | Percentage of resources on legacy/previous-gen types |
cost_optimization_index | Overall optimization score |
Example prompt: "What FinOps KPIs are available for my organization?"
get_kpi_snapshots
Get KPI values for a single date.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
date | string (YYYY-MM-DD) | No | Date for the snapshot (defaults to latest) |
kpi_ids | array | No | Filter by specific KPI IDs |
Example prompt: "What are our current KPI values?"
get_kpi_time_series
Get KPI values across a date range. start_date must be on or before end_date.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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 specific KPI IDs |
Example prompt: "How has our effective savings rate trended over the last 3 months?"
get_unit_economics
Calculate cost per unit of business value by combining pool costs with North Star Metric (NSM) values.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
body | object | Yes | Unit economics parameters |
Body fields:
| Field | Type | Required | Description |
|---|---|---|---|
start_date | string (YYYY-MM-DD) | Yes | Start of date range |
end_date | string (YYYY-MM-DD) | Yes | End of date range (inclusive) |
nsm_key_id | UUID | Yes | North Star Metric key ID |
granularity | string | No | Time granularity: day, week, month (default: month). Must be equal to or coarser than the NSM key's granularity |
view | string | No | Cost allocation view: showback or chargeback |
pool_id | UUID | No | Filter by specific cost pool |
group_by | string | No | Group results by dimension |
filters | array | No | Dimension filters |
Example prompt: "What's our cost per transaction over the last quarter?"
Chargeback
get_chargeback_for_month
Get chargeback data for a specific month. Returns persisted runs when available, or on-the-fly computed results.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
month | string (YYYY-MM-DD) | Yes | First day of the month (e.g., "2026-01-01") |
aggregate_flows | boolean | No | Set to true for Sankey-style flow summaries |
Example prompt: "Show me the chargeback data for January 2026."
get_cost_allocation_summary
Get showback or chargeback summaries across one or more months. start_date is automatically snapped to the start of the month; end_date is inclusive and can be any date.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
body | object | Yes | Summary parameters (see below) |
Body fields:
| Field | Type | Required | Description |
|---|---|---|---|
start_date | string (YYYY-MM-DD) | Yes | Start date (snapped to start of month) |
end_date | string (YYYY-MM-DD) | Yes | End date (inclusive, any date) |
pool_id | UUID | No | Filter by specific cost pool |
granularity | string | No | Time granularity |
filters | object | No | Additional filters |
Example prompt: "Show me cost allocation across teams for Q1 2026."
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 | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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 | View type: showback or chargeback |
Example prompt: "What services and regions are available for chargeback filtering?"
Forecasting
get_forecast_summary
Get a forecast overview for the organization or a specific showback pool. Returns projected totals, trend direction, and confidence range. Omit group_type and group_key for the org-level forecast.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
group_type | string | No | Group type (e.g., SHOWBACK_POOL) |
group_key | UUID | No | Group key (e.g., pool 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. Omit group_type and group_key for the org-level series.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
group_type | string | No | Group type (e.g., SHOWBACK_POOL) |
group_key | UUID | No | Group key (e.g., pool ID) |
Example prompt: "Show me the daily forecast trend with confidence bands for next month."
get_forecast_batch
Get per-entry forecast summaries for all entries of a given group_type in one call. Use group_type=SHOWBACK_POOL to get forecast summaries for every pool at once. ORGANIZATION is not a valid group_type here — use get_forecast_summary instead.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
group_type | string | Yes | Group type (e.g., SHOWBACK_POOL) |
Example prompt: "Give me forecast summaries for all cost pools at once."
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 | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
search | string | No | Search filter |
limit | integer | No | Max results |
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 | Description |
|---|---|---|---|
organization_id | UUID | Yes | 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 | Max results |
Example prompt: "What regions do our EC2 instances run in?"
get_resource_time_series
Get metric time-series data for a specific discovered cloud resource. Returns daily metric values over the requested date range (default: last 30 days).
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
discovered_resource_id | UUID | Yes | Resource ID |
start_date | string (YYYY-MM-DD) | No | Start of date range (defaults to 30 days ago) |
end_date | string (YYYY-MM-DD) | No | End of date range (defaults to today) |
Example prompt: "Show me the CPU utilization metrics for resource abc-123 over the last 30 days."
DigiUsher Documentation