Skip to main content
Glama

Cloudeval AI

Cloudeval CLI

Your cloud, in the terminal: evaluated, reported, and agent-ready.

Latest release npm version npm downloads GitHub downloads Release health Cloudeval Docs Discord Issues AGENTS.md

Cloudeval CLI turns ARM templates, GitHub-hosted IaC, and live Azure context into cost, architecture, and Well-Architected signals. Use it as a terminal UI, a scriptable automation client, or an MCP server for Codex, Cursor, Claude, VS Code, and any stdio JSON-RPC client.

Why Use It

For

What you get

Terminal users

A full TUI with chat, Agent mode, workspace tabs, thread switching, slash commands, a context rail, task ledger, artifact chips, and local SQLite session history.

Automation

Stable json, ndjson, markdown, and text output; payloads on stdout; progress and prompts on stderr; predictable exit codes.

Agents and CI

Scoped access-key credentials, redacted output by default, MCP toolsets, recipes, and machine-readable capability metadata.

Related MCP server: AWS MCP Audit

Install

Node.js 20+ users can install from npm:

npm install -g @ganakailabs/cloudeval-cli
cloudeval --help

macOS, Linux, WSL2, Git Bash, and PowerShell 7+ on Windows or Linux can use the standalone release installer:

curl -fsSL https://cli.cloudeval.ai/install.sh | bash
irm https://cli.cloudeval.ai/install.ps1 | iex

Then reload your shell and sign in:

source ~/.bashrc   # or: source ~/.zshrc
cloudeval login
cloudeval status
cloudeval chat

Device login goes through cloudeval.ai and always asks the browser auth provider to show the account chooser, so users can choose the intended work email even when another account is already signed in. No local Azure app registration is needed for normal CLI use.

The installer:

  • downloads checksum-verified GitHub release assets and installs cloudeval;

  • creates the eva and cloud aliases on non-Windows platforms;

  • can install shell completions for bash, zsh, and fish;

  • can offer concise MCP setup for detected Codex, Claude Desktop, Cursor, and VS Code clients, skipping clients where Cloudeval MCP is already configured and avoiding prompts when only manual-only setup remains;

  • asks whether to share limited CLI telemetry, defaulting to yes; declining writes telemetry.enabled=false;

  • explains credential setup but does not create access keys or write secrets into MCP client config;

  • shows compact labeled progress bars in interactive terminals;

  • uses connect/stall timeouts so slow CDN transfers fail clearly.

Useful controls:

curl -fsSL https://cli.cloudeval.ai/install.sh | CLOUDEVAL_INSTALL_AGENT_SETUP=0 bash
curl -fsSL https://cli.cloudeval.ai/install.sh | CLOUDEVAL_INSTALL_MCP_CLIENTS=codex,cursor bash
curl -fsSL https://cli.cloudeval.ai/install.sh | CLOUDEVAL_TELEMETRY=0 bash
$env:CLOUDEVAL_ASSUME_YES = "1"
irm https://cli.cloudeval.ai/install.ps1 | iex

The bash installer can also detect agent clients and offer MCP setup. The PowerShell installer installs the verified binary, yoga.wasm, license notices, PATH, and optional PowerShell tab completions. Run cloudeval mcp setup afterward when you want MCP client configuration.

Telemetry

Cloudeval CLI sends curated custom events to Azure Application Insights by default. Events cover command family, success, duration, safe option enums, CLI version, Node/runtime version, OS major version, architecture, install source, update/install outcomes, MCP tool names, and TUI launch/exit metadata. After login, events may include the signed-in email and first/last/full name.

Telemetry never sends raw prompts, command output, tokens, local paths, project or resource identifiers, account/session/tenant identifiers, cloud resource names, stack traces, or raw error messages. Disable or re-enable it anytime:

cloudeval config set telemetry.enabled false
cloudeval config get telemetry.enabled --format json
cloudeval config set telemetry.enabled true
cloudeval config unset telemetry.enabled

Environment overrides take precedence for a single run:

CLOUDEVAL_TELEMETRY=0 cloudeval status --format json
CLOUDEVAL_TELEMETRY=1 cloudeval --help

Update later with:

cloudeval update --check
cloudeval update --yes

After an update, restart or reload configured MCP clients when you are ready to load newly exposed Cloudeval tools, resources, or prompts. Cloudeval does not restart Codex, Claude, Cursor, VS Code, or other MCP hosts automatically.

Uninstall local installer-owned artifacts while keeping Cloudeval config, sessions, and auth by default:

cloudeval uninstall --dry-run
cloudeval uninstall --yes
cloudeval uninstall --yes --remove-config  # also removes ~/.config/cloudeval
npm uninstall -g @ganakailabs/cloudeval-cli # if installed through npm

Start Here

cloudeval                         # Terminal UI
cloudeval tui --graph-diagram ascii
cloudeval ask "Summarize my cloud risk" --format json
cloudeval agent "Find cost and architecture risks" --format json
cloudeval agents list
cloudeval agents run cost --project <project-id> --format json
cloudeval recipes list
cloudeval projects list
cloudeval uninstall --dry-run
cloudeval projects graph insights <project-id> --focus impact --resource <resource-id> --format json
cloudeval validate template --template-file template.json --parameters-file parameters.json --rule <check-id> --details --wait --progress stderr --wait-timeout 600000 --format json
cloudeval validate tests --template-file template.json --parameters-file parameters.json --wait --progress stderr --wait-timeout 600000 --format json
cloudeval rules search "public network" --format json
cloudeval reports list
cloudeval actions list --type architecture,cost,unit-tests --format json
cloudeval actions open --print-url --no-open
cloudeval review --repo owner/repo --ref feature/infra-change --commit-sha <sha> --github-checks --sarif --output cloudeval-review --format json --non-interactive
cloudeval capabilities --format json
cloudeval doctor --deep

Full docs: Get started with the CLI and CLI command reference.

Inside the Terminal UI, use the Thread control or /thread to switch open chat sessions, recent Cloudeval chat threads, and local CLI sessions. /thread new starts another independent open session, and /open jumps to the same chat thread in Cloudeval when the active session has a thread id. Roomy terminals show a context rail with project, thread, model, mode, profile, report artifact chips; narrower terminals keep the chat first and expose the same controls through the composer and slash commands. Typing / opens a bottom command completion strip; use Tab or Up/Down to move, Right to accept the ghost text, and Enter to choose the highlighted command. Streaming work appears as a task ledger in the thread, and the bottom composer stays docked so prompt entry does not compete with the transcript. Grounded answers show numbered citations and a Sources section instead of raw [S_tool_...] tags, with citation numbers highlighted inline; /copy copies the latest assistant response and /download writes a Markdown transcript with the same references. Graph insight blocks render as bordered terminal cards instead of exposing raw graph-insight markers; when a card contains a conservative Mermaid flowchart, --graph-diagram auto renders a terminal diagram in roomy TTYs, unicode or ascii force a mode, and off keeps the Mermaid source fallback. Unsupported Mermaid syntax stays visible as source instead of breaking the transcript. Negotiated chat visualizations render directly in the TUI: line/area trends use Unicode plots; bar, column, histogram, pie, doughnut, radar, and polar data use width-aware bars; scatter and heatmap data use compact terminal grids; unsupported chart families use the artifact's table fallback. Mermaid flow edges render as an edge list, with bounded Mermaid source as the fallback when no edges can be extracted. HITL approval prompts require an explicit option selection or typed answer; pressing Enter on a blank approval prompt does not choose the recommended option. Project and Connection tabs show a selected-item detail pane for backend fields, report coverage, sync state, and linked records; use J/K or Up/Down on Projects and Connections to move the selected row, then Enter to confirm it. The billing header separates credits left from observed credits used so usage does not look like the current budget. Use the Profile control or /profile cost to run the current prompt with an Agent Profile; selecting a profile switches the TUI to Agent mode, and selecting Ask mode clears the profile back to the default chat flow. Starter prompts stay hidden until you run /starter. Press Esc from the prompt to leave text editing so tab, arrow, and number shortcuts move through controls and tabs; type again to resume editing. Busy loaders and the input cursor can be disabled with --no-anim. The banner details include the logged-in user. Focused controls and the active top tab use the shared warm banner-yellow accent, with the active tab filled across its full button interior.

The CLI advertises cloudeval.visualization/v1, flint-v1, and mermaid-v11 capabilities on chat requests. The backend compiles chart intent; the CLI validates the bounded artifact and renders terminal-safe output without a browser or native SVG helper. ask and agent JSON results include data.visualizations when present, and NDJSON emits a visualization event as well as including the artifacts in the final result. Final JSON/NDJSON responses, Markdown output, and local conversation history retain validated artifact fences even when streamed prose omits or corrupts the chart payload. Text output remains the live prose stream. See the visualization artifact contract.

Core Workflows

Goal

Terminal UI

Script or CI

MCP

Grounded cloud chat

cloudeval or cloudeval chat

cloudeval ask "..." --format json

ask

Deeper analysis

Agent mode in the TUI

cloudeval agent "..." --format json

planner-style tool flows

Agent Profiles

TUI Profile control and Chat picker

cloudeval agents list/show/run

agent_profiles_* tools

Reusable workflow

prompt suggestions

cloudeval recipes list/show/run

recipes_* tools

Projects and reports

workspace panels

projects, reports, open

projects_*, reports_*

Issues

/app/issues

issues list/get/open

n/a (use CLI; MCP has report/deeplink tools)

Graph intelligence

project graph views

projects graph ...

projects_graph_* tools

Template validation

n/a

validate, rules

template_*, rules_*

Billing

billing panel and links

billing, credits

billing_* toolset

Automation discovery

n/a

capabilities --format json

capabilities_get

