M4ST local IDE bridge + dashboard backend. FastAPI server providing health checks, system monitoring, log streaming, crew execution, and memory/knowledge graph queries.
Server has 11 tools with basic descriptions and input schemas, but significant quality gaps. Most tool names lack clear action verbs (health, system_info, ram_usage are nouns). Descriptions are present but generic (avg ~120 chars, below 194-char baseline). Parameter descriptions exist but lack constraints, ranges, or format guidance. No output schemas documented. Error handling is minimal, no recovery guidance or actionable error messages. Security concern: execute tool accepts arbitrary shell commands with only whitelist validation; no rate limiting or audit trail visible. Tools like stream_logs expose authentication tokens as query parameters (anti-pattern). No tool annotations (readOnlyHint/destructiveHint). Composition is weak: run_crew and run_all_crews are separate when they could be unified with a parameter.
Query Cognee knowledge graph system.
Execute shell commands with whitelist validation. Allowed commands: git, npm, python, pytest. Returns stdout, stderr, and exit code.
Read recent entries from automation_log.jsonl. Returns newest entries up to specified limit.
Check health status of all services (openclaw, ninerouter, falkordb, graphiti-mcp, cognee-mcp, langfuse, uptime-kuma). Returns overall status and individual service health.
Query Graphiti memory system. Supports conversation and code memory types.
Write content to Graphiti memory system.
execute tool accepts arbitrary shell commands with only whitelist validation; no input sanitization, rate limiting, or audit trail. Agents can be tricked into command injection.
stream_logs exposes authentication token as query parameter (anti-pattern). Tokens in URLs are logged in server access logs and browser history.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Responses are unstructured.
Tool names lack action verbs. 'health', 'system_info', 'ram_usage' are nouns; should be 'check_health', 'get_system_info', 'get_ram_usage'. LLMs infer intent from verb-noun structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Get Docker RAM usage via 'docker stats'. Returns used GB, total GB, and per-container memory breakdown. Falls back to estimates if docker command unavailable.
Execute all available CrewAI crews sequentially.
Execute a CrewAI crew by file name. Supports dry-run mode.
Stream automation log entries to the dashboard via Server-Sent Events (SSE). Continuously monitors log file and sends new entries.
Return system metadata for dashboard display including version, project name, author, RAM, platform, crews list, services count, and budget.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes (run_crew, execute, memory_write).