Skip to main content

Your cloud bill can now answer questions in plain English

The hosted CloudYali MCP server gives Claude, ChatGPT, Cursor and any MCP client a read-only view of your cloud spend. Paste one URL and ask your bill anything.

Nishant Thorat

Nishant Thorat

Founder

12 min read
CloudYali MCP server: ask your cloud bill questions in plain English

Update, September 2026: the CloudYali MCP server is now hosted. Nothing to install, no Node, no terminal. Paste one URL into Claude, ChatGPT, Cursor or any remote MCP client, sign in, and ask.

If you work in FinOps, you have almost certainly run into both of these phrases by now: FinOps for AI, and AI for FinOps. The first one is about what your Bedrock and OpenAI lines are doing to your bill, and it gets most of the attention. The second one is the one I find genuinely interesting, and it gets talked about far more loosely.

So let me be concrete. The CloudYali MCP server is a hosted, read-only Model Context Protocol server that connects your CloudYali account to Claude, ChatGPT, Cursor, VS Code or any other MCP client. There is nothing to install: you paste one URL, sign in, and start asking. Thirty-five actions cover cost and usage, budgets, savings recommendations, cost anomalies and asset inventory. You ask a question in plain English, you get the answer from your own live data, and it cannot change a thing.

That is what we think "AI for FinOps" means in practice. Here is why we built it that way.

Every FinOps tool works about the same way

Every FinOps tool today, ours included, works roughly the same way. You build reports. You set up filters. You slice and dice. It works, but only after you have learned the product properly. Which grouping to use, which filter is applied where, which view answers which question. That is a real time investment, and it lands on people who mostly wanted an answer, not a new skill. This is not unique to us either. The native cloud tools have a harder version of the same problem, which is why cloud cost management tools fall short for the people actually asking the questions.

And even once you have paid that cost, the experience stays siloed. What bothers me most is that the investigation flow is not natural. A real question almost never lives in one screen. Spend jumped, so you open the cost report. Which account? Different view. Is there already a recommendation open against that resource? Another page. Was there an anomaly that week? Somewhere else again. You are the integration layer, carrying context between tabs.

Which is strange, because the data is already sitting together in the backend. It is only the asking that got split up.

That is where an AI assistant turns out to be a very good fit. Not as a chatbot bolted onto a dashboard, but as the thing that stitches the questions back together, because it can reach all of it at once.

What CloudYali already had

This part made the decision easy. CloudYali already holds most of what those questions need:

  • detailed resource inventory, and cost and usage data across AWS, Azure and Google Cloud
  • identified savings, from wastage detection to idle resources to long-term commitment coverage
  • budgets and how they are tracking
  • anomalies, and what caused them

None of that is new. What was missing was a way to ask across it in one breath.

So we opened it up over MCP. You ask about your bill the way you would ask a colleague who has read the whole thing.

What it actually feels like

You type this into Claude:

Which five services cost us the most this month, and how does that compare to last month?
Asking which services cost the most, and the spend answer coming back by cloud with a follow-up already forming
Ask in plain English

And you get an answer. Not a link to a dashboard. Not a suggestion of which report to open. The answer itself, pulled live from your CloudYali account, with your accounts, your filters, your numbers.

Then you ask the follow-up, which is the part that matters:

Okay, the RDS jump. Which accounts, and do we have any open recommendations against them?

That is two different data domains stitched together in one breath: cost, and savings recommendations. By hand it is two pages, two exports and a spreadsheet. Here it is a sentence, and the assistant keeps its place while you keep thinking.

A few more it handles in one turn:

  • "How are we tracking against our budgets?"
  • "Any cost anomalies in the last seven days, and what caused them?"
  • "Find every resource tagged environment=prod that's still running, and tell me what the biggest one cost last month."
  • "How much would we save if we actioned every open recommendation?"

Thirty-five read-only actions sit behind it today, across five areas: cost reports and spend aggregation, budgets and their alert history, savings recommendations and their history, anomalies and their root causes, and resource inventory. Inventory alone takes twelve of those, because "which resources, where, tagged what, costing how much" turns out to be half of all real FinOps questions.

