Skip to content
Plutus logo

Plutus MCP server

Which servers in the official MCP registry are Plutus's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-25

← Back to Plutus

Whose server it is
  • Registry namecom.plutus-cloud/plutus-cost-dataverified in the MCP registry

The registry name sits under plutus-cloud.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-25
  • Stateanswerschecked 2026-10-25
  • Tools34
  • Server calls itselfplutus-cost-data
  • Server version2.0.0
  • Protocol version2025-06-18

On 2026-10-25 the server answered initialize and tools/list without a sign-in. First answer in 619 ms.

Should an agent connect itNot proven either way yet
  • Whether its tools do the product's job has not been judged yet.
  • Checked on 2 of the 7 days it takes to judge reliability.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 2, the first on 2026-10-25
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 2 so far
  • Answeredmeasuring2 of the 7 daily checks it takes to print a share
  • Median first answer582 ms
  • Space in an agent's context≈ 10,517 tokensthe definitions of all its tools (34), which an agent carries on every turn
  • Tool definitionsA · 97 of 100
  • Typed results0 of 34 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a description: in 6 of 34

Worth a look

None of the five warning signs in these definitions.

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (30%), doing the product's job (25%), definitions (20%), context (10%) and use (15%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers34 tools · read 2026-10-25
  • list_cost_sources

    List the cost-source providers (AWS, GCP, Anthropic, etc.) enabled for this account. Each row's cost_basis says where that provider's money figures come from: "invoiced" = amounts the provider actually charged…

  • query_costs

    Query time-bucketed spend for this account, optionally broken down by a dimension (service, region, linked_account, usage_type, operation, or identity) or by a custom cost-allocation tag (see list_cost_tags), and filtered by dimension…

  • list_savings_recommendations

    List active cost-reduction recommendations for this account. Most come from each provider's own already-computed engine (AWS Cost Explorer, Azure Advisor, GCP Recommender); rows with `source` = `plutus` are computed by Plutus itself…

  • list_commitment_utilization

    List Reservation (RI) and Savings Plan utilization/coverage snapshots for this account — sourced from AWS Cost Explorer's own GetReservationUtilization/GetSavingsPlansUtilization APIs, one snapshot per commitment type per month. Shows how…

  • list_commitment_expirations

    List this account's Reserved Instance / Savings Plan / Azure Reservation commitments with their expiration dates, ordered soonest-first. `days_until_expiration` is computed server-side against the current UTC date (negative means already…

  • list_cost_tags

    List the virtual cost-allocation tag_keys defined for this account (e.g. "team", "product"), each with the cost_entries grain it's locked to and how many rules map dimension values to a tag_value. Use a tag_key with query_costs…

  • list_anomalies

    List detected cost anomalies for this account over a trailing lookback window — the real output of Plutus's nightly anomaly detector (severity, baseline vs. current spend, and what drove a tag-level spike), not something recomputed here…

  • explain_cost_change

    Explain a specific cost change: which timeline events line up with it, how strongly, and how much of the move Plutus could account for. Ask this about any point on a cost chart — it is not limited to anomalies the detector flagged (use…

  • list_anomaly_suppressions

    List this account's active anomaly suppressions — signatures (a provider+service pair, or a tag_key+tag_value) a human has marked as expected, so the detector stops surfacing them. Each has an `expires_at` (null = indefinite). Mirrors GET…

  • list_tag_recommendations

    List suggested cost-allocation tag rules this account doesn't have yet — high-spend values currently falling through to "Untagged" for an existing tag_key, or a provider-native tag worth promoting into a virtual tag_key of its own (see…

  • list_data_health

    List sync health for every cost/event/usage connection this account has — last synced time, next scheduled sync, the outcome of its most recent run, and `is_overdue` (no successful sync within twice the connection's own effective sync…

  • list_scheduled_reports

    List this account's scheduled cost digests — schedule (daily, weekdays, weekly, monthly, quarterly, first/last business day, a chosen weekday or day of month, or custom dates, all UTC), scope (whole account, one cost source, or one…

  • list_report_layouts

    List what a scheduled report's layout can be made of: the presets (executive summary, spend by service, AI spend, budgets and anomalies), and the dashboard widgets that can be rendered into a report — each with the cost-scope types it…

  • list_dashboard_widget_catalog

    List the built-in ("preset") dashboard widgets available to place with create_dashboard/set_dashboard_widgets — small `kpi` stat tiles and larger `widget` data cards, each with the id (`catalog_id`) a {"kind": "preset", "catalog_id"…

  • list_dashboards

    List this account's org-shared dashboards — visible to every account member. Does not include any member's PERSONAL dashboard: those live in one specific signed-in user's own browser session and have no id an account-level MCP key can…

  • get_dashboard

    Fetch one org-shared dashboard's full layout — its placed widgets, custom metrics and custom charts, and their grid positions. A `widgets` entry references a preset catalog_id (see list_dashboard_widget_catalog)…

  • list_unit_metrics

    List this account's saved unit-economics metrics — each one a cost ÷ business-unit ratio such as "cost per 1k API requests" or "infra cost per order". `numerator_scope` says which slice of spend is on top (the whole account, one cost…

  • query_unit_costs

    Compute one of this account's saved unit-economics metrics (see list_unit_metrics) over a date range — the cost of a slice of spend divided by the business units it produced. Each row carries `cost` (the numerator, in the USD base like…

  • query_usage

    Query time-bucketed usage telemetry this account's own backend has pushed or synced in (e.g. API request counts, tokens processed) — the raw data unit-economics metrics divide cost by (see list_unit_metrics/query_unit_costs), inspected…

  • list_usage_dimensions

    List the distinct values seen for a usage dimension ("metric" or "external_customer_id") over a date range — useful for discovering filter values before calling query_usage. Each entry pairs the raw `value` with a `label` (for…

  • query_events

    Query this account's business-event timeline (GitHub releases/PRs, PagerDuty incidents, Jira issues, GitLab, Salesforce onboarding/churn, Stripe subscription created/canceled, Vercel production deploys, Linear issue creation, Sentry newly…

  • list_event_facets

    List the distinct values seen for a faceted event metadata field over a date range — currently just "repo" (every GitHub repo with at least one event), the same facet the Event Explorer's repo picker uses. Useful for discovering…

  • list_cost_tag_rules

    List the actual match rules for one of this account's cost-allocation tag_keys (see list_cost_tags) — which dimension values (or provider-native tag) map to which tag_value, and in what priority order. Rules are evaluated in ascending…

  • list_cost_source_tag_keys

    List distinct provider-native tag/label keys actually present in this account's cost data (AWS Cost Allocation Tags, GCP/Hetzner labels, Azure tags) — useful for discovering what a "tags.<key>" cost-tag-rule match could reference before…

  • list_cost_source_tag_values

    List distinct values seen for one provider-native tag/label key (see list_cost_source_tag_keys) in this account's cost data.

  • list_teams

    List this account's teams (user groups) with their members and the cost-tag tag_value each is reserved under — team-scoped budgets (create_budget with scope_type: "team") reference a team's id as scope_ref. Mirrors GET…

  • list_tracker_links

    List the tickets linked to savings recommendations (findings included) and anomalies, with their tracker status, resolution and Plutus-side owner. status is open, done, closed_unresolved (closed as Won't Do/Duplicate/Declined), orphaned…

  • list_budgets

    List this account's spend budgets with their current-cycle status (spend so far, projected total, ok/warning/exceeded state, and forecast state). Mirrors GET /api/accounts/:accountId/budgets. `projected_cents` is the app's trend-based…

  • list_alert_channels

    List this account's alert notification channels (Slack/Teams/webhook/email) — need a channel's id to call create_alert_subscription. Never returns the channel's credentials/URL, only its id/type/name/enabled state.

  • list_alert_subscriptions

    List which alert channels are subscribed to which trigger (a specific budget's spend_threshold, or account-wide event_overage/cost_anomaly/commitment_expiring/sync_failure/misconfiguration). Mirrors GET…

  • list_alert_deliveries

    List recent alert delivery history for this account (did an alert actually fire, and did it send successfully) — the same data behind the Alerts page's delivery heatmap. Does not include the delivery error text. Mirrors GET…

  • list_alert_history

    The delivery history behind the Alerts page table: every alert, scheduled report, report attached to an alert, and test sent through an alert channel in the last 90 days, with the channel and recipients, the budget and the threshold that…

  • list_dimensions

    List the distinct values seen for a given dimension (service, region, linked_account, usage_type, or operation) for one provider — useful for discovering filter values before calling query_costs.

  • get_cost_entries

    Fetch raw per-service cost entries for this account over a date range (unaggregated). Prefer query_costs for time-bucketed/aggregated spend — this is for inspecting individual rows. Each row's `cost` is in USD (see the response's…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "plutus-cost-data": {
      "type": "http",
      "url": "https://console.plutus-cloud.com/api/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http plutus-cloud https://console.plutus-cloud.com/api/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://console.plutus-cloud.com/api/mcp as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.