Tools Reference
Complete reference for all 25 read-only tools
The DigiUsher MCP Server exposes 25 read-only tools organized across 8 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?"
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, 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, e.g. [{"field": "cost", "direction": "desc"}] |
limit | integer | No | Max number of results |
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 |
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 | string | No | Filter by specific group key |
start_date | string (YYYY-MM-DD) | No | Start of date range |
end_date | string (YYYY-MM-DD) | No | End of date range |
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 | Description |
|---|---|---|
status | array | Filter by status: open, applied, dismissed, snoozed, auto_resolved, stale |
severity | array | Filter by severity |
scenario_id | array | Filter by scenario |
cloud_provider | string | Filter by cloud provider |
order_by | array | Sort order |
limit | integer | Max results |
offset | integer | Pagination offset |
Example prompt: "Show me the top 5 open recommendations sorted by savings."
get_savings_summary
Get aggregated potential savings from recommendations, with optional status filtering and grouping. Useful for executive summaries.
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | UUID | Yes | Organization ID |
status | array | No | Filter by status: open, applied, dismissed, snoozed, auto_resolved, stale |
group_by | string | No | Group results by: scenario_id, severity, data_source_id |
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 |
nsm_key_id | string | Yes | North Star Metric key ID |
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. Date rules: start_date must be the first day of a month; end_date must be the last day of a month.
| 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 | First day of start month (e.g., "2026-01-01") |
end_date | string (YYYY-MM-DD) | Yes | Last day of end month (e.g., "2026-03-31") |
pool_id | UUID | No | Filter by specific cost pool |
granularity | string | No | Time granularity |
Example prompt: "Show me cost allocation across teams for Q1 2026."
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?"
DigiUsher Documentation