Framework-neutral lifecycle for browser WebMCP tools with Vue 3 composable and Nuxt module support
useWebMCP is a browser-based WebMCP framework, not a traditional MCP server. Tools are defined in Vue composables with explicit schemas and descriptions. However, critical gaps undermine production readiness: (1) Tool definitions are scattered across example files (useCoffeeTools.ts, app.vue) with inconsistent schema completeness, some tools lack additionalProperties constraints; (2) Parameter descriptions are minimal (10-30 chars) and lack actionable guidance on formats, ranges, or dependencies; (3) No output schemas documented anywhere, LLMs cannot predict response structure; (4) Error handling is absent, tools throw generic errors without recovery guidance; (5) Composition issues: search_catalog and search_products are near-duplicates; reorder_product and add_to_cart overlap; (6) No security model visible, no permission gates, audit trails, or secret injection patterns. The framework itself is well-structured (TypeScript, Vue 3, Nuxt integration), but tool definitions fall short of production standards.
Add a product to the shopping cart
Get the current cart contents and total
Read and focus a specification for the machine currently shown.
Read the signed-in customer order history.
Add a coffee product to the shopping cart for reorder.
Search the Morning Ritual coffee catalog.
Search the coffee product catalog by name or keyword
No output schemas documented. LLMs cannot predict response structure, forcing them to guess at field names and types for downstream tool chaining.
Parameter descriptions are too brief (10-30 chars) and lack actionable constraints. E.g., 'quantity' in reorder_product has min/max in schema but no description explaining the range or why it matters.
Duplicate/overlapping tools: search_catalog and search_products both search products; reorder_product and add_to_cart both add items to cart. LLMs will waste reasoning cycles deciding between them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
A test tool for E2E verification.
No error handling or recovery guidance. Tools throw generic errors ('Arguments must be an object') without telling LLMs what to do next or how to self-correct.
Tool 'test-tool' has a non-standard name (hyphenated, no verb prefix) and minimal description. Appears to be a test fixture that should not be exposed in production.