Agent Profile ids include architecture, cost, triage, remediation, visual-explainer, scripter, change-reviewer, evidence-auditor, and security-reviewer. Display names may contain spaces. The Architecture profile includes the Well-Architected review lens, so there is no separate Well-Architected Agent Profile. When agents run omits a prompt, the CLI uses a starter prompt for the selected project source and profile mode: template or live sync, ask or agent. The choice is deterministic for automation. Profile runs send only agent_profile_id; Cloudeval applies profile instructions, planning lens, and response defaults on the backend. agents list and agents show first try the backend profile catalog; if the profile catalog endpoint requires sign-in or is not available, they fall back to the bundled public catalog so discovery still works. agents run still requires authenticated backend access. In the TUI, the Profile selector uses the same canonical IDs and sends the selected agent_profile_id with chat streams.

Run cloudeval <command> --help for exact flags.

Access Keys For CI And Agents

Use cloudeval login for humans. The browser approval page requests an account chooser on every login. Use scoped access keys for CI, hosted agents, and long-running automation.

Stored device-login sessions refresh automatically before authenticated requests. If the TUI or cloudeval ask receives an expired-token response from the chat stream, the CLI refreshes the stored session and retries that request once. If the refresh token is revoked or expired, run cloudeval login again.

Create an access key after login and project selection:

cloudeval projects list
cloudeval credentials templates --format json
cloudeval credentials create \
  --template ci \
  --name github-actions-prod \
  --project <project-id> \
  --expires 90d \
  --idempotency-key "$(uuidgen)" \
  --format github-actions

--format github-actions prints CLOUDEVAL_ACCESS_KEY and CLOUDEVAL_PROJECT_ID once. The raw key is not shown again by credentials list or credentials inspect.

Test a scoped access key without putting it in shell history:

printf '%s\n' "$CLOUDEVAL_ACCESS_KEY" | cloudeval projects list \
  --access-key-stdin \
  --format json \
  --non-interactive

Credential rules:

  • prefer --access-key-stdin or CLOUDEVAL_ACCESS_KEY;

  • --access-key is accepted but warns because process arguments and shell history can leak;

  • old beta names --api-key, --api-key-stdin, and CLOUDEVAL_API_KEY fail with a migration error;

  • access-key-shaped strings, authorization headers, and sensitive URL query parameters are redacted by default;

  • credential create output files are written with private permissions on POSIX systems.

MCP For Coding Agents

Start MCP after signing in, or provide a scoped CLOUDEVAL_ACCESS_KEY in the host environment:

cloudeval login
cloudeval mcp serve
cloudeval mcp serve --toolset readonly

Client setup examples:

codex mcp add cloudeval -- cloudeval mcp serve --toolset readonly
cloudeval mcp setup cursor --dry-run --toolset reports --format json
cloudeval mcp setup vscode --dry-run --toolset readonly --format json

MCP rules:

  • tool names use underscores such as projects_list, recipes_list, and billing_summary;

  • dotted tool names remain compatibility aliases;

  • stdout is JSON-RPC only and [cloudeval-mcp] diagnostics go to stderr;

  • MCP tool schemas do not accept per-call access-key arguments;

  • mcp serve does not support --access-key-stdin because stdin is the protocol stream.

  • readonly includes safe inspection tools for projects, reports, billing, connections, credentials, config, models, sessions, auth, status, doctor, and recipes; generation, downloads, checkouts, credential mutation, browser opens, and diagram file writes stay explicit.

For billing inspection, use billing_ledger for individual usage attempts and credit charges, billing_usage for aggregates, and billing_summary for current entitlement. Ledger filters default to 30 calendar days; startAt and endAt override their corresponding range bounds. Pass data.next_cursor back as cursor with the same filters while data.has_more is true. Ledger page size defaults to 25 and is clamped to 1–100.

billing_invoices returns subscription invoices, paid top-up history and billing-cycle status. Fetching this data can create missing provider invoice records for already-paid top-ups and persist receipt links. It therefore requires explicit --toolset billing or --toolset all selection and is excluded from readonly. Its result limit defaults to 25, is clamped to 1–50 per collection, and has no pagination cursor. These tools require billing read access through the server's configured credential; they do not initiate a purchase or change the subscription.

Developer setup details: cli.cloudeval.ai/developer/.

Recipes And Skills

Cloudeval recipes are reusable workflows for agents and humans. Current recipes cover cost review, WAF triage, architecture review, template project review, report summaries, report generation planning, report export packs, billing review, top-up readiness, project inventory and healthchecks, connection audit, credential setup and rotation, model selection, session recovery, CLI onboarding checks, frontend workspace links, architecture/dependency diagram exports, and MCP setup.

cloudeval recipes list
cloudeval recipes show cloudeval-cloud-cost-review
cloudeval recipes run cloudeval-cloud-cost-review --project <project-id> --format json --non-interactive
cloudeval recipes show cloudeval-architecture-diagram-export
cloudeval recipes run cloudeval-dependency-diagram-export --project <project-id> --output-path ./dependency.svg

Ask/agent-backed recipes may consume model credits. Recipes that would create projects, write report or diagram files, change MCP config, mutate credentials, open browsers, or start checkout flows print explicit commands instead of performing those side effects implicitly. Portable agent instructions live under skills/; MCP remains the preferred execution path for Codex, Cursor, Claude, and other agents.

Project Example

curl -L -o template.json \
  https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/1vm-2nics-2subnets-1vnet/azuredeploy.json

cloudeval projects create \
  --name "Azure VM network review" \
  --provider azure \
  --template-file ./template.json \
  --format json

Use --template-url when you do not want a local file. Follow with reports run, reports download, and projects export-diagram as needed.

Output, Auth, And Privacy

cloudeval login
cloudeval login --headless
cloudeval auth status
cloudeval auth status --show-sensitive-ids
cloudeval help agents
cloudeval agents list

Output contract:

  • cloudeval login opens or prints a cloudeval.ai/device/login approval URL with an account chooser hint for the web auth provider;

  • machine-readable commands write payloads to stdout;

  • prompts, progress, browser-open messages, and warnings go to stderr;

  • ask and agent support --progress none, --quiet, or --format ndjson --progress ndjson;

  • validate template and validate tests support --progress stderr or --progress ndjson with --wait; validation progress always goes to stderr so final JSON/NDJSON remains parseable on stdout. Completed progress includes failing check/test details such as message, recommendation, severity, and file/template or resource location when available. If a completed backend result only has a worker-local temp file path, Cloudeval reports the submitted template filename instead;

  • with --non-interactive, human approval exits with code 6 and returns HITL_REQUIRED;

  • interactive HITL prompts require an explicit option number, yes/no-style answer, or typed response; blank Enter does not approve the recommended option;

  • --show-sensitive-ids shows full account/session-style IDs only on trusted machines. It does not unredact tokens.

Docs

Link

Purpose

Get started with the CLI

Install, login, create a project, and ask a grounded question

CLI command reference

Full command and flag list

Terminal UI

TUI navigation and keyboard model

MCP client setup

Codex, Cursor, Claude, VS Code, and generic MCP hosts

Agent behavior and automation safety

Safe automation conventions

Troubleshooting

Sign-in, onboarding, reports, and billing

Build From Source

Read AGENTS.md before touching auth, credentials, smoke artifacts, or user-facing command behavior.

git clone https://github.com/ganakailabs/cloudeval-cli.git
cd cloudeval-cli
pnpm install
pnpm build
pnpm -C packages/cli dev --help

Build a standalone binary for the current OS:

pnpm --filter @ganakailabs/cloudeval-cli build:executable:current
./packages/cli/dist/bin/cloudeval --help

Run checks:

pnpm lint
pnpm test
pnpm test:npm-package
(cd packages/cli && npm pack --dry-run)
pnpm -C packages/cli test:cli:noninteractive
pnpm security:scan

Community

License

Cloudeval CLI is proprietary software provided under the Cloudeval CLI License. Production third-party package attribution is tracked in THIRD_PARTY_NOTICES.md, with a release SBOM in sbom.spdx.json. Published installer releases also download these notice files under ~/.local/share/cloudeval/licenses. The release policy is documented in License compliance.

Available Tools

45 tools
agent_profiles_getGet Agent ProfileA
Read-only

Fetch one Cloudeval Agent Profile by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
profileIdYesAgent Profile id, for example cost.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the basic fetch operation, such as not-found behavior, error handling, or response characteristics, even though the output schema exists.

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 a single clear sentence with no wasted words. It front-loads the core action and object, making it immediately scannable for an agent.

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

Completeness4/5

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

For a simple get-by-id operation, the combination of a precise description, fully documented schema, read-only annotations, and an output schema is sufficient for an agent to call it correctly. The only real gap is the lack of explicit usage guidance relative to sibling tools, but for this low-complexity operation the description remains adequately complete.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are thoroughly documented in the input schema itself. The description adds no additional parameter meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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 uses a specific verb ('Fetch') and resource ('Cloudeval Agent Profile by id'), making the operation immediately clear. It distinguishes itself from the sibling agent_profiles_list because it targets a single profile by ID rather than listing all profiles.

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

Usage Guidelines3/5

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

The phrase 'by id' implicitly tells an agent to use this tool when it has a specific profile ID, as opposed to agent_profiles_list. However, it does not explicitly state when to prefer this tool over alternatives or mention any exclusions or prerequisites.

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

agent_profiles_listList Agent ProfilesB
Read-only

List backend-owned Cloudeval Agent Profiles such as Architecture, Cost, Change Reviewer, Evidence Auditor, and Security Reviewer.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds a scoping detail ('backend-owned') and examples, which helps set expectations, but it does not discuss return format, pagination, or authorization. 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 a single sentence, front-loaded with the action and resource, and uses examples to clarify scope without adding unnecessary bulk. Every word earns its place.

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

Completeness4/5

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

For a zero-required-parameter list tool with full schema coverage, an output schema, and read-only annotations, the description is nearly sufficient. The only minor gaps are lack of explicit mention of authentication requirements or the practical significance of 'backend-owned,' but these do not hinder correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all three optional parameters (baseUrl, profile, frontendUrl). The description adds no additional parameter-level meaning, so the baseline 3 applies.

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

Purpose4/5

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

