Secure, observable MCP + FastAPI server with sandboxed WASM tools, database query execution, file operations, web fetching, and code evaluation
Isolyth provides 4 read-only tools with complete input schemas and descriptions. All tools have clear verb-noun naming (code_exec, db_query, file_ops, web_fetch) and descriptions ranging 120 - 180 chars, meeting baseline minimums. However, parameter descriptions lack detail on constraints, formats, and error recovery. Output schemas are not documented. Error handling is minimal, no guidance on retryability, user-fixable vs fatal errors, or recovery steps. Security is strong (SSRF prevention, sandboxing, read-only enforcement), but descriptions do not highlight these safeguards for LLM awareness.
Evaluate a math expression inside the WASM sandbox. Supports +, -, *, /, ^ (power), %, parentheses, functions (abs, sqrt, floor, ceil, round, min, max), and constants (pi, e). Example: 'sqrt(2) * pi'
Execute a read-only SQL query and return rows as a JSON array. Only SELECT statements are accepted; INSERT/UPDATE/DELETE/DROP/TRUNCATE and any other DDL/DML is rejected before the query reaches the database.
Perform a sandboxed file operation. Provides sandboxed read-file and list-directory operations with path traversal prevention.
Fetch a public URL via httpx and return the response body as text. Includes SSRF (Server-Side Request Forgery) prevention with DNS resolution validation and IP blocklist checking.
Output schemas not documented. LLMs cannot infer what fields code_exec, db_query, file_ops, and web_fetch return, forcing them to guess downstream field names and risk broken tool chains.
Parameter descriptions lack constraint details. 'expression' in code_exec does not specify max length, allowed operators, or error cases. 'query' in db_query does not document parameterized query syntax or injection prevention. 'path' in file_ops does not explain sandbox root or traversal limits.
No error handling guidance. Tools do not document what errors are retryable, what user actions can fix them, or how to recover. E.g., db_query rejects DDL/DML but does not explain the error message format or suggest alternatives.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
file_ops 'operation' enum lacks descriptions for each option. LLMs cannot distinguish when to use 'read_file' vs 'list_directory' without trial and error.
web_fetch 'headers' parameter is under-specified. No guidance on which headers are safe, whether auth headers are allowed, or how to handle redirects and content-type negotiation.