Self-hosted tool server exposing host-machine capabilities to LLM clients via MCP and OpenAPI protocols
AnyIDE provides 11 tools across Docker, filesystem, Git, and HTTP domains with generally complete parameter schemas and descriptions. However, several tools lack output schema documentation, and descriptions vary significantly in quality and actionability. The server follows basic naming conventions (verb_noun) but has gaps in error guidance and parameter validation documentation. No tool annotations (readOnlyHint/destructiveHint) are present despite mix of read and write operations. Average tool score across 11 tools is 62, placing this in the 'Fair' range with noticeable gaps requiring remediation before production use.
Perform action on Docker container (start, stop, restart, remove)
Inspect a Docker container
List Docker containers
Get Docker container logs
List directory contents
Read file contents
Search for files matching a pattern
Write content to a file
View commit history
Missing output schema documentation. No tools document their return types or response structure. LLMs cannot plan downstream tool calls or extract specific fields without knowing what structure to expect.
docker_action parameter 'action' lacks enum constraint. Accepts free-form string for actions (start, stop, restart, remove) instead of constraining to valid enum values. LLM may hallucinate invalid action names.
No tool annotations present. 11 tools include both read-only operations (docker_list, fs_read, git_status) and destructive operations (docker_action, fs_write) but lack readOnlyHint, destructiveHint, or idempotentHint annotations. Agents cannot distinguish safe from risky operations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Get repository status
Make an HTTP request with SSRF protection and domain filtering
docker_action description is vague ('Perform action on Docker container') and does not state that operation is destructive or irreversible. Missing prerequisite guidance (e.g., 'Ensure container is backed up before removing').
http_request exposes HTTP method and headers as open parameters without validation. No documentation of SSRF protection mechanism mentioned in tool description. Parameter descriptions lack detail on format/constraints (e.g., which header names are forbidden, which domains are blocked by SSRF filter).
fs_write and fs_read lack detailed parameter documentation on encoding support, boundary conditions (max file size, max line count), and error cases. Parameter descriptions are minimal (e.g., 'File path' vs. 'Absolute or relative file path within workspace directory; relative paths are resolved from workspace root').
docker_logs 'lines' parameter and fs_search 'max_results' parameter lack documented bounds or defaults. Missing guidance: 'If omitted, retrieves last 50 lines (default). Maximum: 10,000 lines to prevent context window overflow.'
Error handling descriptions are absent across all tools. No guidance on what to do if Docker daemon is unreachable, file does not exist, path is outside workspace (security check), or Git repository is invalid. LLM has no recovery path.
fs_read, fs_write, fs_list accept 'workspace_dir' as optional parameter. No documentation of what constitutes a valid workspace path or how it interacts with security boundary checks. Missing: 'workspace_dir defaults to MCP_WORKSPACE_DIR environment variable. Path traversal beyond workspace root is rejected.'
git_log returns up to 'max_count' commits but no pagination or cursor. If agent requests last 1000 commits, response may exhaust context window. No guidance on typical response size or recommendation to paginate.