The description clearly states a specific verb ('List') and a specific resource ('backend-owned Cloudeval Agent Profiles') with concrete examples, making the tool's purpose unambiguous. It does not explicitly name the sibling tool agent_profiles_get, but the 'List' verb inherently distinguishes it from a get-single operation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like agent_profiles_get or other listing tools. There are no exclusions, prerequisites, or context cues beyond the basic purpose, leaving the agent to infer usage from the name and examples alone.

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

auth_statusAuth StatusB
Read-only

Return local Cloudeval authentication status.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the 'local' qualifier, indicating this checks local authentication state rather than performing a remote mutation, which is useful context. It does not, however, describe any side effects or environmental dependencies beyond what annotations and the output schema convey.

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?

A single, front-loaded sentence that says exactly what the tool returns without any filler. Every word contributes to the purpose.

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

Completeness4/5

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

For a read-only tool with zero required parameters, full schema documentation, and an output schema, the description is nearly complete. The only gap is the lack of guidance distinguishing it from similar status/identity tools, but that is more of a usage-guideline concern than a completeness one.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (baseUrl, profile, frontendUrl) are already fully documented in the schema. The description does not add parameter-level detail, but with full schema coverage the baseline of 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb ('Return') and names a concrete resource ('local Cloudeval authentication status'), which clearly identifies the tool's function. It does not explicitly contrast with sibling tools like 'status' or 'identity_get', but the resource is specific enough to avoid confusion.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'status', 'identity_get', or 'doctor'. There is no mention of conditions, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.

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

billing_ledgerBilling LedgerA
Read-only

Inspect individual Cloudeval usage attempts and credit charges for the authenticated account. Use billing_usage for aggregates or billing_invoices for payment receipts. Defaults to the last 30 calendar days; explicit timestamps override the corresponding range bounds. Returns data.items, data.has_more and data.next_cursor; reuse the cursor with the same filters to read the next page. Requires billing read access; does not initiate purchases or evaluations.

ParametersJSON Schema
NameRequiredDescriptionDefault
endAtNoExclusive ISO 8601 upper bound; overrides the range end.
limitNoPage size; the MCP handler floors and clamps it to 1–100.
modelNoExact model_name or operation value from a ledger row. Omit to include all models.
rangeNoCalendar-day window ending now. Use all for no implicit date bounds.30d
cursorNoOpaque data.next_cursor from the previous response. Omit for the first page; retain the same filters while paging.
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
outcomeNoUsage outcome filter, such as success, failure, blocked or skipped.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
startAtNoInclusive ISO 8601 lower bound, for example 2026-09-01T00:00:00Z; overrides the range start.
actionTypeNoExact action_type value from a ledger row. Omit to include all action types.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.
chargeStatusNoCharge disposition filter: charged, not_charged or bypassed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds meaningful context beyond that: the auth requirement ('Requires billing read access'), an explicit no-side-effects disclaimer ('does not initiate purchases or evaluations'), and pagination behavior via cursor reuse. This fully discloses the tool's behavioral profile.

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?

Four sentences, each earns its place: purpose, sibling differentiation, default/override behavior, response shape, and auth/safety caveat. Information is front-loaded with the verb and resource first, followed by routing. No filler or repetition of schema content.

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?

With an output schema present, return values need no extra description beyond the pagination fields already mentioned. The description covers purpose, alternatives, default window, parameter interactions, pagination, permissions, and side-effect safety. For a 12-parameter optional tool, all non-obvious decision points are addressed.

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

Parameters4/5

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

Input schema covers 100% of parameters, so baseline is 3. The description adds semantic value by relating range to startAt/endAt ('explicit timestamps override the corresponding range bounds') and by explaining cursor usage ('reuse the cursor with the same filters'), which deepens understanding without restating schema details.

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 states a specific verb and resource: 'Inspect individual Cloudeval usage attempts and credit charges for the authenticated account.' It also explicitly differentiates from sibling billing_usage by noting that tool is for aggregates, so an agent can distinguish them without opening schemas.

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

Usage Guidelines5/5

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

The description gives explicit routing guidance: 'Use billing_usage for aggregates or billing_invoices for payment receipts.' It also provides conditional context like the default 30-day window and how timestamps override range bounds, making the when-to-use clear.

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

billing_notificationsBilling NotificationsA
Read-only

Return Cloudeval billing notifications for the authenticated account.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read behavior is covered structurally. The description adds account scoping but does not mention pagination, sorting, notification state, or rate limits. With annotations covering the safety profile, this is adequate but not rich.

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?

A single declarative sentence that is front-loaded with the core action and object. There is no filler, repetition of schema fields, or redundant explanation of annotations.

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

Completeness3/5

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

For a low-complexity read tool with an output schema and safety annotations, the description states the core purpose and scope. However, it omits any relation to sibling billing tools or what kind of notifications are included, leaving some ambiguity about when an agent should invoke it.

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

Parameters3/5

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

The description does not discuss parameters, but the schema already documents baseUrl, profile, and frontendUrl (75% coverage). The one undocumented parameter, limit, is reasonably inferable from its name and default. The description adds no parameter-level meaning and does not compensate for the limit gap, but schema coverage is strong enough.

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 states a specific verb ('Return'), a concrete resource ('billing notifications'), and a scope ('for the authenticated account'). It is semantically distinct from sibling billing tools such as billing_usage, billing_ledger, and billing_invoices by naming notifications explicitly.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like billing_usage or billing_ledger, no prerequisites, and no exclusions. The phrase 'for the authenticated account' provides scope but not usage context.

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

billing_plansBilling PlansA
Read-only

Return Cloudeval billing plan configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Return' wording is consistent with a read-only getter. The description adds little behavioral detail beyond the annotations, such as authentication needs, rate limits, or what the returned configuration actually contains.

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 a single, front-loaded sentence with no filler. It states the action, the resource, and the scope efficiently.

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

Completeness4/5

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

For a zero-required-parameter, read-only getter with an output schema and safety annotations, the description is mostly sufficient. It is slightly thin because it does not clarify what 'billing plan configuration' includes or how it maps to the plural tool name 'billing_plans,' but the output schema can cover return-shape details.

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

Parameters3/5

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

All three parameters (baseUrl, profile, frontendUrl) are fully documented in the input schema with their default resolution behavior, so schema coverage is 100%. The description itself adds no parameter information, which is acceptable because the schema carries the burden.

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

Purpose4/5

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

The description uses a specific verb ('Return') and a clear resource ('Cloudeval billing plan configuration'). The 'configuration' qualifier helps distinguish it from usage/ledger/invoice siblings like billing_usage and billing_invoices, though it does not explicitly name alternatives or state whether this returns the current plan or available plans.

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

Usage Guidelines3/5

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

The use case is implied: call this when you need the billing plan configuration. There are no required parameters and no prerequisites to call it. However, the description gives no explicit guidance about when not to use it or which of the many billing_* siblings might be more appropriate for related tasks.

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

billing_summaryBilling SummaryA
Read-only

Return Cloudeval billing entitlement, credit status, and subscription status.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already establish that this is read-only (readOnlyHint=true, destructiveHint=false), so the description does not need to repeat that. The description adds useful scoping about which billing facts are returned, but it does not discuss behavior such as auth requirements, data freshness, or what happens when values are absent. With annotation coverage this is adequate but not rich.

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?

A single sentence that leads with the verb and immediately names the resource and return values. There is no filler, repetition, or irrelevant context, so every word earns its place.

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

Completeness4/5

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

For a simple read-only summary tool with no required parameters, a rich output schema, and self-describing optional parameters, this description is nearly complete. The only notable gap is the absence of any explicit relationship to the closely named billing_* siblings, which an agent would have to infer from the return fields.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters (baseUrl, profile, frontendUrl) are already fully documented in the schema. The description does not add any extra meaning about how these parameters affect the response, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description uses a clear action verb ('Return') and names the exact resource ('Cloudeval billing') plus the specific data points: entitlement, credit status, and subscription status. It is clear about what the tool exposes, but it does not explicitly contrast with the related billing_* siblings, so it stops short of full differentiation.

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

Usage Guidelines3/5

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

The listed return fields imply when this tool is appropriate—when an agent needs billing entitlement, credit, or subscription status. However, it gives no explicit guidance about when to choose billing_summary over billing_usage, billing_ledger, or billing_plans, leaving the routing decision mostly to inference.

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

billing_topupsBilling Top-upsA
Read-only

Return available Cloudeval credit top-up packs.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds no extra behavioral context such as data source, caching, or authentication requirements, but it is consistent with the 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?

Single sentence with the action and resource front-loaded. No filler, repetition, or irrelevant detail.

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?

A simple read-only list operation with no required parameters, a full input schema, and an output schema. The description is sufficient for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, and all three optional parameters are fully documented in the schema. The description itself adds no parameter-level semantics beyond what the schema already provides.

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

Purpose4/5

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

The description states a specific verb and resource: 'Return available Cloudeval credit top-up packs.' It is distinct from siblings like billing_plans or billing_invoices, though it does not explicitly name any sibling for differentiation.

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

Usage Guidelines3/5

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

The intended use is implied by the description: call this when you need available credit top-up packs. However, there is no explicit guidance on when to use this tool versus billing_plans or other billing-related tools, and no exclusion criteria are mentioned.

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

billing_usageBilling UsageB
Read-only

Return Cloudeval billing usage summary with date, granularity, and model filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
endAtNoEnd timestamp.
modelNo
rangeNo30d
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
outcomeNo
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
startAtNoStart timestamp.
actionTypeNo
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.
granularityNoday
chargeStatusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the scope of a usage summary and filter dimensions, but gives no additional behavioral context such as aggregation behavior, external API dependence, or link generation behavior.

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 a single, direct sentence that front-loads the action and resource before listing key filters. Every word earns its place, and there is no redundant or filler content.

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

Completeness2/5

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

With 11 parameters, multiple undocumented fields, and an ambiguous sibling relationship, this description is too thin to support confident tool selection and invocation. While the output schema helps with return values, the description does not address selection criteria, alternative tools, or parameter semantics sufficiently.

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

Parameters3/5

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

