Love Campus Sales Agent
Server Details
Discover personalized courses and books for dating, marriage and family; prepare purchase links.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
TDQS
Scored across 4 tools
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.
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.
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.
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 toolslist_offersBRead-onlyIdempotentInspect
Full course and book catalog; alias of list_products. Prices are selected-product subtotals, not a complete basket quote.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| query | No | ||
| college | No | ||
| budgetMinor | No |
TDQS
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.
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.
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.
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.
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.
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_productsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| query | No | ||
| college | No | ||
| budgetMinor | No |
TDQS
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.
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.
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.
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.
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.
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_purchaseARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| offerId | No | ||
| productIds | No |
TDQS
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.
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.
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.
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.
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.
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_offerCRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| need | Yes | ||
| query | No | ||
| college | No | ||
| currency | Yes | ||
| budgetMinor | No | ||
| includeBook | Yes |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
- Changed
list_offers4 fields changed- added
Input schema / properties / budgetMinorAdded value: +{ + "maximum": 1000000, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / collegeAdded value: +{ + "enum": [ + "dating", + "marriage", + "family" + ], + "type": "string" +} - added
Input schema / properties / kindAdded value: +{ + "enum": [ + "course", + "book" + ], + "type": "string" +} - added
Input schema / properties / queryAdded value: +{ + "maxLength": 150, + "type": "string" +}
- Added
list_products - Changed
prepare_purchase4 fields changed- removed
Input schema / properties / offerId / enumRemoved value: -[ - "mc-courses", - "mc-bundle-one" -] - added
Input schema / properties / offerId / patternAdded value: +"^[a-z0-9-]{3,80}$" - added
Input schema / properties / productIdsAdded value: +{ + "items": { + "pattern": "^[a-z0-9-]{3,80}$", + "type": "string" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" +} - removed
Input schema / requiredRemoved value: -[ - "offerId" -]
- Changed
recommend_offer4 fields changed- added
Input schema / properties / collegeAdded value: +{ + "enum": [ + "dating", + "marriage", + "family" + ], + "type": "string" +} - added
Input schema / properties / kindAdded value: +{ + "enum": [ + "course", + "book" + ], + "type": "string" +} - added
Input schema / properties / queryAdded value: +{ + "maxLength": 150, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "need", - "budgetMinor", - "currency", - "includeBook" -]New value: +[ + "need", + "currency", + "includeBook" +]
3 tool updates
- First observed
list_offers - First observed
prepare_purchase - First observed
recommend_offer
Related MCP Connectors
Access family personality profiles, relationship reports, and relational patterns via AI.
Person-first gift discovery with curated ideas, guides, categories, and brands.
A sourced learning map your AI places you on: finds gaps you can't name, teaches step by step.
Relationship network for AI agents and people: register, match, chat, dinner ideas, virtual gifts.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceFind personalized puzzle books by first name from a 100,000+ title Shopify catalog. Perfect gift-finding tool for any AI agent.Apache 2.0
- FlicenseNot gradedqualityDmaintenanceRecommends gifts and drafts messages based on relationship, occasion, budget, and vibe.-
- FlicenseNot gradedqualityDmaintenanceEnables users to manage wedding preparation tasks including timeline generation, budget review, vendor quote comparison, role assignment briefs, and drafting messages for family, vendors, and friends.-
- FlicenseNot gradedqualityDmaintenanceEnables personalized book recommendations by managing reading profiles and preferences, with tools to add genres, authors, and track books, then get AI-powered suggestions.31-
Glama MCP Gateway
Add one secure layer between your agents and this server.