MCP Tool Reference
Most users do not need to call these tools by name. Ask your AI assistant the financial question you want answered and let it choose the appropriate Ternary capabilities.
For user-oriented examples, see What you can do and Example questions.
Tool index
| Tool | Purpose | Reads / writes |
|---|---|---|
ternary_list_tenants | List accessible tenants | Reads |
ternary_list_dimensions | Discover dimensions and measures | Reads |
ternary_get_dimension_values | Sample recent dimension values | Reads |
ternary_run_cost_query | Run an ad-hoc cost or usage query | Reads |
ternary_list_reports | Find saved reports | Reads |
ternary_get_report_data | Retrieve saved report rows | Reads |
ternary_create_report | Save a private report | Writes |
ternary_list_budgets | List budgets and health | Reads |
ternary_list_dashboards | Find dashboards | Reads |
ternary_get_dashboard_definition | Describe dashboard composition | Reads |
ternary_get_dashboard_delta | Compare a dashboard across two periods | Reads |
ternary_list_cost_alerts | List fired cost alerts | Reads |
ternary_list_recommendations | List savings recommendations | Reads |
ternary_get_ai_roi | Weigh AI spend against revenue | Reads |
search | Find supported Ternary content by name | Reads |
fetch | Retrieve a search result | Reads |
Access and discovery
ternary_list_tenants
ternary_list_tenantsLists the Ternary tenants available to the authenticated user.
Typical use: the assistant needs to determine which organization or tenant a question refers to.
Reads / writes: reads.
Other tenant-scoped tools use a tenantID returned from this list.
Empty list is not zero spendA user with no explicit tenant role can receive an empty tenant list even if other global access exists.
ternary_list_dimensions
ternary_list_dimensionsLists the dimensions and measures available for a tenant. The assistant uses this before a query so it can work with real Ternary field names instead of inventing schema fields.
Supports search and paging.
Typical use:
- Find the provider dimension
- Find service or account fields
- Discover tenant-specific fields available for grouping or filtering
Reads / writes: reads.
Important: field discovery is a technical step. Users can ask in business language rather than supplying schema field names themselves.
ternary_get_dimension_values
ternary_get_dimension_valuesReturns recent distinct values for a dimension. The assistant can use this to discover real values before applying a filter.
Example: after finding a service-name dimension, the assistant can retrieve actual service names before filtering for one of them.
Reads / writes: reads.
Important: sampled values are useful for discovery and should not be treated as a complete historical catalog for every period.
Cost analysis
ternary_run_cost_query
ternary_run_cost_queryRuns an ad-hoc cost or usage query.
The query can define:
- Date range
- Grouping dimensions
- Measures
- Filters
- Time precision
The response returns the largest groups first and includes a server-computed summary with:
- Exact total for the requested range
- Coverage of the returned rows
Current data source: FOCUS_BILLING
Typical use:
Show last month's spend by provider.
Show AWS spend by service for August.
Reads / writes: reads.
Important limitations:
- Non-FOCUS data sources are not currently available through this tool
- General period-over-period comparison can require multiple calls and host-side arithmetic
- Scope, period, currency, measure, and coverage should remain explicit in finance-critical interpretation
Reports
ternary_list_reports
ternary_list_reportsLists saved reports for a tenant.
Supports name-based search.
Typical use:
Find our Monthly Executive Summary report.
Reads / writes: reads.
ternary_get_report_data
ternary_get_report_dataRetrieves rows from a saved report one page at a time.
Typical use:
Show the data from the Monthly Executive Summary report.
Reads / writes: reads.
Important: a saved report carries business meaning from its configuration. The assistant should avoid guessing missing semantics if the available response does not make them explicit.
ternary_create_report
ternary_create_reportCreates a private saved report from a cost-query configuration.
This is the only current Ternary MCP write capability.
The report is:
- Saved privately to the authenticated user
- Visible in Ternary saved reports
- Created only when the user explicitly asks to keep the analysis
MCP cannot currently update or delete the report afterward.
Reads / writes: writes.
Budgets
ternary_list_budgets
ternary_list_budgetsLists budgets with the current figures shown by the Ternary budget evaluation.
The result can include:
- Budget amount
- Actual spend
- Projected month-end spend
- Health status
- Evaluation period
Budgets are ordered with the most severe statuses first and can be filtered by status.
Typical use:
Which budgets are over budget or at risk?
Reads / writes: reads.
Important limitations:
- Budget figures are a snapshot from the last evaluation
- The period can predate the current month
- No month-by-month history is exposed
- The budget projection is not the Ternary Forecasting product
Dashboards
ternary_list_dashboards
ternary_list_dashboardsLists dashboards available to the user. Supports name-based search.
Reads / writes: reads.
ternary_get_dashboard_definition
ternary_get_dashboard_definitionDescribes the composition of a dashboard. The result can identify widgets in reading order and resolve the report or budget represented by supported widgets.
Typical use:
What is included in the Executive dashboard?
Reads / writes: reads.
ternary_get_dashboard_delta
ternary_get_dashboard_deltaCompares supported dashboard report widgets across two time windows.
Can return:
- Current value
- Prior value
- Absolute change
- Percentage change
- Groups with the largest movements
The default comparison is the last seven full days against the seven full days before them.
Typical use:
What changed on the Executive dashboard?
Reads / writes: reads.
Important limitations:
- Up to 15 report widgets are compared per call
- Unsupported widgets are disclosed rather than assigned a misleading value
- Non-summable measures may not be compared
- Budget widgets pass through their evaluated status
- Invoice-month reports are compared over usage timestamps rather than their normal invoice-month accrual basis
Cost alerts
ternary_list_cost_alerts
ternary_list_cost_alertsLists alerts fired by the tenant's Ternary cost rules.
Covers:
- Anomaly detections
- Threshold breaches
Can return:
- Observed value
- Baseline
- Alert status
- Rule context
Defaults to the last 30 days.
Typical use:
Which cost alerts fired this month?
Reads / writes: reads.
Important limitations:
- The tool reads Ternary detections; it does not independently invent anomalies
- The rule shown is its current configuration
- Alert status is a user-managed triage status
Savings recommendations
ternary_list_recommendations
ternary_list_recommendationsLists current savings recommendations, ordered by estimated monthly savings.
Can cover supported optimization types such as:
- Idle resources
- Rightsizing
- Other currently applicable recommendations
Can be filtered by supported provider and state.
Typical use:
What are our largest current savings opportunities?
Reads / writes: reads.
Important limitations:
- Commitment inventory and commitment recommendations are not currently exposed
- The recommendation view reflects currently applicable recommendations from the current recommendation window
AI spend and revenue
ternary_get_ai_roi
ternary_get_ai_roiWeighs AI spend against revenue over a time window, for the whole tenant and for each value of one Custom Label, such as each product or team.
Can return:
- AI cost
- Revenue
- The ratios between AI cost and revenue
Defaults to the last 30 days.
Typical use:
How does our AI spend compare with revenue this month?
Show AI cost against revenue by product for last quarter.
Reads / writes: reads.
Important limitations:
- AI cost comes from Ternary's own AI classification of each billing row, not from service names or tags
- Revenue comes from the Revenue field of a bring-your-own-data (BYOD) import
- A per-label ratio also needs a billing rule that assigns the Custom Label to your revenue rows
- When revenue is missing for the window or not tagged with the label, the tool returns AI cost alone and names what is missing instead of estimating a ratio
- One Custom Label per question
Search and fetch
search
searchFinds supported Ternary content by name for clients that require the MCP search/fetch contract.
Current search content includes tenants and saved reports.
This tool is especially relevant to ChatGPT Deep research.
Reads / writes: reads.
fetch
fetchRetrieves a result returned by search.
Depending on the result, it can retrieve:
- Tenant summary information
- Report data rows
ChatGPT Deep research can use search and fetch, but not the full Ternary domain tool set.
Reads / writes: reads.
Write behavior
All tools above read Ternary data except:
ternary_create_report
Creating a report should happen only after an explicit user request to save an analysis.
Updated about 5 hours ago