Schema description coverage is only 45%, so the description partially compensates by clarifying that date, granularity, and model are filters—helpful especially because 'model' has no schema description. However, it leaves several other undocumented parameters (outcome, actionType, chargeStatus) unexplained and does not clarify date formats or filter combinations.

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

Purpose4/5

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

The description clearly identifies the action (Return), the resource (Cloudeval billing usage summary), and the primary filter dimensions (date, granularity, model). However, it does not differentiate this from the sibling billing_summary, which likely has an overlapping purpose, so sibling distinction is missing.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as billing_summary or billing_ledger. The description only states what the tool does, leaving the agent to infer the appropriate selection context.

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

capabilities_getGet Cloudeval CapabilitiesA
Read-only

Return Cloudeval CLI and MCP capability metadata for agent planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no extra behavioral context such as return format or error cases, but the output schema exists and no contradictions are present.

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?

A single, front-loaded sentence states the verb, resource, and purpose with no filler. It is appropriately sized for the tool's simplicity.

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?

With full parameter documentation in the schema, an output schema present, and annotations conveying the read-only nature, the description supplies the remaining contextual purpose ('agent planning'). Nothing essential for correct invocation is missing.

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

Parameters3/5

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

The input schema provides 100% coverage with detailed descriptions for all three optional parameters. The description itself adds no parameter-level meaning, so the schema carries the burden, which is acceptable.

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 uses a specific verb ('Return') and a clear resource ('Cloudeval CLI and MCP capability metadata'), and adds the purpose 'for agent planning.' This clearly distinguishes it from sibling tools like config_show or status, which address different concerns.

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?

The phrase 'for agent planning' provides clear context on when this tool is relevant. It does not explicitly name alternatives or exclusion criteria, but the intended usage is evident and distinct from other siblings.

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

config_getGet Config ValueA
Read-only

Return one setting from the selected Cloudeval CLI profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesConfig key.
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the source context ('selected Cloudeval CLI profile') but does not disclose fallback behavior, local-vs-remote semantics, or error handling. Minimal additional behavioral context beyond the 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 a single concise sentence that front-loads the core action and result. There is no filler or redundant content, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple read-only config getter, the description, combined with fully described schema parameters, annotations, and an output schema, provides enough to invoke the tool correctly. The main gap is the lack of explicit differentiation from config_show, but this is a minor omission given the overall simplicity.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add meaningful parameter semantics beyond the schema; the 'one setting' wording loosely maps to the key parameter but provides no new detail. The schema descriptions already explain defaults and precedence.

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

Purpose4/5

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

The description clearly states the action ('Return') and the resource ('one setting from the selected Cloudeval CLI profile'). The phrase 'one setting' helps distinguish it from sibling tools like config_show, though it does not explicitly name alternatives. It is specific enough for an agent to understand the core operation.

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

Usage Guidelines3/5

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

The description implies a single-setting lookup use case but provides no explicit guidance about when to use this tool over siblings like config_show or config_profiles. There are no exclusions or alternative suggestions, so the agent must infer routing from the tool name and context.

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

config_profilesList Config ProfilesA
Read-only

Return Cloudeval CLI config profile names.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that the tool returns only profile names, which is mildly useful scope information, but it doesn't disclose additional behaviors such as configuration-reading details or failure modes. 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 a single focused sentence that states exactly what the tool returns. There is no filler or redundant restating of the title, and the core resource and action are front-loaded.

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

Completeness4/5

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

For a simple read-only listing tool with fully documented optional parameters and an output schema, the description is nearly complete. It could have added one sentence about when to choose this over config_get/config_show, but nothing essential for invoking it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all three optional parameters well. The description contributes no parameter-specific meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb ('Return') and resource ('Cloudeval CLI config profile names'), making the tool's basic function clear. It doesn't distinguish itself from sibling config tools like config_get or config_show, but the title and description are unambiguous enough for basic selection.

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

Usage Guidelines3/5

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

The intended use is implied: call this when you need the list of CLI config profile names. However, there is no explicit guidance about when to prefer this over related tools such as config_get, config_show, or agent_profiles_list, and no exclusions are stated.

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

config_showShow ConfigB
Read-only

Return the selected Cloudeval CLI profile configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds minimal contextual scope by saying 'selected profile configuration' and does not contradict the annotations, but it does not disclose additional behavioral traits such as default resolution behavior or error handling.

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 a single sentence with no filler, and the core action and object are front-loaded. It is concise without being a tautology.

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

Completeness4/5

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

For a read-only tool with full parameter documentation, zero required parameters, and an output schema, the description is mostly sufficient for invoking the tool correctly. The main gap is the unresolved relationship with config_get and config_profiles, which affects tool selection more than invocation.

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

Parameters3/5

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

The input schema provides complete descriptions for all three parameters (100% coverage), so the description does not need to repeat parameter details. The description's mention of 'selected' adds little beyond what the 'profile' parameter documentation already conveys.

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

Purpose4/5

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

The description states a specific action ('Return') and a concrete resource ('the selected Cloudeval CLI profile configuration'), so it clearly indicates what the tool does. However, it does not distinguish itself from the sibling tools config_get and config_profiles, which could plausibly overlap with 'show config'.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like config_get or config_profiles. The word 'selected' implies a profile is already chosen, but the description does not explain what 'selected' means or when this tool should be preferred over its siblings.

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

connections_getGet ConnectionA
Read-only

Fetch one Cloudeval connection by id from the authenticated account's connection list.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.
connectionIdYesCloudeval connection id to fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already cover the read-only and non-destructive nature, so the description carries a lighter burden. It usefully adds that the fetch is scoped to the authenticated account's connection list, but it does not describe behavior for missing IDs, errors, or returned payloads.

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?

A single sentence with no filler: it conveys the action, the resource, the uniqueness of the result, the lookup key, and the authentication scope. This is appropriately compact and 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?

For a simple get-by-id operation, the description, combined with the full input schema, output schema, and read-only annotations, provides sufficient context for an agent to invoke it correctly. Error behavior and response details are not essential here given the output schema and low complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters, including connectionId, baseUrl, profile, and frontendUrl, are already documented in the schema. The description reinforces that connectionId is the lookup key but adds no extra parameter-level semantics.

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?

States a specific verb ('Fetch'), resource ('Cloudeval connection'), and selection criterion ('by id'). 'One' clearly distinguishes this from a list operation, and the sibling connections_list is implicitly differentiated.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you already have a connectionId and need that single connection. However, it provides no explicit guidance about when to prefer connections_list or other alternatives, so the agent must infer routing from sibling names.

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

connections_listList ConnectionsA
Read-only

List Cloudeval cloud/template connections visible to the authenticated account.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the authenticated-account visibility scoping, which aligns with openWorldHint and is useful behavioral context. No contradictions exist, but the description contributes only modest value beyond the 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?

A single 13-word sentence that front-loads the verb and resource, states the scope, and contains zero filler. Every word earns its place, and nothing important is buried.

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

Completeness4/5

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

For a simple list tool with an output schema, full parameter documentation in the schema, and annotations covering the safety profile, the description is nearly complete. The authenticated-account scope and resource type are stated. A minor gap is the lack of detail about result ordering or pagination, but the output schema covers return shape.

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

Parameters3/5

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

Schema description coverage is 100%, with all three optional parameters (baseUrl, profile, frontendUrl) already documented with their default-resolution chains. The description adds nothing about parameters, but with full schema coverage the baseline of 3 is appropriate.

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 uses a specific verb ('List') with a clear resource ('Cloudeval cloud/template connections') and a scoping qualifier ('visible to the authenticated account'). It differentiates cleanly from the sibling connections_get, which targets a single connection, and from other list tools like agent_profiles_list and projects_list by naming the resource type.

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

Usage Guidelines2/5

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

The description implies enumeration use ('List...connections visible to the authenticated account') but provides no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as connections_get for retrieving a single connection. The agent must infer the appropriate context from sibling names and the verb.

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

credentials_inspectInspect CredentialA
Read-only

Inspect a Cloudeval access-key credential by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.
credentialIdYesCredential id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read-only nature is covered. The description labels the resource as an 'access-key credential', which adds minor context, but it does not disclose additional behavioral traits such as sensitive-data exposure, required permissions, or behavior for non-existent ids.

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?

One concise sentence with no filler. The key selection criterion ('by id') is placed prominently, and every word contributes to the tool's purpose.

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?

This is a simple single-required-parameter read operation, with an output schema available and annotations covering safety. The description, while brief, is fully sufficient for an agent to know what the tool does and when to invoke it.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all 4 parameters. The description's 'by id' wording reaffirms the role of the required credentialId but adds no extra meaning beyond what the schema already provides.

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 states a specific verb ('Inspect'), a specific resource ('Cloudeval access-key credential'), and a specific selection mechanism ('by id'). This clearly distinguishes it from sibling tools like credentials_list and credentials_templates, which serve listing or templating purposes.

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

Usage Guidelines3/5

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

The description implies this tool should be used when you already have a credential id and need to inspect a specific credential. However, it does not explicitly say when not to use it or point to alternatives like credentials_list for enumeration, so usage guidance is left mostly to inference.

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

credentials_listList CredentialsA
Read-only

List Cloudeval access-key credentials, optionally scoped by project.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds that results are optionally scoped by project, but otherwise discloses no additional behavioral traits such as pagination, ordering, or authentication requirements. No contradiction exists.

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?

A single front-loaded sentence that states the resource, the action, and the optional scope with no wasted words. It earns its place efficiently.

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?

For a simple read-only list tool with a full input schema, an output schema, and safety annotations, the description is sufficient. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the four parameters are fully documented in the schema. The description's mention of project scoping maps to projectId but does not add meaning beyond what the schema already provides; the baseline of 3 applies.

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?

States a specific verb ('List') and resource ('Cloudeval access-key credentials'), and adds the optional project scoping. The phrase 'access-key credentials' distinguishes this from sibling tools like credentials_templates and credentials_inspect.

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

Usage Guidelines3/5

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

The description implies when to use the tool — when a caller wants to list access-key credentials, optionally filtered by project. However, it does not explicitly name alternatives or state when not to use it, leaving differentiation from credentials_templates and credentials_inspect to inference.

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

