Connect an MCP client

PruneOps exposes a read-only Model Context Protocol (MCP) endpoint, so external clients like Claude Desktop or Claude.ai can query your cost, resource and recommendation data directly.

How it works

A scoped, read-only surface any MCP-compatible client can talk to.

01
Read-only

No tool can modify data — every call only queries this organization's cost, resource, and recommendation data.

02
OAuth 2.1

Standard Dynamic Client Registration + PKCE — sign in once, pick an organization, and switch it later with the switch_organization tool.

03
Streamable HTTP

Standard MCP transport (the mcp SDK) served at /mcp.

Setup

  1. Point your MCP client (Claude Desktop, Claude.ai, ...) at the endpoint below — Streamable HTTP transport:
    https://mcp.pruneops.run/mcp
  2. The client registers itself automatically (Dynamic Client Registration) and opens a standard OAuth 2.1 + PKCE authorization flow — sign in and pick which organization the connection acts on.
  3. Once authorized, the client can call tools/list to discover the tools below, and tools/call to query data. Use the switch_organization tool at any time to point the same connection at a different organization you belong to.

Available tools8 tools

Read live from the endpoint — this list always matches what tools/list actually returns.

Tool Description Arguments
list_organizations List the organizations the signed-in user has access to, and which one the current token is scoped to. none
switch_organization Point this token at a different organization the signed-in user has access to. Subsequent tool calls act on the new organization.
organization_id
list_accounts List cloud accounts connected to the current organization. none
list_k8s_clusters List registered Kubernetes clusters and when each was last seen reporting metrics. none
list_resources List cloud resources, optionally filtered by resource_type or account_id.
resource_type account_id
get_costs Get total and per-resource-type projected monthly cost, optionally filtered by account_id.
account_id
get_recommendations List optimization recommendations, optionally filtered by resource_id or status (active/dismissed/applied, default active).
resource_id status
get_savings Get realized savings totals and ledger entries, optionally filtered by status (active/reversed, default active).
status