Skip to main content
Glama
shukiv

blesta-mcp

by shukiv

List packages

list_packages
Read-onlyIdempotent

Retrieve product packages and package groups from the Blesta catalog. Filter by name, type, status, or group, and optionally include per-term pricing for up to 25 packages.

Instructions

Product catalog: packages and package groups. Wraps Packages.getAll (compact view) and Packages.getAllGroups. Packages.getAll does not return prices; set include_pricing (max 25 packages per call, so filter by name or group first) to fetch Packages.get for each and attach pricing per term/period/currency. Pass full for raw objects incl. descriptions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fullNoRaw package objects (descriptions, email templates, module meta)
nameNoPartial package name filter
typeNo
statusNoDefault: all statuses
company_idNoDefaults to BLESTA_COMPANY_ID or the first company
include_hiddenNo
include_pricingNoFetch prices for each package (one Packages.get call each; max 25 packages)
package_group_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

It discloses important behavioral traits: packages are not returned with prices by default, enabling include_pricing triggers one Packages.get call per package, and there is a 25-package limit. These details add value beyond the annotations, which already declare read-only, idempotent, and non-destructive 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 concise and well-structured, front-loading the core purpose, then adding essential behavioral notes. Every sentence serves a purpose, and there is no redundancy or fluff.

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 description is fairly complete for a listing tool: it covers pricing behavior, full mode, and the underlying API methods. It does not detail every parameter or the exact return format, but those are either in the schema or acceptable for a list operation.

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 adds meaning to include_pricing (how it works, the 25-call limit) and full (raw objects incl. descriptions), which are not fully explained in the schema. However, it does not elaborate on other parameters like include_hidden or package_group_id, and schema coverage is 63%, so it only partially compensates.

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 clearly states the tool lists packages and package groups, specifying it wraps Packages.getAll and Packages.getAllGroups. It also distinguishes from a single-package retrieval tool like get_package by its list nature, making the purpose unambiguous.

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 explicit guidance on when to set include_pricing and warns about the 25-package limit, implying filtering before enabling pricing. It does not explicitly contrast with alternatives like get_package, but the context makes the intended use clear.

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