credentials_templatesCredential TemplatesA
Read-only

List Cloudeval access-key credential templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.7/5.0
Behavior3/5

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

The 'List' verb aligns with the annotations (readOnlyHint=true, destructiveHint=false), so the safety profile is clear. However, the description adds no additional behavioral context such as ordering, filtering, or scope limitations, which is acceptable given the annotation coverage.

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?

A single sentence that states the action and resource immediately with no filler. The description is highly front-loaded and every word contributes to clarity.

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?

This is a simple read-only list operation with an output schema, fully described optional parameters, and annotations covering the safety profile. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

All three parameters (baseUrl, profile, frontendUrl) are already fully documented in the input schema with 100% description coverage. The description adds no extra parameter semantics, so the schema carries the full burden.

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?

States a specific verb ('List') and resource ('Cloudeval access-key credential templates'), making the operation unambiguous. The resource qualifier 'access-key credential templates' clearly distinguishes it from sibling tools like credentials_list and credentials_inspect.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives such as credentials_list or credentials_inspect. There is no mention of prerequisites, conditions, or exclusions, leaving the agent to infer usage solely from the tool name.

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

doctorCLI DoctorB
Read-only

Return local Cloudeval CLI diagnostic checks.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcpNoInclude MCP metadata checks.
deepNoCheck backend reachability as well as local setup.
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the 'local CLI diagnostic' scope but does not disclose additional behavioral details such as whether it executes CLI commands, reads config files, or performs any network checks beyond what the parameters imply.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no fluff or redundant information. It is appropriately concise for a simple diagnostic tool, though it could be slightly richer without becoming verbose.

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

Completeness3/5

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

With zero required parameters, 100% parameter schema coverage, an output schema, and read-only annotations, the structured data covers most operational details. The main missing context is when to prefer this over related status/configuration tools, which is not addressed in the description.

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

Parameters3/5

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

Schema description coverage is 100%, and every parameter already has a detailed description explaining defaults and precedence. The tool description adds no parameter-level meaning beyond the schema, which is acceptable given the high schema coverage.

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

Purpose4/5

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

The description clearly states the verb 'Return' and the resource 'local Cloudeval CLI diagnostic checks,' making the core purpose immediately understandable. It distinguishes itself from server-side or API status tools by emphasizing 'local CLI,' though it does not explicitly name any sibling tool.

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

Usage Guidelines3/5

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

The word 'local' implies the tool is for diagnosing the local CLI environment rather than server status, but there is no explicit when-to-use guidance or comparison with alternatives such as status, auth_status, or config_show. Usage context is only implied, not stated.

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

identity_getGet IdentityB
Read-only

Return Cloudeval identity and capability metadata for the active credential.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that results are scoped to the active credential, but it does not reveal additional behavior beyond that scope.

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?

A single sentence with no filler; it states the resource, the action, and the scoping all in one clause. Every word earns its place.

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

Completeness4/5

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

The tool is simple, has no required parameters, has an output schema, and has annotations that cover safety and mutability. The main gap is the lack of sibling differentiation, but the definition is otherwise complete for a read-only identity metadata lookup.

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

Parameters3/5

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

Schema description coverage is 100%, so baseUrl, profile, and frontendUrl are each already explained structurally. The description adds no parameter-level specifics, which is acceptable because the baseline is 3 when the schema documents all parameters.

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

Purpose4/5

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

The description uses a specific verb ('Return') and clearly names the resource: Cloudeval identity and capability metadata for the active credential. It is clear about what the tool does, though it does not explicitly distinguish itself from the similar-sounding capabilities_get sibling beyond adding 'identity.'

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as capabilities_get, auth_status, or status. The description implies it is the way to inspect the current credential, but it never states a selection condition or exclusion.

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

models_default_getGet Default ModelA
Read-only

Return the configured default model for the selected CLI profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, covering the safety profile. The description adds minimal behavioral context beyond that ('configured default model', 'selected CLI profile'), but does not disclose edge-case behavior such as what happens when no default is configured or when a profile is missing.

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?

A single, front-loaded sentence with zero redundancy. Every word adds meaning and the primary action and target resource are immediately clear.

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?

For a low-complexity read-only tool with full schema coverage, strong annotations, and an output schema present, the description is sufficient. No critical information needed for the agent to invoke the tool correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter (baseUrl, profile, frontendUrl) already has a clear explanation with defaulting behavior. The description itself adds no parameter-level detail, so it relies appropriately on the schema.

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 uses a specific verb ('Return') and resource ('configured default model') and ties it to the selected CLI profile. This clearly differentiates it from siblings like models_list, which lists all models, and config_profiles, which manages profiles.

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?

The description gives clear context: use this to retrieve the default model associated with a CLI profile. It does not explicitly name alternatives or exclusion cases, but the context is specific enough for an agent to select this tool for the intended read operation.

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

models_listList ModelsA
Read-only

List backend-supported Cloudeval models for the active account or access key.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds useful scoping context ('active account or access key') but does not disclose additional behavioral traits such as whether authentication is required or how the list might vary. This is adequate but not exceptional.

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?

A single, tightly worded sentence with no filler. It front-loads the action, resource, and scope, making it easy for an agent to parse and use.

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?

The tool is simple, has no required parameters, annotations already convey safety and open-world behavior, and an output schema exists. The description plus structured information is sufficient for correct invocation without being overly verbose.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (baseUrl, profile, frontendUrl) already documented in detail including default resolution. The description adds no parameter-specific meaning, which is acceptable because the schema carries the full burden.

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 states the exact verb ('List'), resource ('backend-supported Cloudeval models'), and scope ('for the active account or access key'). This clearly differentiates it from sibling tools like models_default_get, which focuses on a single default model.

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?

The description gives clear context for when to use the tool: when you need a list of models available to the active account or access key. It does not explicitly name alternatives or exclusions, but for this simple read-only list operation the context is sufficiently clear.

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

projects_getGet ProjectA
Read-only

Fetch one Cloudeval project by id from the authenticated account's project list.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdYesCloudeval project id to fetch.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover read-only, non-destructive, and open-world hints. The description adds the useful context that the project must come from the authenticated account's own project list. It does not discuss error cases or missing-ID behavior, but the annotations and output schema reduce the need for that detail.

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?

A single, tightly worded sentence that leads with the action and resource. It contains no filler, does not restate schema details, and is easy to scan.

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

Completeness4/5

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

For a simple read tool with one required parameter, full schema documentation, annotations, and an output schema, the description provides enough context to invoke it correctly. It could additionally mention that project IDs come from projects_list, but nothing critical is missing.

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

Parameters3/5

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

