Skip to main content
Glama

Server Details

Discover personalized courses and books for dating, marriage and family; prepare purchase links.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-03-26
URL

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation3/5

list_offers is explicitly described as an alias of list_products, so two tools have identical purpose and an agent cannot reliably choose between them. prepare_purchase and recommend_offer are clearly distinct, and the parameter guidance (productIds vs offerId) helps, but the catalog duplication creates real confusion.

Naming Consistency4/5

All four tools follow a consistent verb_noun snake_case pattern (list_offers, list_products, prepare_purchase, recommend_offer). Minor inconsistency in noun vocabulary ('offer' vs 'offer'/'product'/'purchase') is a small blemish but the convention itself is predictable.

Tool Count4/5

Four tools is lean but defensible for a sales flow (browse, recommend, purchase). However, one of the four is a redundant alias, so the effective surface is only three, drifting toward thin.

Completeness3/5

The browse → recommend → purchase lifecycle is covered, but there is no single-item detail retrieval (only bulk list) and no post-purchase surface such as order status or confirmation lookup. This leaves agents with dead ends after the handoff step.

Available Tools

4 tools
list_offersB
Read-onlyIdempotent
Inspect

Full course and book catalog; alias of list_products. Prices are selected-product subtotals, not a complete basket quote.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
queryNo
collegeNo
budgetMinorNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld behavior, so safety is covered. The description adds genuinely useful context beyond that: prices returned are selected-product subtotals, not a complete basket quote, which prevents misreading the output.

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 tight clauses with no filler, and the catalog scope is front-loaded ahead of the alias and price caveats. Every phrase carries information.

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 listing tool with full annotation coverage and no output schema, the description is close to adequate, but with four undocumented parameters and no return-shape guidance it leaves gaps an agent must fill by inference.

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 0%, so the description must carry the burden and does not. Only 'course'/'book' (the kind enum) is implicitly referenced; query, college, and budgetMinor receive no explanation of format, filtering behavior, or accepted values.

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 the resource precisely ('Full course and book catalog') and uniquely identifies the tool as an alias of list_products, which tells an agent it maps to the same underlying operation as a known sibling. It lacks an explicit verb, but the scope is unambiguous.

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 'alias of list_products' note implies this is interchangeable with that sibling, but there is no explicit when-to-use or when-not-to-use versus prepare_purchase or recommend_offer, which are also purchase-flow tools. 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.

list_productsA
Read-onlyIdempotent
Inspect

List every published Love Campus course and book across Dating, Marriage and Family, with exact IDs, USD prices and current book buyability. Optional college, kind, text and budget filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
queryNo
collegeNo
budgetMinorNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds real value beyond that by disclosing that only 'published' items are returned and that results include exact IDs, USD prices, and current book buyability. It omits pagination, sorting, and any auth/rate-limit context.

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?

Two sentences, no filler, with the scope statement front-loaded and the filter list kept to a short trailing clause. Every clause carries information the agent needs.

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 no output schema, the description takes on the return-value burden and does so (IDs, prices, buyability). Filters are covered and the published-only restriction is stated. Remaining gaps are pagination/sort behavior and any result limits, which are minor for a catalog list.

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 0%, so the description must carry parameter meaning, and it only loosely does: 'college, kind, text and budget' maps to college/kind/query/budgetMinor, but the names don't match the schema ('text' vs query, 'budget' vs budgetMinor) and it never explains minor-unit currency semantics or what field the text query matches against. Names the params but not their semantics.

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 concrete verb ('List') and resource (published Love Campus courses and books), plus the domain scope (Dating, Marriage and Family) and the fields returned. It does not, however, distinguish itself from the sibling list_offers or explain how 'products' relates to 'offers', so an agent must infer the boundary.

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 usage context (browsing the catalog with optional filters) but never states when to use this rather than list_offers, recommend_offer, or prepare_purchase. No prerequisites, exclusions, or alternatives are given, so routing is left to inference.

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

prepare_purchaseA
Read-onlyIdempotent
Inspect

Prepare a fresh purchase handoff for any published available course or book, or one exact course+book pair. Pass productIds (one or two exact catalog IDs), or a single offerId; never both. Existing mc-bundle-one is supported. Customer reviews the whole basket and authorizes payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
offerIdNo
productIdsNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, but the description adds meaningful context: it is a 'handoff' that the customer reviews as a whole basket and then authorizes payment separately, so no charge occurs here. The 'fresh' wording and mc-bundle-one note add operational nuance 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.

