Tenpo — the operator that runs alongside your store. Connects to 45+ commerce platforms (Shopify, Klaviyo, Meta Ads, GA4, Stripe…) and gives any AI host (Claude Desktop, Cursor, Claude Code, ChatGPT) deterministic answers about your sales, ads, email, inventory, suppliers, customers, finance, and competitors.
Three tools with reasonable naming (verb_noun pattern) but critical gaps in schema visibility and parameter documentation. tenpo_route and tenpo_run_tool have partial input schemas visible in the source, but output schemas are completely undocumented. tenpo_classify_intent similarly lacks output schema. Descriptions are verbose (200+ chars) but lack actionable constraints and error recovery guidance. No tool declares permissions, error categories, or idempotency guarantees. Parameter descriptions exist but lack format/range constraints. No evidence of input validation or sanitization in the visible code.
INTENT CLASSIFIER — classifies a merchant query into one of Tenpo's intents (connect / investigate / create / launch / pause / discover / memory / onboard / strategy / global_signal / etc.) and returns the routing bundle for that intent. Uses MCP sampling (your host LLM) to do the classification — Tenpo never calls a paid LLM. Returns: classified_intent, confidence, matched_tools, matched_skills, suggested_path. Call this BEFORE tenpo_run_tool when the user query is ambiguous or compound (multiple intents).
PREFLIGHT INTELLIGENCE — Returns a curated tool/skill bundle for a query. Tenpo NEVER runs an LLM; you (the host) do the synthesis with your own tokens. Returns: relevant_tools (top 5 of 175+), relevant_skills (top 3 of 199 with content), suggested_path, pre_executed_data (revenue/alerts), suggested_next_actions, soul. Call this once per user query, then tenpo_run_tool for each tool you need.
Execute any of Tenpo's 175+ specific tools by name. Use after tenpo_route or tenpo_overview shows you which tool fits the task. Examples: tenpo_query (raw SQL on merchant DB), top_customers, low_stock, revenue_trend, tenpo_fetch_url (free webpage fetch — markdown/text/html), tenpo_create_workflow, tenpo_meta_ads, send_email, etc. Pass merchantId in args.
Output schemas completely undocumented for all three tools. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
tenpo_run_tool accepts arbitrary 'args' object with no schema or validation. LLMs cannot determine valid parameters for 175+ tools without explicit per-tool schemas.
No error handling guidance. Descriptions do not explain failure modes, recovery steps, or whether errors are retryable. Agents cannot self-correct on failures.
No tool declares permissions, scope, or destructiveness. tenpo_run_tool is marked WRITE but no guidance on which specific tools are destructive or require confirmation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Parameter 'top_tools' and 'top_skills' lack range constraints. Descriptions do not specify min/max values, allowing LLMs to pass absurd numbers.