All four parameters are fully documented in the input schema with 100% coverage, so the description does not need to repeat parameter details. It adds no parameter-specific meaning beyond the schema, which meets the baseline for high schema coverage.

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 uses a specific verb ('Fetch'), names the exact resource ('one Cloudeval project'), and qualifies the scope ('by id from the authenticated account's project list'). This clearly distinguishes it from sibling tools like projects_list by emphasizing a single-ID lookup.

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?

The description clearly states this is for fetching one project by ID within the authenticated account's scope, which gives an agent solid context for when to use it. However, it does not explicitly mention alternatives like projects_list for enumeration or projects_overview for high-level summaries, so it stops short of explicit routing.

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

projects_graph_diffProject Graph DiffB
Read-only

Compare two retained project graph snapshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.
toSyncVersionNoTarget sync version.
fromSyncVersionNoBaseline sync version.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a small amount of context by specifying that snapshots must be 'retained' and that exactly two are compared, but it does not disclose behavior such as ordering semantics, error conditions, or what happens when snapshots are unavailable.

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 a single, front-loaded sentence with no filler or redundant restatement of the tool name. Every word contributes to the core meaning, making it efficient and easy to parse.

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

Completeness3/5

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

The output schema and parameter schema cover return values and parameter meaning, so the description does not need to repeat those. However, it lacks operational context such as how to identify retained snapshots, how the from/to sync versions map to the comparison order, and when this tool should be preferred over related graph tools.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters are already self-documenting. The description does not add any additional meaning about fromSyncVersion, toSyncVersion, projectId, or URL defaults, which is acceptable given the schema carries the full burden.

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

Purpose4/5

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

The description names a specific verb ('Compare') and resource ('retained project graph snapshots'), making the core action clear. It is distinguishable from sibling tools like projects_graph_get or projects_graph_timeline because it explicitly targets a comparison of two snapshots, though it does not name those alternatives.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the many related graph tools such as projects_graph_get, projects_graph_timeline, or projects_graph_insights. No prerequisites, exclusions, or alternative routing are mentioned; the only implied context is the bare action of comparing snapshots.

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

projects_graph_getGet Project GraphB
Read-only

Fetch project graph nodes and relationships for automation.

ParametersJSON Schema
NameRequiredDescriptionDefault
asOfNoOptional replay timestamp.
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.
includeDiffNo
syncVersionNoOptional sync version.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered by structured data and the description's 'Fetch' is consistent. The description adds no additional behavioral context beyond that—no mention of what 'nodes and relationships' includes, whether data is time-snapshotted via asOf, or how openWorldHint affects results. The bar is lower because of annotations, but no extra context is contributed.

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 a single, front-loaded sentence with zero filler. 'Fetch project graph nodes and relationships for automation' communicates the core purpose immediately and every word earns its place.

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

Completeness3/5

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

The presence of an output schema means return-value details are covered elsewhere, and annotations handle the safety profile. Given the moderate complexity (7 optional parameters, several graph sibling tools), the description is adequate for basic selection but lacks usage guidance and any behavioral explanation of the graph scope or how asOf/syncVersion affect the result. It is minimally complete but has clear gaps.

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

Parameters3/5

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

Schema description coverage is 86%, so the input schema already documents six of seven parameters with meaningful defaults and fallback chains. The description adds no parameter-level detail, but with such high schema coverage the baseline of 3 applies; the only undocumented parameter (includeDiff) has a default value, so the omission is minor.

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

Purpose4/5

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

The description states a specific verb ('Fetch') and a clear resource ('project graph nodes and relationships'), which distinguishes it from the other graph siblings (timeline, diff, insights, sync_runs) that target different aspects. However, it does not explicitly name any of those siblings or contrast itself with them, so the differentiation is implied rather than stated.

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

Usage Guidelines2/5

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

The phrase 'for automation' hints at a programmatic read use, but there is no explicit guidance on when to choose this tool over projects_graph_timeline, projects_graph_diff, or projects_graph_insights. No alternatives, exclusions, or conditions are provided, leaving an agent to infer the appropriate scenario.

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

projects_graph_insightsProject Graph InsightsB
Read-only

Fetch graph intelligence for overview, impact, critical paths, security, cost, or changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNooverview
limitNo
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
resourceIdNoResource id for impact analysis.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.
syncVersionNoOptional sync version.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false, and the description's 'fetch' wording is consistent with read-only behavior. The description does not add meaningful behavioral context beyond the annotations, such as how open-world resolution or generated links behave.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler. It is appropriately concise, though it leans on the enum values for semantic weight and does not use the space to clarify sibling distinctions.

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

Completeness3/5

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

An output schema exists and annotations cover the safety profile, reducing the burden on the description. Still, the description is minimal for a tool with eight parameters and many overlapping siblings; an agent cannot tell how the 'overview' focus relates to projects_overview or when impact analysis needs resourceId.

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

Parameters3/5

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

Schema description coverage is 75%, so most parameters are documented in the schema. The description adds the 'graph intelligence' framing and repeats the focus enum values, but it does not clarify limit semantics, which focus requires resourceId, or the meaning of syncVersion beyond what the schema already provides.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Fetch graph intelligence' and enumerates the main focus areas. It is clear about what the tool does, but it does not explicitly differentiate it from sibling tools like projects_overview or projects_graph_get.

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

Usage Guidelines3/5

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

The focus list implicitly signals when the tool is relevant, e.g., for overview, impact, security, cost, or changes. However, there is no explicit guidance about when to choose this tool over the many graph-related siblings, nor any stated alternatives or exclusions.

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

projects_graph_sync_runsProject Graph Sync RunsA
Read-only

List recent graph-producing sync runs for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds 'recent' and 'graph-producing' context, but it does not disclose ordering, status filtering, pagination, or whether failed runs are included.

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 a single front-loaded sentence with no filler. Every word contributes to identifying the operation: list, recent, graph-producing sync runs, project.

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

Completeness3/5

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

Given the output schema and read-only annotations, the description is adequate for a simple list operation. However, it does not clarify the meaning of 'sync runs' or provide guidance on which graph-related sibling tool to choose, so an unfamiliar agent may still hesitate.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema explains most parameters including projectId, baseUrl, profile, and frontendUrl. The description adds no parameter-level detail, and the 'limit' parameter lacks a description in both the schema and the description.

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

Purpose4/5

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

The description uses a specific verb ('List') and names a clear resource ('recent graph-producing sync runs') scoped to a project. It is distinguishable from sibling graph tools like projects_graph_get or projects_graph_timeline, though it does not explicitly name them.

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

Usage Guidelines3/5

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

The description implies this tool is appropriate when the agent needs recent sync-run history for a project. However, it provides no explicit guidance on when to prefer this over related graph tools or what conditions would make a sibling more appropriate.

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

projects_graph_timelineProject Graph TimelineB
Read-only

List retained graph snapshots for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the contextual detail that the listed data is retained snapshots rather than the live graph, but it says nothing about ordering, pagination, or whether only some snapshots are retained.

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 a single sentence with no filler, and it front-loads the action and object. Every word earns its place.

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

Completeness3/5

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

For a simple read-only list with an output schema and strong annotations, the core invocation is clear. However, the description leaves ambiguity about what distinguishes a graph timeline from the other graph tools and what 'retained' excludes, so it is only minimally complete.

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

Parameters3/5

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

Schema description coverage is 80%, so the parameter schema carries most of the meaning; the description adds no parameter-level detail. The 'limit' parameter is documented only via its default, which is acceptable but not enriched by the description.

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

Purpose4/5

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

The description names a specific verb ('List'), a resource ('retained graph snapshots'), and a scope ('for a project'). It differentiates from sibling graph tools like projects_graph_get by emphasizing retained/historical snapshots, though it never explicitly names a sibling to contrast with.

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

Usage Guidelines2/5

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

There is no guidance on when to call this tool instead of projects_graph_get, projects_graph_diff, or projects_graph_insights. The word 'retained' and the title 'Timeline' hint at historical use, but no explicit condition or alternative is provided.

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

projects_listList ProjectsA
Read-only

List Cloudeval projects visible to the authenticated account.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only, non-destructive, and open-world behavior. The description adds the useful auth-scoping detail that results are limited to the authenticated account, which is beyond the annotations. It does not mention pagination or rate limits, but these are minor given the 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 a single sentence with no filler, and the core action is front-loaded. It is appropriately sized for a simple, zero-required-parameter list tool.

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

Completeness4/5

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

Given the zero required parameters, complete schema documentation, output schema, and annotations, the description is nearly sufficient for correct invocation. It could mention a related sibling, but the essential invocation details are already covered elsewhere.

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

Parameters3/5

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

All three optional parameters are fully documented in the input schema, so the schema carries the parameter-semantics burden. The description provides no additional parameter-level detail, so the baseline of 3 is appropriate.

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

Purpose4/5

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

States a specific verb ('List'), resource ('Cloudeval projects'), and scope ('visible to the authenticated account'), making the primary purpose clear. It does not explicitly contrast with sibling tools like projects_get or projects_overview, so it lacks full sibling differentiation.

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

Usage Guidelines3/5

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

The scope clause implies this tool is for listing projects the authenticated account can see, but there is no explicit guidance about when to choose it over alternatives such as projects_get or projects_overview. No exclusions or alternative routing is provided.

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

projects_overviewGet Project OverviewA
Read-only

Fetch a Cloudeval project cockpit overview with graph, report, connection, credit, and deep-link metadata for IDE and agent workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id to inspect. Defaults to the configured project when omitted.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context by specifying that the overview aggregates graph, report, connection, credit, and deep-link metadata, setting clear expectations for what the agent will receive.

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?

A single, front-loaded sentence efficiently states the action, resource, and relevant content categories. Every component listed adds value, and there is no filler or redundant repetition of schema details.

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

Completeness4/5

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

For a read-only tool with no required parameters, full schema documentation, and an output schema present, the description covers purpose, composition, and audience sufficiently. Defaults and return values are already handled by the schema and output schema; the only minor gap is explicit sibling-routing guidance, which is penalized under usage guidelines.

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

Parameters3/5

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

The schema covers 100% of the four parameters with meaningful descriptions, so the baseline is 3. The tool description itself adds no parameter-level semantics, but none are needed because the schema already documents each parameter's defaults and behavior.

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

Purpose4/5

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

The description uses a specific verb ('Fetch') and identifies a distinct resource ('Cloudeval project cockpit overview') with concrete components: graph, report, connection, credit, and deep-link metadata. This distinguishes it from more granular sibling tools, though it does not explicitly name a sibling to differentiate from.

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

Usage Guidelines3/5

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

The 'cockpit overview' phrasing implies a consolidated, at-a-glance use case, and 'for IDE and agent workflows' signals intended context. However, there is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named, leaving the agent to infer selection criteria among many sibling tools.

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

recipes_getGet RecipeA
Read-only

Fetch one Cloudeval recipe by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
recipeIdYesCloudeval recipe id.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds the granularity of 'one recipe by id' but does not disclose additional behaviors like error handling for missing ids, response shape, or any URL-related side effects. This is acceptable for a simple read tool but not notably rich.

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 a single, focused sentence that states the essential action and object with no wasted words. It is very easy to parse and remember.

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

Completeness4/5

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

For a straightforward get-by-id tool, the description provides sufficient context: it identifies the resource, the identifying key, and the singleton nature of the result. The output schema covers return-value structure, and annotations cover safety. Only a brief note about not-found behavior or response format would make it fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all four parameters. The description only reinforces that fetching is by id, which aligns with the 'recipeId' parameter but adds no new semantic detail beyond the schema.

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 states a specific verb ('Fetch'), a specific resource ('one Cloudeval recipe'), and the retrieval criterion ('by id'). It clearly distinguishes this tool from siblings like recipes_list, which would be used for multiple recipes.

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

Usage Guidelines3/5

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

The description implies the use case: fetching a single known recipe by its id. However, it does not explicitly state when to use this tool versus alternatives such as recipes_list, nor does it mention any exclusion or fallback conditions.

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

recipes_listList RecipesA
Read-only

List Cloudeval reusable recipes and their safety metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=true and destructiveHint=false, so the description is not burdened with safety disclosure. It adds only that the tool returns 'safety metadata', a minor output-scope detail, but no behavioral specifics like pagination, ordering, or required authentication are disclosed. No contradiction exists.

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?

A single sentence that is front-loaded with the verb and resource and contains no filler. Every word earns its place.

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

Completeness4/5

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

For a zero-required-parameter list tool with an output schema and safety annotations, the definition is near complete. It could be slightly richer by mentioning that this returns all recipes and pointing to recipes_get for single-recipe details, but nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%: all three optional parameters (baseUrl, profile, frontendUrl) are documented with default-resolution behavior. The description adds no parameter-level meaning, so the baseline 3 applies.

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

Purpose4/5

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

The description uses a specific verb ('List') and resource ('Cloudeval reusable recipes') and adds 'safety metadata' to indicate the output scope. It is clear, though it does not explicitly contrast with the sibling recipes_get tool, relying on the plural vs singular naming.

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

Usage Guidelines3/5

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

The imperative 'List ... recipes' implies when to call the tool but gives no explicit guidance about when not to use it or to prefer recipes_get instead. There is no mention of alternatives or exclusions, so the agent must infer usage from the name and sibling set.

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

reports_costLatest Cost ReportB
Read-only

Fetch the latest normalized Cloudeval cost report for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoCost view hint such as overview or raw.
periodNo30d
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare the tool read-only and non-destructive, so the description does not need to restate safety. It adds a small amount of behavioral context by saying the report is 'latest' and 'normalized,' but it does not disclose behavior such as default period handling or output shape.

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?

A single front-loaded sentence states the action and resource with no filler or repetition. Every word earns its place.

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

Completeness3/5

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

Given the read-only annotations, a rich output schema, and well-documented parameters, the description is minimally sufficient for a basic fetch. Its main gap is the absence of routing context: an agent has no help distinguishing this from similar report/billing siblings or understanding when 'latest' is constrained by the period parameter.

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

Parameters3/5

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

Schema description coverage is high (83%), so the schema carries most of the parameter meaning. The description adds no parameter-specific detail beyond implying a project scope; it does not explain how 'period' or 'view' interact with 'latest.'

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

Purpose4/5

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

The description states a specific action ('Fetch') and resource ('latest normalized Cloudeval cost report for a project'), so an agent can tell it is about cost reporting. However, it does not explicitly differentiate it from closely related siblings like reports_show or billing_summary, so it stops short of full sibling discrimination.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over reports_show, reports_list, or billing_summary, nor are any exclusions or prerequisites stated. The only contextual hint is 'for a project,' which is too weak to route an agent reliably.

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

reports_listList ReportsA
Read-only

List cost and Well-Architected reports for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoReport kind filter.all
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds that the listing is scoped to a project and covers cost and Well-Architected reports. It does not disclose pagination, ordering, or default behavior, but the output schema covers return shape, which is acceptable for a read-only list tool.

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 a single front-loaded sentence with no filler or repeated title content. Every phrase — cost, Well-Architected, project — adds meaningful scope information.

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

Completeness4/5

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

With full schema coverage, an output schema, and safety annotations, the definition contains the core facts an agent needs: resource type, scope, and filterable categories. The only noticeable gap is explicit sibling routing, which is already accounted for in usage_guidelines.

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

Parameters3/5

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

All five parameters are fully described in the input schema (100% coverage), so the description does not need to restate them. It adds no parameter-specific meaning beyond the schema's enum and default descriptions.

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 states a precise action ('List') and resource ('cost and Well-Architected reports') scoped to a project. The plural 'reports' and the named kinds distinguish it from the singular reports_show and the focused reports_cost/reports_waf siblings.

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

Usage Guidelines2/5

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

No guidance is provided about when to prefer this tool over reports_show, reports_cost, reports_waf, or reports_rules. The description conveys the basic action but does not state exclusions or mention alternative tools, leaving the agent to infer selection.

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

reports_rulesWAF RulesA
Read-only

Return WAF rule findings from the latest Cloudeval WAF report.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
severityNoOptional severity filter.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already cover readOnlyHint=true and destructiveHint=false, and the description is consistent with those. It adds the useful behavioral detail that only the latest report is consulted, not a user-selected report. It does not disclose other behavioral traits such as empty-result behavior or pagination, but annotations lower the bar.

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?

A single clear sentence with no redundant filler. The core action, resource, and source are all front-loaded, making the tool's purpose immediately evident.

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 the read-only annotations, fully self-documenting schema, and existing output schema, the description is complete enough for an agent to select and invoke the tool correctly. The 'latest report' scoping is stated explicitly, which is the main behavior an agent needs to know.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the description itself does not add parameter-level meaning. All five parameters, including optional severity filtering and URL defaults, are already documented in the schema.

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?

Description uses a specific verb ('Return'), a specific resource ('WAF rule findings'), and a precise source ('the latest Cloudeval WAF report'). This clearly distinguishes the tool from siblings like reports_waf, reports_show, rules_search, and rules_get by combining 'WAF' and 'latest report'.

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

Usage Guidelines3/5

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

The description implies usage: if you need WAF rule findings from the most recent Cloudeval WAF report, use this tool. However, it does not explicitly mention when to prefer this over siblings such as reports_waf, rules_search, or reports_show, nor does it state any exclusions.

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

reports_showShow ReportB
Read-only

Fetch one Cloudeval report by id for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoformatted
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
reportIdYesCloudeval report id.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds only that the report is fetched 'for a project,' which is a mild scoping detail; it doesn't disclose view-format behavior, response characteristics, or projectId defaulting beyond what schema already says.

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 a single concise, front-loaded sentence with no filler or repetition of structured fields. Every word adds meaning, and the core verb/resource is immediately visible.

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

Completeness3/5

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

For a read-only get-by-id tool with output schema and strong annotations, much is covered structurally. However, the description gives no usage context vs sibling report tools and doesn't mention the view parameter's role in the response format, leaving an agent without enough context to select the tool confidently.

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

Parameters3/5

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

Schema description coverage is 83%, so the input schema documents most parameters (reportId, view, baseUrl, profile, projectId, frontendUrl). The description doesn't add parameter-level meaning beyond the 'for a project' hint, and with high schema coverage the baseline of 3 is appropriate.

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

Purpose4/5

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

States a clear verb ('fetch') and resource ('one Cloudeval report by id'), and the 'one ... by id' phrasing differentiates it from sibling list/report-type tools like reports_list. However, it doesn't explicitly name alternatives or explain how this relates to reports_waf/reports_rules, so it falls short of a fully differentiated 5.

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

Usage Guidelines2/5

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

Provides no guidance on when to choose this tool over siblings such as reports_list, reports_waf, or reports_rules. There are no stated conditions, exclusions, or alternative routing, leaving the agent to infer usage from the name and schema alone.

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

reports_wafLatest WAF ReportB
Read-only

Fetch the latest normalized Well-Architected report for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoWAF view hint such as overview, rules, or raw.
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
reportIdNoOptional report id.
severityNoOptional severity filter.
projectIdNoCloudeval project id. Defaults to active profile defaultProjectId, then Playground/first project where supported.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already establish that this is read-only and non-destructive. The description adds 'latest' and 'normalized' as behavioral hints, but does not disclose further behavior such as how the latest report is selected, pagination, or response shaping. There is 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 a single, front-loaded sentence with no filler or redundant detail. Every part of it contributes to identifying the tool's purpose.

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

Completeness4/5

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

Given that the input schema documents every parameter and an output schema exists, the one-sentence description is mostly sufficient for invoking the tool correctly. The main missing element is contextual guidance for choosing this tool among the many report-related siblings, but that gap is primarily covered by the usage-guidelines dimension.

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

Parameters3/5

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

Schema description coverage is 100%, so all seven parameters are already documented. The description adds little beyond implying project context; it does not provide additional semantics for parameters like view, severity, or reportId.

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

Purpose4/5

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

The description states a clear verb ('Fetch') and a specific resource: the latest normalized Well-Architected report for a project. It is not tautological, but it does not explicitly distinguish itself from sibling report tools such as reports_show or reports_rules; differentiation is only implicit through 'Well-Architected report.'

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

Usage Guidelines2/5

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

There is no guidance on when to use reports_waf versus the many sibling report tools or how to choose between report types. No when/when-not conditions, alternatives, or exclusions are mentioned.

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

rules_categoriesRule CategoriesA
Read-only

List cloud validation check categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety and mutability profile. The description adds no further behavioral detail such as config resolution, pagination, or link generation, but it is consistent with the read-only annotations and introduces no contradiction.

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 a single, front-loaded sentence: 'List cloud validation check categories.' It contains no filler, no repeated schema information, and every word contributes to understanding the tool's purpose.

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

Completeness4/5

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

For a zero-required-parameter, read-only list tool with an output schema, the one-line description is nearly complete. It could slightly improve by indicating that these categories organize or filter the cloud validation checks exposed by sibling rule tools, but nothing essential is missing 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.

Parameters3/5

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

Schema description coverage is 100%, so baseUrl, profile, and frontendUrl are already fully documented in the input schema. The description contributes no parameter-specific meaning, which is acceptable because the schema carries the complete parameter semantics.

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 uses a specific verb ('List') and a specific resource ('cloud validation check categories'), making the tool's function immediately clear. It is also distinct from sibling tools like rules_search and rules_get, which operate on individual rules rather than their categories.

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

Usage Guidelines3/5

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

The description implies this tool is for retrieving categories, but it does not explicitly state when to prefer it over rules_search, rules_get, or reports_rules. There is no exclusion or alternative routing guidance, so the agent must infer usage from the name and sibling context.

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

rules_getGet RuleA
Read-only

Show one cloud validation check by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleIdYesValidation check id.
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Show' is fully consistent with those. The description adds the domain context 'cloud validation check' but discloses nothing extra about not-found behavior, error handling, or response shape. With annotations covering safety, a neutral 3 is appropriate.

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?

A single seven-word sentence that front-loads the verb and resource, contains zero filler, and conveys the essential operation completely. The description earns its place with no redundant phrasing.

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

Completeness4/5

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

For a simple get-by-id tool, the description is nearly complete: output schema covers return values, annotations cover the safety profile, and schema covers all parameters. The only minor gap is unstated behavior for invalid or missing IDs, which is a small omission for a read-only retrieval tool of this simplicity.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description adds 'by id', which reinforces ruleId as the lookup key, but provides no additional semantic detail beyond what the schema already offers. Baseline 3 is correct given full schema coverage.

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 uses a specific verb ('Show') with a well-defined resource ('one cloud validation check by id'). It clarifies that 'rule' means a cloud validation check, which removes domain ambiguity. The 'by id' scoping distinguishes it from sibling tools like rules_search and rules_categories without needing to inspect their schemas.

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

Usage Guidelines3/5

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

The phrase 'by id' implies this tool is for fetching a single known rule, and the sibling list offers search/category alternatives. However, the description never explicitly states when to prefer this over rules_search, nor does it mention exclusions. Usage context is implied rather than stated.

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

sessions_exportExport SessionsA
Read-only

Return local Cloudeval CLI session history for the selected profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds useful context that the history is local to the CLI and profile-specific, but it does not disclose output format or whether it returns a full snapshot. Given the annotations cover the safety profile, a 3 is appropriate.

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 a single, front-loaded sentence with no filler. Every word contributes meaning, and it is easy to parse quickly without any unnecessary content.

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

Completeness3/5

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

For a read-only tool with zero required parameters and an output schema, the description conveys the core action. However, it does not explain what 'export' adds over sessions_list or whether the returned history is complete or filtered. This gap in usage context prevents a higher score.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (baseUrl, profile, frontendUrl) are fully documented in the input schema. The description adds no parameter-specific details, but none are needed because the schema carries the burden.

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 states a specific verb ('Return') and a specific resource ('local Cloudeval CLI session history'), and qualifies it with 'for the selected profile.' The word 'local' helps distinguish this from server-side or remote session tools, and it does not merely restate the title.

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

Usage Guidelines2/5

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

There is no mention of when to use this tool versus sibling tools like sessions_list, sessions_get, or sessions_search. The description only states what the tool does, so an agent gets no guidance on selection criteria or when this is the appropriate choice.

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

sessions_getGet SessionA
Read-only

Return one local Cloudeval CLI session by thread id.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
threadIdYesLocal session thread id.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the 'local' scoping detail, which is useful, but does not disclose behavior such as error handling or whether an unknown thread id returns null or throws.

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 a single, front-loaded sentence with no filler. Every word contributes to identifying what the tool returns and how it identifies the resource.

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

Completeness4/5

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

For a simple read operation with a complete input schema, an output schema, and read-only annotations, the description is largely sufficient. It could be slightly richer by explicitly noting that this targets a locally stored CLI session and should be used with a pre-known thread id, but those are implied.

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

Parameters3/5

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

The input schema provides full descriptions for all 4 parameters (100% coverage), so the description does not need to re-explain them. The only parameter echo in the description is 'thread id', which adds no new semantic value beyond the schema.

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 uses a specific verb ('Return') with a specific resource ('one local Cloudeval CLI session') and the identifying criterion ('by thread id'). This clearly distinguishes it from siblings like sessions_list or sessions_search, which return collections or perform search.

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

Usage Guidelines3/5

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

The description implies use when a known thread id is available, but it never explicitly states when to prefer this tool over sessions_list, sessions_search, or sessions_export. The usage context is only implied rather than stated.

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

sessions_listList SessionsB
Read-only

List local Cloudeval CLI session history summaries.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), lowering the burden on the description. The description adds useful scoping context beyond annotations ('local' scope, 'summaries' instead of full sessions), but it does not disclose ordering, pagination behavior, or what a summary contains. This is adequate but not rich.

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?

