Progressive language-discovery MCP server for Riposte (SPEC §8). Exposes the steering/ single source of truth as MCP tools so an agent's own tool-selection machinery does the retrieval, grain by grain.
Server exposes 6 read-only tools for Riposte language discovery via STDIO. Tool names follow verb_noun convention (language_overview, list_topics, get_topic, predicate_reference, explain_error, check_program). Descriptions are present and contextual (avg ~80 chars), but parameter descriptions are sparse or missing. Input schemas are minimal, most tools accept 0-1 parameters with basic type info. Output schemas are not documented. No error handling guidance or recovery paths. Tools are well-scoped (single responsibility) and compose logically (list_topics → get_topic chain). Security is adequate for read-only operations, but no input validation or bounds checking visible.
Compile Riposte source with riposte-c and return the diag.json report (status + diagnostics). Use this to check a program before finalizing it.
Explain a compiler diagnostic code (e.g. 'E030') with a minimal broken/fixed pair.
Return a steering topic by name (e.g. 'types_and_estimates', 'quirks'). Use list_topics() to see the options.
One page: the shape of a Riposte program, the two blocks, and the mandatory otherwise rule. Start here.
List the discoverable steering topics (grains). Pass one to get_topic.
Signature, epistemic return kind, semantics, and an example for one predicate.
Parameter descriptions missing or minimal. 'name' and 'code' parameters lack guidance on valid values, format, or constraints. LLMs cannot infer whether 'name' accepts 'types_and_estimates' or 'types-and-estimates' or 'TypesAndEstimates'.
Output schemas not documented. Tools return strings or lists, but LLMs need to know the structure of returned data (e.g., does list_topics return ['topic1', 'topic2'] or [{name, description}, ...]?). Undocumented outputs force LLMs to guess.
No error handling or recovery guidance. If check_program fails to compile, the tool returns a diagnostic but does not guide the LLM on how to interpret or fix the error. No actionable error messages.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
check_program accepts arbitrary source code as a string with no length limit, format validation, or timeout. Malicious or extremely large inputs could cause resource exhaustion or hang the server.
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. Limits deployment and integration scenarios.