Run synthetic focus groups using AI personas. CLI, Python library, and MCP server for Claude Code / Cursor / Windsurf.
Althing provides 12 tools with basic naming (verb_noun pattern) and descriptions, but critical gaps undermine quality. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization), and input schemas are present but minimal. Parameters lack type definitions in most cases, schemas show only 'type' and 'description' without proper JSON Schema structure (no minLength, maxLength, enum, pattern, or format constraints). Output schemas are entirely undocumented. Error handling is absent, no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Tool composition is reasonable (single responsibility), but parameter descriptions are generic ('List of persona definitions or persona pack ID' does not explain format, constraints, or when to use which). No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels (WRITE vs READ_ONLY marked in metadata but not in schema). STDIO transport caps protocol readiness at 50.
Append one ad-hoc round to a saved panel result
Get an installed instrument pack
Get a specific panel result
Get a specific persona pack
List installed instrument packs
List saved panel results
List saved persona packs
Output schemas completely undocumented. LLMs cannot plan downstream calls or extract required fields (e.g., what does run_panel return? Is it structured JSON or free text?). Violates pattern:tool and pattern:response-shaper.
Parameter descriptions are generic and lack constraints. 'List of persona definitions or persona pack ID' does not specify format (JSON array? CSV? IDs only?), length limits, or when to use which variant. Violates pattern:constrained-input and pattern:tool-description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Run a full synthetic focus group panel
Send a single prompt to an LLM (no personas)
Quick single-question poll across personas
Save (install) an instrument pack
Save a persona pack
No error handling guidance. Tools lack recovery hints (e.g., 'If panel_result_id not found, call list_panel_results() first'). No categorization of errors as retryable vs user-fixable. Violates pattern:recovery-guide and pattern:error-classification.
Tool annotations missing. Risk levels (READ_ONLY vs WRITE) are declared in metadata but not in schema as readOnlyHint/destructiveHint. LLMs cannot infer safety implications from names alone. Violates current MCP spec (2026-07-28) tool annotation requirement.
Descriptions too short (10-50 chars vs 50-200 char baseline). 'Send a single prompt to an LLM (no personas)' lacks context on when to use vs run_panel, what format the prompt should be, and what the LLM model parameter controls. Violates pattern:tool-description baseline.