Skip to main content
Glama

Create a product

create_product

Creates a product with a name, optional description, image, active status, metadata, and license settings for use in the Perly Pay payment API. Use test keys only; live keys are refused.

Instructions

Create a product.

Test keys only: refused with a live key.

Input Schema

NameRequiredDescriptionDefault
nameYes
activeNo
metadataNoYour own key–value pairs (≤ 50 keys, values ≤ 500 characters). On an update they are merged in; an empty value removes its key.
image_urlNo
descriptionNo
issues_licenseNoIssue a license key with every purchase.
license_activation_limitNoInstances a key may be active on.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the mutation profile is covered structurally. The description's added value is the test-key-only restriction, which is real behavioral context, but it says nothing about duplicate-name behavior, non-idempotency consequences, or what a refusal looks like.

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?

Two short sentences with no filler, and the core purpose is front-loaded ahead of the environment constraint. It is efficient, though the brevity is partly under-specification rather than discipline.

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?

This is a 7-parameter mutation with a nested metadata object, no output schema, and no annotation covering return behavior, yet the description never mentions what is returned (e.g., an ID needed for create_price) or how nested metadata behaves on creation. For a create endpoint with this much schema surface, the description is too thin.

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

Parameters2/5

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

Schema description coverage is only 43% across 7 parameters, so the description needs to compensate and adds nothing about any parameter. Fields such as name, active, image_url, and description have no descriptive text anywhere, leaving the agent to infer semantics from property names alone.

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 ("Create a product"), so an agent immediately knows the operation. It does not distinguish this from siblings like update_product or list_products, but the create-vs-update split is largely self-evident from the name.

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 "Test keys only: refused with a live key" line is a genuinely useful precondition that tells the agent when this call will fail. However, it offers no guidance on when to create versus update a product, or what to do after creating one (e.g., create_price).

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