Developer access · MCP
Plutus runs an MCP server, read-only by default. Add it as a connector — sign in, approve access — and any MCP-compatible assistant can query your real cost and usage data directly. No dashboard, no export, no login screen to hand someone.
Try it · No account
The key below is public and permanent. It opens a read-only session onto our demo account — a full year of realistic multi-cloud and AI spend — so you can see what the answers look like before deciding whether to connect your own bill. Paste this into your MCP client's config and restart it:
{
"mcpServers": {
"plutus-demo": {
"url": "https://console.plutus-cloud.com/api/mcp",
"headers": {
"Authorization": "Bearer plu_mcp_demo_5ubefFe8IXWCZXKuuX2yFhcxdf21C7Lu"
}
}
}
}
Then ask it something:
Read-only, and scoped to the demo account only — this key cannot reach a write tool and cannot see any customer's data. It is rate limited per client, so a runaway agent slows itself down rather than everyone else.
Add Plutus as a connector — sign in, approve access, done. No key to copy or manage.
https://console.plutus-cloud.com/api/mcp.Claude — Settings → Connectors → Add custom connector. Works on every plan, including free (one custom connector on the free tier).
ChatGPT — needs a paid plan (Plus/Pro/Team/Enterprise/Edu). Turn on Settings → Apps → Advanced settings → Developer mode first, then Settings → Connectors → Create → Add custom connector.
Gemini — consumer Gemini's custom-connector support is inconsistent as of this writing; Gemini Enterprise supports it at the admin level (Connected apps → Add MCP Server). The manual key below works regardless.
None of these are a one-click pick from a directory yet — Plutus isn't listed in any of the three providers' connector directories, so every provider needs the endpoint pasted in by hand for now.
Prefer a manual key instead — for a client that doesn't support OAuth, or for scripts/CI? Mint one on /mcp-keys and drop this into your client's config:
{
"mcpServers": {
"plutus": {
"url": "https://console.plutus-cloud.com/api/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}Backed by the same query engine the dashboard itself uses — start with these four:
query_costs
Time-bucketed spend across any provider, with optional breakdowns by service, region, usage type, or a custom cost-allocation tag.
get_cost_entries
Raw, unaggregated cost rows over a date range — for when you need the receipts, not just the total.
list_dimensions
Discover the real values available to filter or break down by, before you query.
list_cost_sources
Every cost source connected to your account, so an assistant knows what it can ask about.
Plus full read parity with the rest of Plutus — savings recommendations, commitment utilization, cost tagging, teams, budgets, and alerting, all queryable the same way:
Savings & commitments
list_savings_recommendations
Active rightsizing/idle-resource recommendations, sourced from each provider's own engine (AWS, Azure, GCP).
list_commitment_utilization
How much of a purchased Reservation or Savings Plan is actually being used.
Cost tagging & teams
list_cost_tags
Virtual cost-allocation tag_keys defined for this account (e.g. "team", "product").
list_cost_tag_rules
The match rules behind one tag_key — which dimension values map to which label.
list_cost_source_tag_keys
Provider-native tag/label keys already present in this account's cost data.
list_cost_source_tag_values
The values seen for one provider-native tag key.
list_teams
This account's teams, their members, and the cost tag each is scoped to.
Budgets & alerts
list_budgets
Every budget with its current-cycle spend, threshold state, and forecast.
list_alert_channels
Configured Slack/Teams/webhook/email destinations (never their credentials).
list_alert_subscriptions
Which channel is subscribed to which budget or account-wide trigger.
list_alert_deliveries
Recent alert delivery history — did it fire, did it send.
An admin can optionally mint a broader key that also unlocks 50 write tools spanning almost the whole account — budgets, dashboards, cost-tag rules, teams, anomaly triage, savings recommendations, scheduled reports — so an assistant can act on what it finds instead of just reporting it back. Every one reuses the exact validation the dashboard itself runs, and a key's role never exceeds whoever minted it: a teammate who can't create a budget by hand can't get an assistant to do it for them either. Six of the fifty:
create_budget
Set a new spend budget from the conversation — the same validation and per-account cap as the dashboard.
update_budget / delete_budget
Fix a budget's threshold or remove it entirely — the whole lifecycle, not just the create.
create_anomaly_suppression
Dismiss a cost spike as expected once you've said why — notifies the same Slack/Teams/webhook channels a manual dismissal would.
accept_tag_recommendation
Turn a suggested cost-allocation rule into a real one, once you’ve confirmed it looks right.
create_dashboard / set_dashboard_widgets
Build a shared dashboard and place or rearrange its widgets — the same catalog and layout rules as the canvas.
create_unit_metric
Save a new cost-per-business-unit ratio — admin-only, so this one needs an admin's key.
The server also ships 14 ready-made Prompts — client-side shortcuts, not new endpoints — so you don't have to phrase the question yourself every time. Six are quick reads:weekly-cost-digest,spend-anomaly-check,top-cost-drivers-this-month,savings-opportunities-review,commitment-utilization-review, andbudget-health-check. Five more explain a specific number the way a FinOps engineer would — why a unit-cost ratio reads as missing telemetry instead of zero, or when your amortized cost is the one to trust over billed.
Three more go further and propose real changes — a budget, a suppressed anomaly, a tag rule — then stop and ask you to confirm before writing anything:budget-setup-assistant,anomaly-triage, andtag-coverage-remediation.
Claude's scheduled Routines can run a prompt on a recurring cadence and message you the result, even while your machine's asleep — since they run against whatever MCP connections you've already set up, this needs no extra work on Plutus's end:
That's it — no dashboard to check, no cron job to host. Swap in spend-anomaly-checkfor a daily spike check instead of a weekly summary.
/mcp-keys.