MCP server for Declaw — secure AI sandboxes with network policies, PII scanning, injection defense, and audit logging
Server has 7 well-named tools with complete input schemas and descriptions. Naming follows verb_noun convention (create_sandbox, kill_sandbox, run_command, read_file, write_file, list_files, list_sandboxes). All tools have descriptions (10-100 chars). All parameters have type definitions and descriptions. However, output schemas are not documented, responses are JSON strings without declared structure. Error handling is minimal; no recovery guidance or actionable error messages. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE, DESTRUCTIVE, READ_ONLY). Parameter descriptions lack format constraints and validation rules (e.g., 'timeout in seconds' but no mention of min/max bounds visible in descriptions, though schema shows them). Missing dependency hints and multi-step guidance.
Create a new secure sandbox environment. Returns a sandbox_id to use with other tools.
Destroy a sandbox and release its resources.
List files and directories at a given path in a sandbox.
List all active sandboxes for the current API key.
Read a text file from a sandbox.
Execute a shell command inside a sandbox. Returns stdout, stderr, and exit code.
Output schemas not documented. Tools return JSON strings without declared field structure. LLMs cannot plan downstream calls or extract data reliably.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked with Risk levels (READ_ONLY, WRITE, DESTRUCTIVE) in metadata but not exposed via MCP tool annotations.
Error handling lacks recovery guidance. No actionable error messages or categorization (retryable vs user-fixable vs fatal). Errors from Declaw SDK are not caught or transformed.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Write text content to a file in a sandbox. Creates parent directories automatically.
Parameter descriptions lack format constraints and validation rules. E.g., 'timeout in seconds' does not mention min/max bounds in description text (bounds exist in schema but LLMs cannot read JSON Schema).
No dependency hints or multi-step guidance. E.g., create_sandbox returns sandbox_id but no hint that it must be passed to run_command, read_file, etc. Agents must infer tool chaining.