get-cost-report-forecast
Given a Cost Report Token, Vantage can forecast the costs for a given time range. Vantage will return costs that are *predicted*, but have not yet been actually incurred.
If the user does not set a date, best to pick the next month as the default.
The report token can be used to link the user to the report in the Vantage Web UI. Build the link like this: https://console.vantage.sh/go/<CostReportToken>
Try it
get-myself
Get data that is available to the current auth token. This includes the list of Workspaces they have access to.
Try it
list-anomalies
Given a token of a Cost Report, look for anomalies in the report. You may optionally pass a Provider, like AWS to filter on. If you do pass a Provider, you can futher filter on a Service, like EC2 or S3.
The report token can be used to link the user to the report in the Vantage Web UI. Build the link like this: https://console.vantage.sh/go/<CostReportToken>
Try it
list-budgets
List all budgets available in the Vantage account. Budgets help track spending against predefined limits.
Use the page value of 1 to start.
A budget is built against a Cost Report. The Budget objects returned by this tool will have a "cost_report_token" field that contains the token of the Cost Report. The Cost Report has the "filter" field to know what is the range of providers & services that the budget is tracking.
When a user is looking at a Cost Report for a specific date range, they can decide if the proivers and services spend is higher than desired by looking at the budgets for that report and the date range of the budget.
The token of a budget can be used to link the user to the budget in the Vantage Web UI. Build the link like this: https://console.vantage.sh/go/<BudgetToken>
Try it
list-cost-integrations
List all cost provider integrations available to provide costs data from and their associated accounts.
Integrations are the cost providers that Vantage is configured to connect to and pull cost data from.
If a user wants to see their providers in the Vantage Web UI, they can visit https://console.vantage.sh/settings/integrations
Try it
list-cost-providers
List of cost providers available to query for a given Workspace. Can be used to filter costs down to a specific provider in VQL queries.
Try it
list-cost-reports
List all cost reports available. Cost reports are already created reports authored by a user in Vantage. If the user isn't asking about a specific report, it's better to use the query-costs tool.
When you first call this function, use the "Page" parameter of 1.
The 'Title' of a report is a good way to know what the report is about.
The 'filter' of a report also gives clues to the data it provides.
The 'token' of a report is a unique identifier for the report. It can be used to generate a link to the report in the Vantage Web UI. If a user wants to see a report, you can link them like this: https://console.vantage.sh/go/<token>
Vantage offers data related to a cost report: Forecasts. The same report token can be used on the get-cost-report-forecast tool and Vantage will forecast future costs.
Try it
list-cost-services
List of cost services available to query for a given Workspace. Can be used to filter costs down to a specific service in VQL queries.
Try it
list-costs
List the cost items inside a report. The Token of a Report must be provided. Use the page value of 1 to start.
The report token can be used to link the user to the report in the Vantage Web UI. Build the link like this: https://console.vantage.sh/go/<CostReportToken>
The DateBin parameter will let you get the information with fewer returned results.
When DateBin=day you get a record for each service spend on that day. For DateBin=week you get one entry per week,
with the accrued_at field set to the first day of the week, but the spend item represents spend for a full week.
Same with DateBin=month, each record returned covers a month of data. This lets you get answers with processing fewer
records. Only use day/week if needed, otherwise DateBin=month is preferred, and month is the value set if you pass no value for DateBin.
Try it
list-dashboards
List all dashboards available in the Vantage account. Dashboards provide visualizations of cost data.
Use the page value of 1 to start.
The token of a dashboard can be used to link the user to the dashboard in the Vantage Web UI. Build the link like this: https://console.vantage.sh/go/<token>
Try it
list-folders
Return all Folders for CostReports. Use the page value of 1 to start.
Try it
list-tag-values
Tags can have many values. Use this tool to find the values and service providers that are associated with a tag.
Try it
list-tags
List tags that can be used to filter costs and cost reports.
Tags are associated with one or more Cost Providers.
Tags can be edited in the Vantage Web UI, or have further details displayed there. Link a user to the tag page like this: https://console.vantage.sh/settings/tags?search_query=<tag>
Try it
list-unit-costs
Retrieve the unit costs for a given CostReport, with optional paging, date filters, and ordering.
Try it
query-costs
Query for costs in a Vantage Account. These are independent of a cost reports.
Use Vantage VQL to structure a query.
Queries must be scoped to a Workspace. Use the get-myself tool to know about available workspaces, and the get-cost-integrations tool to know about available cost providers. If the user didn't tell you a workspace it is best to ask them than to guess it.
It's best to set a date range of 30 days unless the user specifically wants to query for a longer time period.
Here is some more detailed info on using VQL:
All costs originate from a Cost Provider (generally a cloud company like AWS, Azure, Datadog) and then filter on a service that they provide (like EC2, S3, etc).
A cost provider is required on every VQL query.
VQL is always in parenthesis. Always use single quotes around names that are being queried.
To query on a cost provider, use this syntax: (costs.provider = '<provider name>'). The provider name must come from the list-cost-providers tool.
To query on a cost service, use this syntax: (costs.provider = '<provider name>' AND costs.service = '<service name>'). The service name must come from the list-cost-services tool.
You can only filter against one cost provider at a time. If you want to query for costs from two providers, you need to use the OR operator. Example: ((costs.provider = 'aws') OR (costs.provider = 'azure'))
You can otherwise use the IN system to compare against a list of items, like this: (costs.provider = 'aws' AND costs.service IN ('AWSQueueService', 'AWSLambda'))
To filter within a cost provider, keep the cost provider part and add a AND section, example: (costs.provider = 'aws' AND costs.service = 'Amazon Relational Database Service')
Many costs have tags on them. A tag is a "name" and one or more values.
To find an AWS cost that has a tag of "enviornment" the value "production", use this syntax: (costs.provider = 'aws' AND tags.name = 'environment' AND tags.value = 'production')
You can also query for any value of the "environment" tag, like this: (costs.provider = 'aws' AND tags.name = 'environment')
Items without a tag can also be filtered, example: (costs.provider = 'aws' AND tags.name = NULL)
Parenthesis can be nested. Here we surround an OR clause to look for either of two values for a tag: (costs.provider = 'aws' AND tags.name = 'environment' AND (tags.value = 'dev' OR tags.value = 'staging'))
A user can have more than one provider account. They can filter on provider accounts if they supply you with the account id. Example: (costs.provider = 'aws' AND costs.provider_account_id = '1000000717')
You can also combine top-level queries to find for two providers: ((costs.provider = 'datadog') OR (costs.provider = 'azure'))
Some cost providers operate in a specific region, you can filter using the costs.region field. Example: (costs.provider = 'aws' AND costs.region = 'us-east-1')
The DateBin parameter will let you get the information with fewer returned results.
When DateBin=day you get a record for each service spend on that day. For DateBin=week you get one entry per week,
with the accrued_at field set to the first day of the week, but the spend item represents spend for a full week.
Same with DateBin=month, each record returned covers a month of data. This lets you get answers with processing fewer
records. Only use day/week if needed, otherwise DateBin=month is preferred, and month is the value set if you pass no value for DateBin.
Try it
submit-user-feedback
Submit feedback on using the Vantage MCP Server. Ask the user if they'd like to provide feedback any time you sense they might be frustrated.
Stop suggesting if they say they're not interested in providing feedback.
Try it