A single front-loaded sentence with zero wasted words: verb first, then scope qualifier, then resource. It is appropriately sized for a tool whose schema already documents most parameter semantics.

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

Completeness3/5

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

With an output schema present, annotations covering safety, and strong schema param coverage, the description need not explain return values or side-effect risk. However, the lack of sibling differentiation is a real gap: an agent cannot tell when to choose this over sessions_search, sessions_get, or sessions_export without inspecting those tools as well.

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

Parameters3/5

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

Schema description coverage is 75%: baseUrl, profile, and frontendUrl all have detailed descriptions with fallback chains, so the schema carries most of the parameter burden. The description itself adds no parameter meaning, and the single undocumented parameter (limit) is largely self-evident from its type and default of 20. This lands at the baseline of 3.

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

Purpose4/5

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

The description states a specific verb (List) and a specific resource ('local Cloudeval CLI session history summaries'). The 'local' and 'summaries' qualifiers help distinguish it from siblings like sessions_search, sessions_get, and sessions_export, but it stops short of explicitly contrasting with them.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus its session-related siblings (sessions_search, sessions_get, sessions_export). There are no exclusions, context cues, or alternative recommendations, so an agent must infer the selection criteria entirely from the tool name and one-line description.

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

statusCLI StatusB
Read-only

