Infracost MCP Server
The Infracost MCP Server enables Claude to estimate and manage Terraform infrastructure costs using Infracost CLI and Cloud API.
Cost Analysis & Estimation: Generate detailed resource-level cost breakdowns for Terraform configurations, compare costs between different versions or branches, and format reports in multiple formats (JSON, HTML, table, diff). Upload estimates to Infracost Cloud for centralized tracking.
Pull Request Integration: Post and update cost estimate comments automatically to GitHub, GitLab, Azure Repos, or Bitbucket pull requests.
Tagging Policies: List, get, create, update, and delete tagging policies that enforce mandatory tags with validation rules (ANY value, LIST of allowed values, or REGEX patterns). Configure policy scope with filters for repositories, projects, resources, and branches. Block or comment on non-compliant PRs.
Cost Guardrails: List, get, create, update, and delete cost guardrails to control infrastructure spending. Set thresholds for total costs, cost increases (dollar amounts), or percentage increases. Block expensive PRs exceeding thresholds and send webhook notifications. Scope guardrails to all projects, specific repositories, or specific projects.
Custom Properties: Upload custom property values via CSV for resource classification.
Usage Templates: Access predefined usage YAML files (small, medium, large, example) as MCP resources for realistic cost estimation with different usage patterns.
Enables posting cost comments and estimates to Bitbucket pull requests for Terraform infrastructure changes.
Enables posting cost comments and estimates to GitHub pull requests for Terraform infrastructure changes.
Enables posting cost comments and estimates to GitLab pull requests for Terraform infrastructure changes.
Provides tools for Terraform cost estimation and cloud governance, including generating cost breakdowns, comparing configurations, creating tagging policies, setting up cost guardrails, and managing custom properties for resource classification.
Provides cost analysis capabilities for Terraform configurations, including breakdown generation, configuration comparison, and cost estimation for infrastructure as code.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Infracost MCP Servergenerate a cost breakdown for my Terraform config in ./infrastructure"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Infracost MCP Server
MCP server that lets Claude interact with Infracost for Terraform cost estimation and cloud governance. Works with Claude Desktop and Claude Code.
What it does
Generate cost breakdowns for Terraform configurations
Compare costs between different configs or branches
Create and manage tagging policies in Infracost Cloud
Set up cost guardrails that block expensive PRs
Post cost comments to GitHub/GitLab/Azure/Bitbucket PRs
Upload custom properties for resource classification
Access predefined usage YAML files for cost estimation
Related MCP server: kubopt
Prerequisites
Node.js >= 18
Infracost CLI (for cost estimation tools)
Infracost service token from Infracost Cloud > Org Settings > API tokens
Installation
git clone <repo-url> infracost_mcp
cd infracost_mcp
npm install
npm run buildConfiguration
Create a .env file in the project root:
INFRACOST_SERVICE_TOKEN=ics_v1_your_token_here
INFRACOST_ORG=your_org_slugGet your service token from the Infracost Cloud dashboard under Org Settings > API tokens.
Usage
With Claude Code
The repo includes .mcp.json and .claude/agents/ so it works out of the box - just open the project in Claude Code and the Infracost tools will be available.
With Claude Desktop
Add to your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"infracost": {
"command": "node",
"args": ["/absolute/path/to/infracost_mcp/dist/index.js"],
"env": {
"INFRACOST_SERVICE_TOKEN": "ics_v1_your_token"
}
}
}
}Restart Claude Desktop after updating the config.
Examples
Natural Language Queries
Ask Claude things like:
Cost Estimation:
"What's the monthly cost of my Terraform in ./infrastructure?"
"Show me a cost breakdown for ./terraform/prod in table format"
"Generate an HTML cost report and save it to report.html"
"Upload the cost estimate from infracost.json to Infracost Cloud"
Cost Comparison:
"Compare costs between ./staging and ./prod configs"
"What's the cost difference if I switch from t3.medium to t3.large?"
"Show me cost changes between the current branch and main"
Tagging Policies:
"Create a tagging policy that requires Environment and Owner tags"
"List all tagging policies for my organization"
"Add a tagging policy that allows only 'dev', 'staging', 'prod' for Environment tags"
"Update the tagging policy to also require a CostCenter tag"
Cost Guardrails:
"Set up a guardrail that blocks PRs adding more than $200/month"
"Create a guardrail that warns when total infrastructure cost exceeds $10k/month"
"Block PRs with cost increases over 25% for my production repo"
"List all active guardrails"
Pull Request Integration:
"Post the cost estimate from infracost.json to GitHub PR #123 in owner/repo"
"Add a cost comment to the current GitLab merge request"
JSON Examples
Generate cost breakdown:
{
"path": "./terraform/prod",
"format": "json",
"outFile": "cost-estimate.json"
}Compare configurations:
{
"path": "./terraform/current",
"compareTo": "./terraform/baseline",
"format": "diff"
}Create tagging policy:
{
"name": "Required tags policy",
"prComment": true,
"blockPr": true,
"tags": [
{
"key": "Environment",
"mandatory": true,
"valueType": "LIST",
"allowedValues": ["dev", "staging", "prod"]
},
{
"key": "Owner",
"mandatory": true,
"valueType": "REGEX",
"allowedRegex": "^[a-z]+\\.[a-z]+@company\\.com$"
}
]
}Create cost guardrail:
{
"name": "Production cost limit",
"scope": {
"type": "REPO",
"repositories": ["myorg/prod-infrastructure"]
},
"increasePercentThreshold": 10,
"totalThreshold": 50000,
"blockPullRequest": true,
"commentOnPullRequest": true
}See docs/EXAMPLES.md for more detailed examples.
Available Tools
CLI Tools (require Infracost CLI)
infracost_breakdown- Generate cost breakdown for Terraform infrastructureinfracost_diff- Show cost differences between two configurationsinfracost_output- Combine and format Infracost JSON filesinfracost_upload- Upload cost estimates to Infracost Cloudinfracost_comment- Post cost comments to pull requests
Cloud API Tools (require service token)
Tagging Policies:
infracost_cloud_list_tagging_policies- List all tagging policiesinfracost_cloud_get_tagging_policy- Get a specific tagging policyinfracost_cloud_create_tagging_policy- Create a new tagging policyinfracost_cloud_update_tagging_policy- Update an existing tagging policyinfracost_cloud_delete_tagging_policy- Delete a tagging policy
Guardrails:
infracost_cloud_list_guardrails- List all guardrailsinfracost_cloud_get_guardrail- Get a specific guardrailinfracost_cloud_create_guardrail- Create a cost guardrailinfracost_cloud_update_guardrail- Update an existing guardrailinfracost_cloud_delete_guardrail- Delete a guardrail
Custom Properties:
infracost_cloud_upload_custom_properties- Upload custom property values via CSV
MCP Resources
The server provides predefined Infracost usage YAML files as MCP resources:
infracost://usage/small- Small usage defaults ($5/month) for development environmentsinfracost://usage/medium- Medium usage defaults ($10/month) for staging environmentsinfracost://usage/large- Large usage defaults ($20/month) for production environmentsinfracost://usage/example- Example template showing how to customize usage values
These resources can be used to understand Infracost usage files or as templates for creating custom usage configurations. Claude can access these resources directly to help you set up cost estimation with realistic usage patterns.
Project Structure
src/- TypeScript source codedist/- Compiled JavaScript output (created bynpm run build)resources/- Predefined Infracost usage YAML filesdocs/- Additional documentation and examples.claude/- Claude Code agent configuration
Development
npm run build # Compile TypeScript
npm run watch # Watch mode for development
npm start # Run the MCP serverTroubleshooting
CLI tools not working:
Verify Infracost CLI is installed:
infracost --versionEnsure
INFRACOST_SERVICE_TOKENis set correctly
Cloud API errors:
Check that your service token has the necessary permissions
Verify the organization slug is correct
Server not connecting:
Ensure the path to
dist/index.jsis absolute in your MCP configRestart Claude Desktop after making config changes
Check that
npm run buildcompleted successfully
No resources found:
Run
terraform initin your Terraform directory firstVerify the path to your Terraform files is correct
Resources
License
MIT
Available Tools
16 toolsinfracost_breakdownB
Generate a cost breakdown for Terraform infrastructure. Analyzes Terraform configuration and provides detailed cost estimates for resources. Requires infracost CLI to be installed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to Terraform directory or plan JSON file | |
| format | No | Output format (default: table) | |
| outFile | No | Save output to a file | |
| terraformVarFile | No | Terraform variable file paths | |
| terraformVar | No | Terraform variables as key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the requirement for infracost CLI installation, which is useful context. However, it doesn't describe key behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, or what happens if the path is invalid. For a tool with 5 parameters and no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences that efficiently convey the tool's purpose and a key requirement. It's front-loaded with the main function, and each sentence adds value without redundancy. However, it could be slightly more structured by explicitly separating purpose from prerequisites.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, and no annotations), the description is moderately complete. It covers the core purpose and a prerequisite but lacks details on behavioral aspects, output format implications beyond the 'format' parameter, and how it integrates with sibling tools. For a tool without annotations or output schema, more context on what to expect from the operation would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear documentation for all 5 parameters. The description adds minimal value beyond the schema, only implying that the tool analyzes Terraform configuration, which relates to the 'path' parameter. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't significantly enhance parameter understanding beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate a cost breakdown for Terraform infrastructure' with the verb 'generate' and resource 'cost breakdown'. It specifies it analyzes Terraform configuration and provides cost estimates. However, it doesn't explicitly distinguish this from sibling tools like infracost_diff or infracost_output, which also relate to cost analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by stating it 'Requires infracost CLI to be installed', which is a prerequisite. However, it doesn't offer explicit guidance on when to use this tool versus alternatives like infracost_diff (for comparing costs) or infracost_output (for formatting output), nor does it specify scenarios where this tool is preferred over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_create_guardrailB
Create cost guardrails in Infracost Cloud that notify stakeholders or block PRs when cost thresholds are exceeded. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| name | Yes | Name for the guardrail | |
| scope | Yes | Scope configuration | |
| increaseThreshold | No | Threshold for cost increases (monthly dollar amount) | |
| increasePercentThreshold | No | Threshold for cost increases (percentage) | |
| totalThreshold | No | Threshold for total cost (monthly dollar amount) | |
| message | No | Custom message to display when threshold is exceeded | |
| webhookUrl | No | Webhook URL to notify when threshold is exceeded | |
| blockPullRequest | No | Whether to block PR when threshold is exceeded | |
| commentOnPullRequest | No | Whether to comment on PR when threshold is exceeded |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions the authentication requirement (INFRACOST_SERVICE_TOKEN) but doesn't disclose other behavioral traits like whether this is a mutating operation (implied by 'create'), potential side effects, rate limits, or what happens on success/failure. The description is minimal beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences: one stating the purpose and one stating the authentication requirement. Both sentences earn their place, though it could be slightly more structured by separating purpose from prerequisites.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 10 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after creation, potential errors, or the relationship between parameters (e.g., how thresholds interact). The authentication requirement is noted, but other critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('create'), resource ('cost guardrails in Infracost Cloud'), and purpose ('notify stakeholders or block PRs when cost thresholds are exceeded'). It distinguishes from siblings like infracost_cloud_list_guardrails (list) and infracost_cloud_update_guardrail (update) by specifying creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when setting up cost monitoring/control mechanisms, but doesn't explicitly state when to use this tool versus alternatives like infracost_cloud_update_guardrail or infracost_cloud_get_guardrail. It mentions the INFRACOST_SERVICE_TOKEN requirement, which is a prerequisite rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_create_tagging_policyB
Create a new tagging policy in Infracost Cloud for tag validation in pull requests. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| name | Yes | Name for the tagging policy | |
| message | No | The message to display in the PR comment | |
| prComment | No | Whether to add a comment to the PR | |
| blockPr | No | Whether to block the PR | |
| tags | Yes | Array of tag definitions | |
| filters | No | Filters to limit scope of the policy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the authentication requirement (INFRACOST_SERVICE_TOKEN), which is useful, but doesn't describe other behavioral traits like whether this is a write operation (implied by 'Create'), potential side effects, rate limits, or what happens on success/failure. The description adds some context but leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that cover the core purpose and a key requirement. It's front-loaded with the main action and purpose. However, the second sentence about the environment variable could be integrated more smoothly, and there's room for slightly more efficient phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters with nested objects, no annotations, no output schema), the description is somewhat incomplete. It covers the basic purpose and authentication but doesn't address behavioral aspects like what the tool returns, error conditions, or how it interacts with the sibling tools. For a creation tool with significant parameter complexity, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. According to the rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new tagging policy') and the resource ('in Infracost Cloud'), with the purpose being 'for tag validation in pull requests'. It distinguishes from siblings like 'infracost_cloud_update_tagging_policy' by specifying creation rather than modification, though it doesn't explicitly contrast with all siblings like 'infracost_cloud_get_tagging_policy'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context about when to use it ('for tag validation in pull requests') and mentions a prerequisite ('Requires INFRACOST_SERVICE_TOKEN environment variable'), but it doesn't explicitly state when to choose this tool over alternatives like 'infracost_cloud_create_guardrail' or when not to use it. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_delete_guardrailA
Delete a guardrail from Infracost Cloud. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| guardrailId | Yes | Guardrail ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the authentication requirement (INFRACOST_SERVICE_TOKEN), which is crucial behavioral context. However, it lacks details on potential side effects (e.g., irreversible deletion, impact on associated resources), error handling, or rate limits, leaving gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a critical prerequisite. Every word earns its place with no redundancy or fluff, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deletion tool with no annotations and no output schema, the description is minimally adequate. It covers the purpose and auth requirement but lacks details on behavioral traits (e.g., destructiveness, confirmation steps) and output expectations. Given the complexity of a delete operation, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (orgSlug, guardrailId). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete') and resource ('a guardrail from Infracost Cloud'), distinguishing it from sibling tools like infracost_cloud_get_guardrail (read) and infracost_cloud_create_guardrail (create). It provides a complete verb+resource statement without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('Delete a guardrail') and includes a prerequisite ('Requires INFRACOST_SERVICE_TOKEN environment variable'), which provides clear context. However, it does not specify when NOT to use it or name alternatives (e.g., update vs. delete), which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_delete_tagging_policyC
Delete a tagging policy from Infracost Cloud. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| policyId | Yes | Policy ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the auth requirement, which is useful behavioral context. However, it doesn't describe the mutation's effects (e.g., permanence, impact on associated resources), error conditions, or response format. For a destructive operation with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and includes essential auth context. There is no wasted verbiage or redundancy, making it appropriately sized and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a destructive mutation with no annotations and no output schema), the description is incomplete. It covers the auth requirement but omits critical details like the mutation's consequences, success/error responses, or how it fits into broader workflows. For a delete operation, this leaves the agent under-informed about potential risks and outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (orgSlug, policyId). The description adds no parameter-specific information beyond what's in the schema. According to the rules, with high schema coverage, the baseline is 3 even without param details in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a tagging policy from Infracost Cloud'), making the purpose unambiguous. It distinguishes from siblings like 'infracost_cloud_create_tagging_policy' and 'infracost_cloud_get_tagging_policy' by specifying deletion, though it doesn't explicitly contrast with all related tools (e.g., 'infracost_cloud_update_tagging_policy').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions an authentication requirement ('Requires INFRACOST_SERVICE_TOKEN environment variable'), which provides some context for when to use it (i.e., when authenticated). However, it lacks explicit guidance on when to choose this tool over alternatives (e.g., vs. updating a policy), prerequisites beyond auth, or scenarios where deletion is appropriate vs. other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_get_guardrailB
Get a specific guardrail from Infracost Cloud. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| guardrailId | Yes | Guardrail ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the required environment variable for authentication, which is useful context. However, it doesn't describe other key behaviors such as whether this is a read-only operation, potential error conditions, rate limits, or what the output looks like (especially since there's no output schema). This leaves significant gaps for a tool that fetches specific resources.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose in the first sentence, followed by an important prerequisite. Both sentences earn their place by providing essential information without redundancy. A perfect score is reserved for exceptionally polished descriptions, but this is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of fetching a specific resource, the lack of annotations, and no output schema, the description is incomplete. It mentions authentication but omits details about the guardrail concept, expected return format, error handling, or how it differs from sibling tools. For a tool with no structured behavioral hints, this leaves the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters (orgSlug and guardrailId) with their types and purposes. The description adds no additional parameter information beyond what's in the schema. According to the scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific guardrail from Infracost Cloud'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'infracost_cloud_list_guardrails' (which likely lists multiple guardrails) or explain what a 'guardrail' is in this context, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by mentioning the required INFRACOST_SERVICE_TOKEN environment variable, which implies authentication needs. However, it doesn't specify when to use this tool versus alternatives like 'infracost_cloud_list_guardrails' or 'infracost_cloud_update_guardrail', leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_get_tagging_policyB
Get a specific tagging policy from Infracost Cloud. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| policyId | Yes | Policy ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the authentication requirement (INFRACOST_SERVICE_TOKEN), which is a key behavioral trait for access control. However, it lacks details on other behaviors like error handling, rate limits, or what happens if the policy isn't found, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences that are front-loaded with the core purpose and essential requirement, with zero wasted words. Every sentence earns its place by providing critical information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving a specific resource), no annotations, and no output schema, the description is partially complete. It covers authentication and purpose but lacks details on output format, error cases, or dependencies beyond the environment variable, leaving room for improvement in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, fully documenting both parameters (orgSlug and policyId). The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific tagging policy from Infracost Cloud'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'infracost_cloud_list_tagging_policies' (which likely lists multiple policies) beyond implying specificity through 'a specific'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions an environment variable requirement ('Requires INFRACOST_SERVICE_TOKEN'), which provides some usage context, but it doesn't offer guidance on when to use this tool versus alternatives (e.g., vs. 'infracost_cloud_list_tagging_policies' for listing all policies or other get/update tools). No explicit when-not-to-use or sibling comparisons are included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_list_guardrailsB
List all guardrails in Infracost Cloud. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the authentication requirement (INFRACOST_SERVICE_TOKEN), which is valuable context. However, it doesn't describe what 'list all guardrails' entails—such as pagination, rate limits, or return format—leaving gaps in behavioral understanding for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: one stating the purpose and another noting the authentication requirement. It's front-loaded with the main action, but the second sentence could be integrated more smoothly, and there's minor room for improvement in flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the purpose and authentication need but lacks details on output behavior (e.g., what data is returned) and doesn't leverage sibling context for completeness, making it functional but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'orgSlug' well-documented in the schema. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all guardrails in Infracost Cloud'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'infracost_cloud_get_guardrail' (singular) or 'infracost_cloud_list_tagging_policies', missing an opportunity for clearer sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by mentioning the required environment variable, which implies when the tool can be used (when authentication is set up). However, it doesn't offer explicit guidance on when to choose this tool over alternatives like 'infracost_cloud_get_guardrail' or 'infracost_cloud_list_tagging_policies', leaving usage decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_list_tagging_policiesA
List all tagging policies in Infracost Cloud. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds value by specifying the authentication requirement (INFRACOST_SERVICE_TOKEN), which is crucial context. However, it lacks details on other behavioral traits such as rate limits, pagination, or the format of returned data, making it only moderately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that directly state the action and a key requirement. Every word earns its place, and it's front-loaded with the core purpose, making it efficient and well-structured without any waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional parameter, no output schema, no annotations), the description is somewhat complete by covering the purpose and authentication need. However, it lacks details on output format or behavioral constraints, which could be helpful for an AI agent, making it adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single parameter (orgSlug). The description doesn't add any parameter-specific information beyond what's in the schema, such as examples or additional constraints. This meets the baseline for high schema coverage but doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all tagging policies in Infracost Cloud'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'infracost_cloud_get_tagging_policy' (which likely retrieves a single policy) or 'infracost_cloud_list_guardrails' (which lists a different resource type), missing full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by mentioning the required environment variable (INFRACOST_SERVICE_TOKEN), which implies when authentication is needed. However, it doesn't offer explicit guidance on when to use this tool versus alternatives like 'infracost_cloud_get_tagging_policy' or 'infracost_cloud_list_guardrails', leaving usage somewhat implied rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_update_guardrailC
Update an existing guardrail in Infracost Cloud. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| guardrailId | Yes | Guardrail ID | |
| name | No | Name for the guardrail | |
| filters | No | Filters to limit scope of the guardrail | |
| increaseThreshold | No | Threshold for cost increases (monthly dollar amount) | |
| increasePercentThreshold | No | Threshold for cost increases (percentage) | |
| totalThreshold | No | Threshold for total cost (monthly dollar amount) | |
| message | No | Custom message to display when threshold is exceeded | |
| webhookUrl | No | Webhook URL to notify when threshold is exceeded | |
| blockPullRequest | No | Whether to block PR when threshold is exceeded | |
| commentOnPullRequest | No | Whether to comment on PR when threshold is exceeded |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the environment variable requirement, which is useful context, but fails to describe important behavioral aspects: what 'update' entails (partial vs. full updates), whether changes are reversible, what happens to unspecified fields, error conditions, or rate limits. For a mutation tool with 11 parameters, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with just two sentences that get straight to the point. The first sentence states the core purpose, and the second provides essential authentication context. There's no wasted verbiage, though it could be slightly more structured for optimal front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, mutation operation, no annotations, no output schema), the description is incomplete. It lacks information about what the tool returns, error handling, update behavior (partial/full), and how it differs from sibling tools. The environment variable mention helps but doesn't compensate for these significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema. According to the scoring rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing guardrail in Infracost Cloud'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'infracost_cloud_update_tagging_policy' or other update operations, which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions an environment variable requirement ('Requires INFRACOST_SERVICE_TOKEN'), which provides some usage context. However, it offers no guidance on when to use this tool versus alternatives like 'infracost_cloud_create_guardrail' or 'infracost_cloud_delete_guardrail', nor does it explain prerequisites beyond the token.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_update_tagging_policyC
Update tagging policies in Infracost Cloud with allowed tag values for validation in pull requests. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| policyId | Yes | Policy ID from the URL in Infracost Cloud UI | |
| name | No | Name for the tagging policy | |
| message | No | The message to display in the PR comment | |
| prComment | No | Whether to add a comment to the PR | |
| blockPr | No | Whether to block the PR | |
| tags | No | Array of tag definitions | |
| filters | No | Filters to limit scope of the policy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the authentication requirement (INFRACOST_SERVICE_TOKEN), which is useful, but lacks critical details: it doesn't specify that this is a mutation operation, what happens on success/failure, whether changes are reversible, or any rate limits. For an 8-parameter update tool with complex nested objects, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences. The first sentence states the purpose clearly, and the second adds the authentication requirement. No wasted words, though it could be slightly more structured with bullet points for key behaviors.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters with nested objects), no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or the full behavioral context needed for a mutation operation. The authentication hint helps but doesn't compensate for the missing behavioral transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. According to guidelines, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('tagging policies in Infracost Cloud'), and specifies the purpose ('with allowed tag values for validation in pull requests'). It distinguishes from siblings like create/delete/list tagging policies by focusing on updates, though it doesn't explicitly contrast with update_guardrail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the INFRACOST_SERVICE_TOKEN requirement, which is a prerequisite, but provides no guidance on when to use this tool versus alternatives like create_tagging_policy or update_guardrail. There's no explicit when/when-not context or sibling tool differentiation beyond the implied update action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_cloud_upload_custom_propertiesA
Upload custom property values to Infracost Cloud via CSV for resource classification. Requires INFRACOST_SERVICE_TOKEN environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| orgSlug | No | Organization slug from Infracost Cloud (defaults to INFRACOST_ORG env var) | |
| csvData | Yes | CSV data containing custom properties |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the authentication requirement (INFRACOST_SERVICE_TOKEN), which is useful context, but doesn't cover other behavioral aspects such as whether this is a read/write operation (implied as write from 'upload'), potential side effects, rate limits, or error handling. The description adds some value but leaves significant gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, consisting of two clear sentences that directly state the tool's purpose and a key requirement. There is no wasted verbiage, and every sentence earns its place by providing essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a write operation with authentication needs), lack of annotations, and no output schema, the description is moderately complete. It covers the core purpose and authentication, but misses details like behavioral traits, output format, or error scenarios. For a mutation tool with no structured safety hints, this leaves room for improvement in providing a fuller context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (orgSlug and csvData). The description adds no additional parameter semantics beyond what's in the schema, such as CSV format details or examples. This meets the baseline of 3 for high schema coverage, but doesn't enhance understanding of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Upload custom property values'), target ('to Infracost Cloud'), format ('via CSV'), and purpose ('for resource classification'), which is specific and informative. However, it doesn't explicitly differentiate this tool from sibling tools like 'infracost_upload' or other cloud-related tools, which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by mentioning the required environment variable ('INFRACOST_SERVICE_TOKEN'), which implies when this tool can be used (when authenticated). However, it lacks explicit guidance on when to use this tool versus alternatives like 'infracost_upload' or other cloud tools, and doesn't specify prerequisites beyond the token, leaving usage scenarios somewhat implied rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_commentA
Post cost estimate comments to pull requests on GitHub, GitLab, Azure Repos, or Bitbucket. Automatically updates existing comments. Requires infracost CLI to be installed and appropriate platform credentials.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to Infracost JSON file | |
| platform | Yes | Git platform | |
| repo | No | Repository in format owner/repo | |
| pullRequest | No | Pull request number | |
| commit | No | Commit SHA to associate comment with | |
| tag | No | Tag for comment identification | |
| behavior | No | How to handle existing comments (default: update) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it posts comments to pull requests, automatically updates existing ones (implying mutation), and requires external dependencies (infracost CLI and credentials). However, it doesn't mention rate limits, error handling, or what happens on failure, leaving some gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, the second adds critical behavioral detail (updates), and the third covers prerequisites. Every sentence earns its place with no wasted words, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 7 parameters, no annotations, no output schema), the description is mostly complete: it covers purpose, behavior, and prerequisites. However, it lacks details on return values or error cases, which would be helpful for a mutation tool. It compensates well with clear context but has minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining the 'path' parameter's relation to Infracost JSON or the 'behavior' enum implications. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Post cost estimate comments'), the target resources ('pull requests on GitHub, GitLab, Azure Repos, or Bitbucket'), and distinguishes from siblings by focusing on commenting functionality rather than breakdown, diff, or cloud management tools. It explicitly mentions 'Automatically updates existing comments' which further clarifies its unique behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for posting cost estimates to pull requests on specific platforms. It mentions prerequisites ('Requires infracost CLI to be installed and appropriate platform credentials') but does not explicitly state when NOT to use it or name alternatives among siblings, though the sibling tools are clearly for different purposes (e.g., infracost_breakdown for analysis, infracost_diff for comparisons).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_diffA
Show cost differences between two Terraform configurations. Compares baseline and current infrastructure to identify cost changes. Requires infracost CLI to be installed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to current Terraform directory or plan JSON file | |
| compareTo | Yes | Path to baseline Terraform directory or plan JSON file | |
| format | No | Output format (default: diff) | |
| outFile | No | Save output to a file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the prerequisite (infracost CLI installation) and the comparison function, but lacks details on permissions, rate limits, error handling, or output behavior. This is a moderate gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by additional context and prerequisites in just three concise sentences, with no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete for a tool with 4 parameters and 100% schema coverage. It covers the purpose and prerequisites but lacks details on behavioral traits like output format implications or error scenarios, which could be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any parameter-specific details beyond what the schema provides, such as examples or constraints, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('show cost differences', 'compares') and resources ('two Terraform configurations', 'baseline and current infrastructure'), and distinguishes it from siblings like infracost_breakdown by focusing on comparison rather than analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (comparing configurations for cost changes) and mentions a prerequisite (infracost CLI installation), but does not explicitly state when not to use it or name specific alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_outputB
Combine and format Infracost JSON files. Useful for merging multiple cost estimates or converting formats. Requires infracost CLI to be installed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to Infracost JSON file(s) - supports glob patterns | |
| format | No | Output format | |
| outFile | No | Save output to a file | |
| fields | No | Fields to include in output (e.g., ["price", "monthlyQuantity"]) | |
| showSkipped | No | Show skipped resources in output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions a prerequisite (infracost CLI installation) and hints at merging/formatting functions, but fails to disclose critical traits: whether this is a read-only or mutating operation, potential side effects (e.g., file creation with outFile), error handling, or performance considerations. For a tool with 5 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three concise sentences that are front-loaded with the core purpose. Each sentence adds value: the first states the action, the second gives usage context, and the third specifies a prerequisite. There is no wasted text, making it efficient, though it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no output schema, no annotations), the description is incomplete. It lacks details on behavioral traits, output expectations, error conditions, and how it differs from sibling tools. While it covers basic purpose and a prerequisite, it doesn't provide enough context for an agent to fully understand the tool's operation and limitations in this rich environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value beyond the schema, only implying that 'path' can handle multiple files via 'JSON files' and glob patterns, and 'format' relates to 'converting formats.' Since the schema does the heavy lifting, the baseline score of 3 is appropriate, with no extra semantic insights provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Combine and format Infracost JSON files' with specific verbs and resources. It distinguishes from siblings like infracost_breakdown or infracost_diff by focusing on post-processing output rather than cost analysis or comparison. However, it doesn't explicitly contrast with all siblings, keeping it at 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context with 'Useful for merging multiple cost estimates or converting formats,' which implies when to use it. It also mentions a prerequisite: 'Requires infracost CLI to be installed.' However, it lacks explicit guidance on when to choose this tool over alternatives like infracost_comment or infracost_upload, leaving usage somewhat implied rather than fully clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infracost_uploadB
Upload Infracost JSON output to Infracost Cloud for centralized cost tracking and reporting. Requires infracost CLI to be installed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to Infracost JSON file to upload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the prerequisite ('infracost CLI to be installed') and the action ('upload'), but lacks details on behavioral traits such as authentication requirements, rate limits, error handling, or what happens post-upload (e.g., data processing time). For a cloud upload tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a prerequisite. It's appropriately sized with minimal waste, though it could be slightly more structured by separating usage context from requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple input schema, the description provides basic purpose and a prerequisite. However, for a cloud upload tool, it lacks details on authentication, response format, or error scenarios, making it incomplete for full contextual understanding. It's adequate but has clear gaps in behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'path' documented in the schema as 'Path to Infracost JSON file to upload'. The description doesn't add any further meaning beyond this, such as file format specifics or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('upload') and resource ('Infracost JSON output to Infracost Cloud'), with the purpose of 'centralized cost tracking and reporting'. It distinguishes from siblings like 'infracost_breakdown' or 'infracost_output' by focusing on cloud upload rather than local analysis or output generation. However, it doesn't explicitly contrast with 'infracost_cloud_upload_custom_properties', which might handle different data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have Infracost JSON output and want to send it to the cloud service, with the prerequisite that 'infracost CLI to be installed'. It doesn't explicitly state when NOT to use it (e.g., vs. other upload tools) or name alternatives, leaving some ambiguity about the specific context among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
- First observed
infracost_breakdown - First observed
infracost_cloud_create_guardrail - First observed
infracost_cloud_create_tagging_policy - First observed
infracost_cloud_delete_guardrail - First observed
infracost_cloud_delete_tagging_policy - First observed
infracost_cloud_get_guardrail - First observed
infracost_cloud_get_tagging_policy - First observed
infracost_cloud_list_guardrails - First observed
infracost_cloud_list_tagging_policies - First observed
infracost_cloud_update_guardrail - First observed
infracost_cloud_update_tagging_policy - First observed
infracost_cloud_upload_custom_properties - First observed
infracost_comment - First observed
infracost_diff - First observed
infracost_output - First observed
infracost_upload
TDQS
Scored across 16 tools
Each tool has a clearly distinct purpose with no ambiguity. The breakdown, diff, output, upload, and comment tools handle different stages of cost analysis workflows, while the cloud tools are neatly organized into guardrail and tagging policy categories with full CRUD operations. The naming and descriptions make it easy to distinguish between local CLI operations and cloud management functions.
All tools follow a consistent snake_case naming pattern with a clear prefix structure: 'infracost_' for core tools and 'infracost_cloud_' for cloud-specific operations. Within each category, verbs like create, get, list, update, delete are used predictably, making the toolset highly readable and organized.
With 16 tools, the count is slightly high but reasonable for the server's dual purpose of local cost analysis and cloud management. It covers both domains thoroughly without feeling excessive, though it might be borderline for some users. The tools are well-scoped, with each serving a distinct function in the Infracost ecosystem.
The toolset provides complete coverage for the Infracost domain, including local cost breakdowns, comparisons, formatting, uploading, and commenting, plus full CRUD operations for cloud guardrails and tagging policies. There are no obvious gaps; agents can perform all expected workflows from analysis to cloud integration and policy management.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connects AI assistants to CloudQuell multi-cloud and AI cost, savings, anomaly, and budget data.
Ask your AI assistant a cost question. Get allocation, correlation, and explanation in one response. Costory connects Claude, Codex, or Cursor to normalized cost data across AWS, GCP, Azure, Datadog, OpenAI, and Anthropic. https://costory.io Free trial 14 days, 250 USD / month up to 10M Spend
- ZopDev MCPOAuthdev.zop
Cloud cost, inventory and governance on AWS/Azure/GCP. Read-only by default, optional scoped writes
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables users to analyze AWS costs, track spending trends, and detect anomalies directly within Claude Desktop using the AWS Cost Explorer API. It provides tools to identify major cost drivers and compare usage across different time periods through natural language queries.-
- AlicenseAqualityAmaintenanceKubernetes cluster cost analysis and optimization. Query costs, find savings opportunities, get rightsizing recommendations, and analyze pod spend across AKS, EKS, and GKE — directly from Claude612Apache 2.0
- FlicenseAqualityCmaintenanceEnables Claude to discover and understand infrastructure-as-code drift by listing projects with drift, analyzing Terraform plan outputs, and providing remediation information.4-
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to parse multi-cloud infrastructure-as-code files, query real-time pricing from AWS, Azure, and GCP, and generate cost estimates and comparison reports.11MIT