A LangGraph-powered gateway for multi-MCP agent workflows
Six tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. All tools have names and descriptions, but most parameter descriptions are minimal or missing. The call_api tool lacks critical security guidance. No output schemas documented. Error handling is minimal, most tools return plain text rather than structured recovery guidance. Naming is generally clear (verb_noun pattern), but descriptions are brief (avg ~60 chars, below the 194-char baseline for A+ tools). No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles.
Call an HTTP API with GET or POST and return response text.
List entries in a directory under ALLOWED_ROOT.
List user tables in the SQLite database.
Run a read-only SELECT query against the SQLite database.
Read a text file under ALLOWED_ROOT, up to 100KB.
Search for files under ALLOWED_ROOT using a glob pattern.
call_api tool lacks security guidance. No mention of credential injection risks, rate limiting, or payload validation. Parameters 'headers' and 'body' are undescribed, inviting LLMs to pass secrets or malformed payloads.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. query_database returns JSON rows, but the schema of each row is undocumented.
Parameter descriptions are minimal or missing. 'sql' in query_database has no description. 'path' in list_directory lacks format/constraint guidance. 'pattern' in search_files is undescribed. LLMs cannot infer valid input formats.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). call_api is marked WRITE but has no annotation. Filesystem tools are READ_ONLY but lack annotation. Agents cannot infer safety/retry semantics.
Error handling returns plain text (e.g. 'Only SELECT queries are allowed', 'Database error: ...') without recovery guidance. LLMs cannot determine if errors are retryable or user-fixable.