Ask for the report, not the number

One trait that has proved more useful than we expected is using the assistant to build custom reports on the spot. Not just getting numbers back, but actual artefacts.

Once the assistant is holding the real rows, the services, the budgets, the anomalies, the open recommendations, it can lay them out. And laying them out is the work that usually eats a Friday afternoon.

So instead of a number, ask for the artefact:

Pull August spend, budgets, anomalies and open savings, and build me a review I can send to the leadership team.

What comes back is a month-end review: the spend breakdown, six months of trend by cloud, budget states, the open anomalies, and the savings ranked by return. One sentence in, a page out.

A month-end review built from one request: the August total, the six-month trend, what changed and why
Get the report, not just the number

A few examples:

  • The standup one-pager. "Show budget burn as of this morning, worst first, and flag anything over 90%." Thirty seconds before the call instead of three tabs during it.
  • The anomaly post-mortem. "Chart daily spend for this account around the 29th, mark the anomaly, and write two paragraphs on what changed." The chart and the narrative together, which is what the ticket actually needs.
  • The savings pipeline, ranked by effort. "Group open recommendations by how hard they are, not how much they save" gets you the list you can act on before lunch.
  • The comparison nobody has time to build. "Same query, this quarter against last, and only show me what moved more than 15%."
Tracing a spend jump: which budget, which service, is there already a recommendation open against it
Chase the why in one sitting

Read-only, and I mean it

The CloudYali MCP server is read-only and cannot change anything. Not your budgets, not your recommendations, not your tags, not your account settings. Creating and editing budgets still happens in the portal, by a human, on purpose.

What it can read against what it can never change: cost, budgets, savings, anomalies and inventory on one side; budgets, tags, recommendation status and anything in your cloud on the other
It can look. It can never change anything.

We debated this. It would be genuinely useful to say "snooze that recommendation" and have it happen. But an AI assistant with write access to your cost controls is a category of blast radius I am not willing to hand anyone in version one, including myself. If we ever let it change something, it will be one narrow, named, explicitly-opted-into action at a time, and you will hear about each one.

Sign-in is your normal CloudYali login, the same browser flow, the same MFA, the same SSO. Before anything connects, an approval screen tells you exactly who is asking (claude.ai or chatgpt.com, say), what it wants (read your cost and inventory data), and which CloudYali user you are signed in as. Approve, and the assistant gets one short-lived pass, good for up to 45 minutes. When it runs out, you approve again.

Think of it as a visitor badge from reception, not a copy of the office keys. No password is handed over, no refresh token is issued, and nothing is stored on your laptop.

And it sees exactly what your account sees. It does not widen your permissions by one row. If you cannot see a linked account in the console, the assistant cannot see it either.

Connecting the CloudYali MCP server

There is nothing to install. The server is hosted by CloudYali, so there is no repo to clone, no Node version to check, and nothing running on your laptop. It is the difference between a flat-pack bookshelf and one delivered already standing. You give your assistant one URL:

https://mcp.cloudyali.io/mcp

In Claude (claude.ai, Desktop or mobile), go to Settings → Connectors → Add custom connector and paste it in. In ChatGPT, add it as a custom connector in developer mode. In Claude Code it is one line:

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

Cursor, VS Code, Windsurf, Codex CLI and Gemini CLI take the same URL in their MCP config. The setup guide has the exact steps for each. The first time you connect, your browser opens, you sign in to CloudYali, approve, and you are asking questions.

This is phase one

I want to be straight about where this sits. Read-only access over MCP is deliberately the first step, not the destination. It was the right thing to ship first because it is the half we can offer without asking you to trust an assistant with anything it could break.

But even this first pass has surprised us. Opening the data to an assistant has exposed more of what the platform can actually do than any amount of UI work did. Questions we never built a screen for get answered anyway, because the data was always there.

When we launched, a hosted server was next on the roadmap. That has shipped. Browser-based assistants like claude.ai and ChatGPT now connect with nothing running on your laptop, and the terminal clients use the same URL.