Conciseness4/5

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

Front-loaded with the core action and then the invocation contract; every sentence carries weight. 'Existing mc-bundle-one is supported' is slightly cryptic out of context but still earns its place as a compatibility note.

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?

No output schema exists, but the description conveys the downstream flow (customer reviews basket, authorizes payment), so the agent understands what the handoff produces. For a 2-parameter tool this is nearly complete, lacking only an explicit note on sibling alternatives.

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?

Schema description coverage is 0%, so the description must compensate. It explains that productIds holds one or two exact catalog IDs, offerId is a single offer, and the two are mutually exclusive ('never both') — a constraint not expressible in the schema itself.

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 (prepare) plus resource (purchase handoff) and scopes it to published courses/books or an exact course+book pair. This clearly distinguishes it from siblings like list_products, list_offers, and recommend_offer, which don't construct a basket.

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?

Gives concrete invocation guidance: pass productIds (one or two exact catalog IDs) OR a single offerId, and 'never both'. It also notes mc-bundle-one support. It stops short of explicitly contrasting when to prefer this over recommend_offer or list_offers, so guidance is clear but not exhaustive.

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

recommend_offerC
Read-onlyIdempotent
Inspect

Rank suitable published courses and books using the buyer need, college, kind and USD budget. Explain personalized learning accurately; ask the customer to confirm suitability.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
needYes
queryNo
collegeNo
currencyYes
budgetMinorNo
includeBookYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds that the output is a ranking against a buyer need and that results should be confirmed with the customer, which is useful context, but it does not describe scoring criteria, result ordering guarantees, or fallback behavior when nothing matches.

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

Conciseness3/5

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

Two short sentences with the ranking purpose front-loaded, so it is efficiently sized. The second sentence ('Explain personalized learning accurately') is vague and awkwardly worded, costing precision without adding usable information.

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 7 parameters, 0% schema description coverage, no output schema, and no explanation of the returned ranking structure, the description leaves too much unspecified. An agent cannot determine how many recommendations come back, how they are ranked, or what to do with the query and includeBook inputs.

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 0% across 7 parameters, so the description carries the full burden. It names need, college, kind, and roughly 'USD budget', but omits query and includeBook entirely and never clarifies that budgetMinor is in minor currency units or what the college enum values mean in this domain.

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 ('rank') and resource ('published courses and books') and names the operating inputs (need, college, kind, budget). It implies 'recommend' semantics that separate it from the sibling list_offers/list_products, but never names an alternative, so the differentiation is inferential rather than explicit.

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 statement of when to use this tool versus list_offers, list_products, or prepare_purchase, and no preconditions or exclusions. The closing instruction ('ask the customer to confirm suitability') is conversation-flow guidance, not tool-selection guidance.

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.

  1. 4 tool updates
    • Changedlist_offers4 fields changed
      • addedInput schema / properties / budgetMinor
        Added value: +{
        +  "maximum": 1000000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / college
        Added value: +{
        +  "enum": [
        +    "dating",
        +    "marriage",
        +    "family"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "course",
        +    "book"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / query
        Added value: +{
        +  "maxLength": 150,
        +  "type": "string"
        +}
    • Addedlist_products
    • Changedprepare_purchase4 fields changed
      • removedInput schema / properties / offerId / enum
        Removed value: -[
        -  "mc-courses",
        -  "mc-bundle-one"
        -]
      • addedInput schema / properties / offerId / pattern
        Added value: +"^[a-z0-9-]{3,80}$"
      • addedInput schema / properties / productIds
        Added value: +{
        +  "items": {
        +    "pattern": "^[a-z0-9-]{3,80}$",
        +    "type": "string"
        +  },
        +  "maxItems": 2,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "offerId"
        -]
    • Changedrecommend_offer4 fields changed
      • addedInput schema / properties / college
        Added value: +{
        +  "enum": [
        +    "dating",
        +    "marriage",
        +    "family"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "course",
        +    "book"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / query
        Added value: +{
        +  "maxLength": 150,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "need",
        -  "budgetMinor",
        -  "currency",
        -  "includeBook"
        -]New value: +[
        +  "need",
        +  "currency",
        +  "includeBook"
        +]
  2. 3 tool updates
    • First observedlist_offers
    • First observedprepare_purchase
    • First observedrecommend_offer

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources