Self-hosted SaaS metrics — MRR, churn, LTV from Stripe or CSV
Single tool 'churnlens_scan' has a basic description (89 chars) but critically lacks parameter descriptions. The input schema defines 'target' as a string with a description ('Path to CSV ledger or Stripe export file'), but the tool description does not explain what constitutes valid input, expected file formats, error cases, or output structure. No output schema is documented. The tool name uses a verb+noun pattern (good), but the implementation is minimal and lacks the depth expected for production use. No error handling guidance, no pagination, no structured output documentation.
Self-hosted SaaS metrics — MRR, churn, LTV from Stripe or CSV. Returns JSON findings.
Parameter 'target' has a description in the schema, but the tool description does not explain valid formats (CSV vs Stripe export), file encoding, size limits, or what happens on invalid input. LLMs cannot infer these constraints.
No output schema documented. The tool returns 'JSON findings' but the structure is not specified. LLMs cannot plan downstream operations or extract fields without knowing the response shape.
No error handling guidance. What happens if the file does not exist, is malformed, or is too large? The tool description does not explain recovery steps or error categories.
Tool description is 89 characters, below the 194-char baseline for production tools. It lacks context on WHEN to use this tool, what prerequisites exist (file must be accessible), and what the output enables.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
The tool accepts a file path as a string parameter. No validation is documented: are absolute paths required? Are relative paths resolved from the server's working directory? Can the LLM pass arbitrary paths (path traversal risk)?