What comes next, roughly in order:

  1. More of the platform. Tag governance and cost views are the two most-asked-for gaps.
  2. FinOps agents. Assistants that do not just answer, but watch, notice and propose. That is where this is heading, and it is a longer conversation than one post.

Try it, and tell me where it falls short. A wrong number, a confusing answer, a question it should have handled and did not. Mail me at support@cloudyali.io.

See what it looks like, or go ask your cloud bill something.

Frequently Asked Questions

The CloudYali MCP server is a hosted, read-only Model Context Protocol server at https://mcp.cloudyali.io/mcp that connects your CloudYali account to an AI assistant. There is nothing to install. It exposes 35 actions across five areas: cost and usage reporting, budgets and their alert history, savings recommendations, cost anomalies and their root causes, and multi-cloud asset inventory. You ask a question in plain English and the assistant answers from your live CloudYali data instead of sending you to a dashboard.

Any assistant that supports remote MCP servers with OAuth. That covers Claude (claude.ai, Claude Desktop and mobile), Claude Code, ChatGPT (custom connector in developer mode), Codex CLI, Cursor, VS Code with GitHub Copilot, Windsurf and Gemini CLI. You add the URL https://mcp.cloudyali.io/mcp and sign in. Clients that only support local stdio servers can connect through the mcp-remote bridge.

No. Every one of the 35 actions is read-only. It cannot create or edit budgets, cannot change the status of a savings recommendation, cannot edit tags, cannot touch your account settings, and cannot make any call at all against AWS, Azure or Google Cloud. Creating and editing budgets still happens in the CloudYali portal, by a human. If write actions ever arrive they will be narrow, individually named and explicitly opted into.

Cloud cost and usage across AWS, Azure and Google Cloud, broken down by service, account, region, tag or time period. Budget status and burn rate. Open savings recommendations, including idle resources, wastage and long-term commitment coverage. Cost anomalies and what caused them. And your resource inventory, which takes twelve of the thirty-five actions on its own, because questions about which resources exist, where they run, how they are tagged and what they cost turn out to be most of real FinOps work.

It returns the underlying rows, so the assistant can lay them out as an artefact rather than a figure. In practice that means asking for a month-end spend review, a budget burn one-pager before standup, an anomaly post-mortem with the daily spend chart and a written explanation, or a quarter-over-quarter comparison filtered to what moved more than a set threshold. The work that normally takes an afternoon of exports and spreadsheet formatting comes back from one request.

The server is hosted by CloudYali and reads your data through the same API as the CloudYali console. The results it returns are handed to whichever assistant you connected, so they are covered by that assistant vendor's own data handling terms (OpenAI for ChatGPT, Anthropic for Claude), the same as anything else you paste into it. The approval screen reminds you of this before you connect. CloudYali adds no new sharing of its own.

There is nothing to install. Add https://mcp.cloudyali.io/mcp to your assistant: in Claude, Settings → Connectors → Add custom connector; in ChatGPT, a custom connector in developer mode; in Claude Code, claude mcp add --transport http cloudyali https://mcp.cloudyali.io/mcp. Then sign in to CloudYali in the browser and approve. The setup guide in the CloudYali docs has the exact steps for every supported client.

Yes. The server is hosted, so browser-based assistants connect directly. Add it as a custom connector in claude.ai, or in ChatGPT with developer mode enabled. On Team, Business and Enterprise plans an admin may need to allow custom connectors first.

Exactly the permissions your own login already has, and not one row more. Sign-in uses your normal CloudYali browser flow, including MFA and SSO. The approval screen shows which app is asking, what it can read, and which CloudYali user you are signed in as. On approval the assistant gets a single read-only access token valid for up to 45 minutes; no password or refresh token is issued and nothing is stored on your machine. If you cannot see a linked cloud account in the CloudYali console, the assistant cannot see it either.

#MCP#FinOps#AI#Cloud Cost Management

Ready to optimize your cloud costs?cloud costs

Start your free trial today and see how CloudYali can help you save.