Return local Cloudeval CLI status and active configuration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseUrlNoCloudeval API base URL. Defaults to the MCP server --base-url, active profile, CLOUDEVAL_BASE_URL, or the public API.
profileNoCloudeval CLI config profile to read defaults from. Defaults to the server --profile or CLOUDEVAL_PROFILE.
frontendUrlNoCloudeval frontend base URL for generated links. Defaults to --frontend-url, active profile, CLOUDEVAL_FRONTEND_URL, or public frontend.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataYesTool-specific result payload.
commandYes
traceIdNo
frontendUrlNo
filesWrittenNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Return' wording is consistent with that. It adds some useful scope ('local ... status', 'active configuration metadata') but does not explain nuances such as whether this is entirely offline or how it reflects the current profile state.

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?

A single, front-loaded sentence states the action and resource with no filler. Every word adds information, and the most important term ('status') appears early.

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

Completeness4/5

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

For a read-only, optional-parameter tool with an output schema, the description is nearly sufficient. It tells the agent the tool is local, that it reports status and active config metadata, and the schema covers parameters and return shape; only sibling differentiation and a bit more behavioral context are missing.

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

Parameters3/5

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

Schema description coverage is 100% and every optional parameter (baseUrl, profile, frontendUrl) is individually documented with defaults. The description does not add parameter-level meaning, but it does not need to because the schema carries that burden.

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

Purpose4/5

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

The description uses a clear verb ('Return') with a specific resource ('local Cloudeval CLI status and active configuration metadata'), so an agent understands what the tool does. It does not explicitly differentiate from sibling tools like config_show or auth_status, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance about when to call this tool versus alternatives; no alternatives are named and no conditions are given. The only implicit signal is the tool's name/status, so an agent must infer use cases.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv0.38.5
    • Removedbilling_invoices
    • Changedbilling_ledger9 fields changed
      • addedInput schema / properties / actionType / description
        Added value: +"Exact action_type value from a ledger row. Omit to include all action types."
      • addedInput schema / properties / chargeStatus / description
        Added value: +"Charge disposition filter: charged, not_charged or bypassed."
      • addedInput schema / properties / cursor / description
        Added value: +"Opaque data.next_cursor from the previous response. Omit for the first page; retain the same filters while paging."
      • changedInput schema / properties / endAt / description
        Previous value: -"End timestamp."New value: +"Exclusive ISO 8601 upper bound; overrides the range end."
      • addedInput schema / properties / limit / description
        Added value: +"Page size; the MCP handler floors and clamps it to 1–100."
      • addedInput schema / properties / model / description
        Added value: +"Exact model_name or operation value from a ledger row. Omit to include all models."
      • addedInput schema / properties / outcome / description
        Added value: +"Usage outcome filter, such as success, failure, blocked or skipped."
      • addedInput schema / properties / range / description
        Added value: +"Calendar-day window ending now. Use all for no implicit date bounds."
      • changedInput schema / properties / startAt / description
        Previous value: -"Start timestamp."New value: +"Inclusive ISO 8601 lower bound, for example 2026-09-01T00:00:00Z; overrides the range start."
  2. 46 tool updatesv0.38.3
    • First observedagent_profiles_get
    • First observedagent_profiles_list
    • First observedauth_status
    • First observedbilling_invoices
    • First observedbilling_ledger
    • First observedbilling_notifications
    • First observedbilling_plans
    • First observedbilling_summary
    • First observedbilling_topups
    • First observedbilling_usage
    • First observedcapabilities_get
    • First observedconfig_get
    • First observedconfig_profiles
    • First observedconfig_show
    • First observedconnections_get
    • First observedconnections_list
    • First observedcredentials_inspect
    • First observedcredentials_list
    • First observedcredentials_templates
    • First observeddoctor
    • First observedidentity_get
    • First observedmodels_default_get
    • First observedmodels_list
    • First observedprojects_get
    • First observedprojects_graph_diff
    • First observedprojects_graph_get
    • First observedprojects_graph_insights
    • First observedprojects_graph_sync_runs
    • First observedprojects_graph_timeline
    • First observedprojects_list
    • First observedprojects_overview
    • First observedrecipes_get
    • First observedrecipes_list
    • First observedreports_cost
    • First observedreports_list
    • First observedreports_rules
    • First observedreports_show
    • First observedreports_waf
    • First observedrules_categories
    • First observedrules_get
    • First observedrules_search
    • First observedsessions_export
    • First observedsessions_get
    • First observedsessions_list
    • First observedsessions_search
    • First observedstatus

TDQS

B3.4/5.0

Scored across 45 tools

Disambiguation4/5

Most tools are clearly separated by resource domains such as projects, reports, billing, sessions, credentials, and recipes. A few pairs could be confused—capabilities_get vs identity_get and status vs auth_status vs doctor—but the descriptions provide enough context to choose correctly.

Naming Consistency4/5

The dominant pattern is <resource>_<operation>, e.g. projects_list, projects_get, sessions_search, credentials_inspect. Minor deviations like config_profiles, billing_ledger, status, and doctor break the pattern slightly, but overall the naming is predictable and readable.

Tool Count2/5

With 45 tools, this is well beyond the 15-25 range that would still feel manageable. The high count comes from many read-only subdomains, but the sheer number makes tool selection and discovery heavier than necessary.

Completeness3/5

The read-side coverage is broad: projects, reports, billing, sessions, connections, credentials, recipes, and configuration are all represented. However, the surface is almost entirely read-only with no create, update, delete, execute, or configuration-changing tools, leaving significant lifecycle gaps for agents that need to take action.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    D
    quality
    D
    maintenance
    Enables read-only assessment of AWS environments by inventorying resources, running security and operational checks, and generating actionable reports with cost analysis. Designed for contractors with support for assume-role authentication using external IDs.
    10
    -
  • F
    license
    A
    quality
    C
    maintenance
    AI-powered code review tool that detects AI-generated code defects invisible to traditional linters — hallucinated packages, deprecated APIs, cross-file contradictions, hidden security anti-patterns, and over-engineering. Works as a standalone CLI, GitHub Action, or MCP server. Supports TypeScript, Python, Java, Go, and Kotlin. Free for individuals, no API key required.
    4
    37
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language analysis of AWS costs, automated FinOps waste audits, and budget monitoring across multiple profiles and regions while keeping credentials secure locally.
    182
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ganakailabs/cloudeval-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server