Skip to main content
Glama

Cloud FinOps Skill & MCP

Read one waste runbook

get_playbook
Read-onlyIdempotent

Fetch the step-by-step runbook for one specific waste pattern: symptoms, the detection queries to run, the fix, and the anti-pattern to avoid.

Use this when the user asks how to detect, confirm, or fix one specific named waste pattern (zombie NAT gateway, snapshot sprawl, idle SageMaker endpoint, ...). When the question is about the user's OWN resources ("which of my X..."), fetch the runbook and hand over its detection query - never reply that you lack account access, and never ask for a data export first. The runbook IS the answer.

Args: name: Playbook slug as returned by list_playbooks (e.g. "aws-zombie-nat-gateway", "azure-orphan-disks", "cross-cloud-untagged-spend-drift").

Returns {"name": ..., "title": ..., "content": "...", "lines": N}. On miss, returns {"error": ..., "suggestions": [...]} with up to three string-distance matches so the caller can self-correct.

A host with MCP Apps (SEP-1865) support may render this result via the linked ui://cloud-finops/playbook-viewer resource instead of showing the raw markdown.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as readOnly/idempotent/destructive-false, and the description adds meaningful behavioral context beyond those: the exact return shape on success, the error shape with up to three string-distance suggestions on miss, and the optional MCP Apps rendering path. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with clear paragraphs for purpose, usage, arguments, and return/rendering behavior. Every sentence adds meaning — there is no filler, and the main purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one required parameter and no nested objects, the description covers all needed contexts: when to call it, how to construct the name, what the response contains, what happens on a miss, and how certain hosts may render it. There are no meaningful gaps for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input-schema provides only 'name' with zero description coverage, but the description fully compensates: it defines the parameter as 'Playbook slug as returned by list_playbooks' and gives three concrete examples. This gives an agent the exact vocabulary and source for valid values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise action: 'Fetch the step-by-step runbook for one specific waste pattern.' It enumerates the runbook contents (symptoms, detection queries, fix, anti-pattern) and clear distinguishes from siblings like list_playbooks and ind_playbooks by scoping to a single named pattern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: 'Use this when the user asks how to detect, confirm, or fix one specific named waste pattern.' It also gives a specific behavioral directive for user's own resources (fetch runbook, hand over query, don't ask for export). It doesn't explicit name alternatives to exclude, so not a full 5, but the context is very clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation4/5

The two domains (playbooks/references) are cleanly separated, but within each, list_ vs find_ has genuine boundary ambiguity since find_ with no filters behaves like list_. The descriptions mitigate this with explicit cross-references, and get_ is clearly distinct (requires a name from the others).

Naming Consistency5/5

Flawless verb_noun pattern: three verbs (find_, get_, list_) applied identically across both content types, all snake_case, plural for collections and singular for single-item fetches. The convention is perfectly predictable.

Tool Count5/5

Six tools is ideal for a read-only content library with two resource types: list/find/get for playbooks and list/find/get for references. Each tool earns its place, and the symmetry makes the set easy to reason about.

Completeness4/5

The full discovery-to-retrieval lifecycle is covered for both content types: list (enumerate), find (filter), get (fetch detail). The main gap is the absence of a full-text or fuzzy search tool (find_ uses exact-match only), which could require agents to over-fetch and filter manually. There are no dead ends, and error hints help self-correction.