Skip to main content

Infracost MCP Server

The Infracost MCP server connects an AI assistant to your Infracost organization. Instead of switching to the dashboard, you ask in plain language, such as "what's the biggest cost saving open on us right now?", and the assistant reads your findings, guardrails, policies, and issues to answer. When you want something fixed, it drafts the pull request for you to approve.

It is a remote server at https://mcp.infracost.io. There is nothing to install, and nothing runs on your machine.

What you can ask​

Once connected, ask your assistant things like:

  • "What are the top five cost savings open in Infracost?"
  • "Show me finding ABC. What's causing it, and what would fixing it involve?"
  • "Which guardrails fired this week, and which pull requests triggered them?"
  • "Draft a fix for the idle RDS instance, but show me the change before you open anything."
  • "Which repos are breaching our tagging policy?"

The assistant can also make changes, such as opening a pull request, creating a ticket, or resolving a finding, but only when you ask it to, and it is instructed to show you the change first. See What it can change.

Which credential do I need?​

Everything below turns on one question: is this for a person, or for a system?

You are connectingUseIdentity
A person — you, in your editor or chat assistantSign in, or a personal infracost_mcp_ tokenYours. Every action is attributed to you
A system — a portal, a scheduled job, a botAn organization ics_ service account tokenThe organization's. No person behind it

Signing in and pasting a personal token are two ways to prove you are you. They carry identical access; only your client decides which is open to you.

Connect your personal assistant​

Claude​

  1. In Claude, open Settings → Connectors.
  2. Find Infracost in the connector directory and select Connect. If you are adding it before it appears in the directory, choose Add custom connector and enter https://mcp.infracost.io.
  3. Sign in with your Infracost account and approve the access request.

Claude Code​

claude mcp add --transport http infracost https://mcp.infracost.io

Then run /mcp in a session and choose infracost to sign in.

ChatGPT​

  1. Open Settings → Connectors → Create.
  2. Enter https://mcp.infracost.io as the MCP server URL.
  3. Sign in with your Infracost account when prompted.

Cursor, Zed, and any other client​

Sign-in with your Infracost account works for the clients above, because each one is registered with Infracost ahead of time. Infracost does not let a client register itself, so a client that is not on that list cannot use the sign-in flow.

For any other client, use an MCP token instead:

  1. In dashboard.infracost.io, open your user settings and find MCP Tokens.
  2. Create a token, give it a name and an expiry, and copy it. It starts with infracost_mcp_.
  3. Configure your client to send it as a bearer token against https://mcp.infracost.io:
Authorization: Bearer infracost_mcp_...

This is not a lesser credential. An infracost_mcp_ token carries exactly what signing in carries: the same tools, the same access, the same attribution to you. It belongs to you, so treat it like a password, and revoke it from the same screen at any time.

If you want your client added to the sign-in flow, email hello@infracost.io with the client and the callback URL it uses.

Connect your organization's platform tooling​

warning

Do not use a personal MCP token for these. A personal token is linked to an engineer's identity. It will be coupled to their access, every action is attributed to them, and it will breaks if they change role or leave.

If you are building something that connects to Infracost on behalf of your organization rather than on behalf of a named engineer use a service account token.

This includes integrations like:

  • An internal portal or dashboard that shows cost findings to the whole engineering org
  • A scheduled job that pulls findings into a data warehouse, a weekly report, or Slack
  • A bot, workflow, or agent that runs on a timer with nobody watching
  • Anything deployed to your infrastructure, where a credential has to outlive whoever wrote it

A service account has no such problem. It belongs to the organization, it is created and revoked by an admin who never has to touch anyone's account, and its access does not change when people join or leave.

Create a service account token​

  1. In dashboard.infracost.io, open Org Settings > API tokens > Service accounts.
  2. Create a service account and copy its token. It starts with ics_.
  3. Send it as a bearer token against https://mcp.infracost.io, exactly like a personal token.

