Skip to main content
Glama

Check access

check_entitlement
Read-onlyIdempotent

Determine whether a specified customer can use a product right now by checking entitlement against customer and product or price identifiers.

Instructions

Check access.

One call: may this customer use this product now? Name the customer by customer, customer_email or customer_external_id, and the product by product (or price).

Input Schema

NameRequiredDescriptionDefault
priceNoA price id, `price_…`.
productNoA product id, `prod_…`.
customerNoA customer id, `cus_…`.
customer_emailNo
customer_external_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered and the bar is lower. The description contributes 'One call' (single round trip) and the identity inputs needed. It does not disclose the response shape, how an unknown customer or product is handled, or that the answer is a non-cached point-in-time result despite openWorldHint=true.

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, front-loaded with the question the tool answers, then the parameter routing. No filler. Slightly tight to the point of omitting the required-input guidance.

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 no output schema, the description is the only place an agent could learn that the answer is a boolean-ish entitlement verdict plus context, and it stays silent. Combined with no statement of which identifiers must be supplied, the definition is adequate but incomplete for a decision-making tool.

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 coverage is 60%, and the description does add real meaning by grouping the five parameters into customer identity (`customer`, `customer_email`, `customer_external_id`) versus product (`product` or `price`), including the alternative relationship between product and price. It never states that at least one customer identifier and one product identifier are functionally required, even though the schema marks zero required — a meaningful gap for a 5-parameter tool.

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-and-resource pair and frames it as a point-in-time question: 'One call: may this customer use this product now?' That is materially clearer than the title 'Check access' and distinguishes it from listing-type siblings. It does not explicitly contrast itself with `list_entitlements` or `consume_entitlement_credits`, 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 Guidelines3/5

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

'One call' implies this is the consolidated path for an access decision, which hints at when to prefer it over enumerating entitlements. However, no sibling is named, no when-not condition is given, and nothing says whether this should precede `consume_entitlement_credits`. Usage 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.