Open source retrieval engine for agentic RAG architectures, exposing technical documentation to AI agents via MCP
Castalia defines 3 tools with complete input schemas and descriptions in Portuguese. All tools are READ_ONLY and follow a clear naming pattern (verb_noun: search_docs, get_document, list_sources). Descriptions are substantive (150-250 chars) and explain WHEN to use each tool. However, output schemas are not documented, LLMs cannot predict response structure. Parameter descriptions are present but lack explicit constraints (e.g., top_k max=20 is mentioned in description but not in schema). No error handling guidance provided. Tool composition is sound: search_docs → get_document forms a logical chain.
Devolve o documento completo, remontado a partir dos seus trechos, quando o trecho retornado por search_docs for insuficiente para escrever o cenário. Informe o doc_id retornado pela busca.
Lista o inventário do que está indexado (documentos, coleção de documentação a que pertencem, número de trechos e data da última ingestão). Use para saber qual documentação está disponível antes de buscar, e para sinalizar lacunas quando um tema não estiver coberto.
Busca regras de negócio e comportamento na documentação oficial do sistema. Use antes de escrever cenários de teste, para basear cada cenário em regras documentadas. Retorna uma lista de trechos com fonte, ordenada por relevância. Se a lista vier vazia, nenhuma regra documentada casou com a busca: sinalize a lacuna explicitamente em vez de inventar comportamento.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). search_docs returns 'lista de trechos' but structure is undefined; get_document returns 'documento completo' but field names/types are absent.
Parameter constraints not formalized in schema. top_k has max=20 mentioned in description text only, not in JSON Schema maxItems/maximum. min_score range [0,1] is stated in description but not enforced via schema constraints.
No error handling guidance. If search_docs returns empty results, description says 'sinalize a lacuna' but tool provides no structured error response or recovery hint. If doc_id is invalid in get_document, no guidance on what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
filters parameter in search_docs is type 'object' with no schema definition. LLMs cannot infer valid filter keys or value types. Example '{"content_type":"concept"}' is helpful but not machine-parseable.
Tool composition assumes search_docs returns doc_id field, but output schema is not documented. If response structure changes, get_document breaks silently.