Professional multi-agent AI framework with event-driven flows, ReAct reasoning, RAG, knowledge bases, memory, MCP/A2A interop, and function calling
Mangaba AI server has 13 tools with consistently visible schemas and descriptions. Naming follows verb-first conventions (code_interpreter, sql_query, document_search, file_reader, file_writer, etc.), which is good. Descriptions are present for all tools and generally actionable (10-160 chars range). However, there are significant gaps: (1) Input parameter descriptions are often generic or missing ('Codificação (padrão: utf-8)' in file_reader is Portuguese, not English, and lacks context). (2) Output schemas are NOT documented, we see input schemas only, never what the tools return. (3) Error handling guidance is minimal, tools like code_interpreter and sql_query have destructive/restricted implications but lack recovery instructions. (4) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are visible in the schema definitions, even though several tools are clearly read-only or destructive. (5) Parameter validation rules are implicit (e.g., sql_query.max_rows is integer but has no min/max bounds stated). Overall: solid foundational definitions, but lacking the depth and structure expected of production-grade tools.
Evaluate a mathematical expression and return the numeric result
Execute a Python snippet in an isolated process and return its stdout, stderr and the value of the last expression
List files and directories in a given path
Search inside a document and return the passages most relevant to a question
Search the web using DuckDuckGo and return relevant results
Read text files and return their contents
Search for lines matching a pattern or regex across a directory tree, returning path:line results like grep
Output schemas are NOT documented for any tool. LLMs cannot plan downstream calls or extract the right data without knowing what fields to expect. file_reader returns what? A plain string? Metadata? file_writer returns what?
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible in schema definitions. Many tools are clearly read-only (file_reader, directory_list, calculator) or destructive (file_writer, code_interpreter, http_request POST/PUT/DELETE), but LLMs cannot see this classification. This prevents proper safety guardrails and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
Write content to text files
Call an arbitrary REST endpoint and return the status, headers and body
Fetch a web page over http(s) and return its readable text content, with scripts, styles and markup removed
Run a read-only SQL SELECT query against the configured database and return the rows. Writes and DDL are rejected.
Split long text into smaller chunks with optional overlap
Count words, sentences, and characters in text
Parameter descriptions are incomplete or non-English. file_reader and file_writer have Portuguese descriptions ('Caminho do arquivo', 'Codificação (padrão: utf-8)') instead of English. directory_list description is also Portuguese. This violates the requirement that every parameter has a description explaining what it controls.
No error handling guidance. Tools like sql_query (SQL injection risk), file_writer (permission denied, disk full, path traversal), code_interpreter (execution timeout/error), and http_request (network failures, 5xx errors) have no documented recovery steps. LLMs cannot self-correct without actionable error messages.
Parameter bounds and constraints are missing. sql_query.max_rows is an integer with no stated min/max (could agents pass 1000000?). chunk_size and chunk_overlap have no bounds. timeout has no minimum or realistic maximum. This invites hallucinated values that break tools.
Tool interdependencies are undocumented. document_search and file_search do similar things but lack guidance on when to use which. scrape_website depends on beautifulsoup4 optionally, but this is not stated in the description. When file_search finds a file, agents must call file_reader to get content, but this chain is not documented.
Transport and protocol transport type not specified in repo metadata. README and code do not indicate if this is STDIO-only, HTTP, or SSE. Without clarity on transport, cannot assess protocol readiness or remote accessibility.