Create one service account per integration rather than sharing a single token, so you can revoke one without taking down the rest and can tell from the token which system is calling.

What a service account can do​

A service account gets every read tool a person gets, and can draft a fix. It cannot change anything.

create_fix, retry_action, update_finding_status, and update_task_status are not available. The first two put a pull request or a ticket in your own repository or tracker. The other two look internal but are not: dismissing a finding or a task closes the pull request Infracost opened for it, and comments on it. A service account token is shared, so no person stands behind any of that. Draft the change with preview_fix and have someone signed in create it.

Choosing an organization​

If you belong to more than one Infracost organization, say which one you mean, for example "in the Acme org, show me the top savings", or let the assistant ask. It will use your default organization if you do not say.

Every tool except the two that identify you requires an organization, so this is the first thing an assistant establishes in a conversation.

What it can read​

The connector sees exactly what you see in the Infracost dashboard, and only for organizations you are a member of. It cannot reach another customer's data, and it cannot see more than your own role allows.

AreaWhat the assistant can read
FindingsCost savings findings, their tasks, actions, events, and estimated yearly savings
GuardrailsConfigured guardrails and the events where they fired, including the triggering pull request and commit
PoliciesFinOps, tagging, and cloud security policies
IssuesDashboard issues and their history
AccountYour name, email, and the organizations available to you

It does not read your cloud credentials, your source code, or anything else Infracost holds on your behalf.

What it can change​

Four tools make changes, and all four are marked as such so your assistant asks before using them.

ToolWhat it does
create_fixOpens a pull request, creates a ticket, or records a manual action
retry_actionRe-queues an action that previously failed
update_finding_statusResolves or dismisses a finding
update_task_statusConfirms, corrects, or dismisses a task

The intended flow for a fix is two steps: preview_fix drafts the change without creating anything, you read it, and create_fix only runs once you approve. preview_fix is read-only, so you can explore options freely.

Everything an assistant does is attributed to you in Infracost's own history, exactly as if you had done it in the dashboard.

Tool reference​

Seventeen tools, thirteen read-only:

ToolAccessPurpose
whoamireadWho you are signed in as
list_organizationsreadOrganizations available to you
list_findingsreadList findings by view: active, resolved, or dismissed
get_findingreadOne finding with its tasks, actions, and events
preview_fixreadDraft a pull request or ticket without creating it
create_fixwriteCreate the pull request, ticket, or manual action
update_finding_statuswriteResolve or dismiss a finding
update_task_statuswriteConfirm, correct, or dismiss a task
retry_actionwriteRe-queue a failed action
list_guardrailsreadConfigured cost guardrails
get_guardrailreadOne guardrail in full
list_guardrail_eventsreadGuardrail trigger events, newest first
list_finops_policiesreadFinOps policies
list_tagging_policiesreadTagging policies
list_cloud_security_policiesreadCloud security policies
list_issuesreadDashboard issues
get_issuereadOne issue with its event history

Troubleshooting​

The sign-in window opens but access is denied. Your Infracost account must be active and a member of at least one organization. Check you can sign in at dashboard.infracost.io first.

The assistant says it cannot find a tool. You are probably connected with a service account, which sees a reduced set — see What a service account can do. Signing in and using a personal infracost_mcp_ token both count as you, and both see every tool.

Tool calls fail with an organization error. Name the organization explicitly in your question, or ask the assistant to run list_organizations and use an ID from the result.

Nothing comes back for findings. Findings come from Infracost Fix. If your organization has not connected a cloud account yet, there is nothing to list. See Getting Started with Infracost Fix.

Privacy and data handling​

Your conversation with your assistant is governed by that assistant's own terms. What Infracost receives, stores, and shares is covered by the Infracost Privacy Policy.

The connector holds no long-lived copy of your data. Each request is authorized as you, served from Infracost Cloud, and returned to your assistant.