Command-line client for Skaftor — drive AI-native software delivery work orders from your terminal over MCP.
Skaftor CLI exposes 7 tools via HTTP JSON-RPC transport with basic schemas and descriptions. Tool names follow verb_noun convention (list_*, launch_*, transition_*, open_*, refresh_*, verify_*), which is good. However, descriptions are inconsistent in depth and clarity. Most critically, input schemas lack type declarations for parameters, they show parameter names and descriptions but omit 'type' fields (e.g., launch_workstation's 'name' parameter has no 'type': 'string' declaration visible in the schema). Parameter descriptions are present but often terse (10-30 chars). No output schemas are documented. Error handling is minimal, the CLI dies on RPC errors without recovery guidance. The server is HTTP-accessible (not STDIO-capped), but definition quality is below production baseline.
Launch a managed workstation for me — returns at once; track it with `skaftor ws`. --on picks where it runs (see `skaftor targets`); omit it for your organisation's default
Where I can launch (Skaftor Cloud and/or my organisation's own cloud), with the default marked
List my managed workstations and their status
Open an interactive shell in my running workstation (^D to exit)
Refresh the PTY credential for an open workstation shell session
Power my workstation on, off, or delete it
Input schemas lack explicit 'type' declarations. Parameters show names and descriptions but no 'type': 'string'/'number'/'boolean' fields. This violates JSON Schema basics and forces LLMs to infer types from descriptions alone.
No output schemas documented. Tools return results but LLMs cannot plan downstream calls without knowing response structure (fields, types, required vs optional).
Parameter descriptions are terse (10-30 chars). 'workstation name', 'action to perform', 'reconnect identifier' lack context on format, constraints, or examples. Descriptions should be 50-200 chars to guide LLM selection and usage.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Preflight: plan entitlement · where I can launch · connection · ready to launch
transition_workstation 'action' parameter accepts 'start', 'stop', 'delete' but is not declared as an enum. Free-form string invites hallucinated values. Should be: {"type": "string", "enum": ["start", "stop", "delete"]}.
Error handling is minimal. CLI calls die() on RPC errors without recovery guidance. No actionable error messages (e.g., 'User not found. Try verify_workstation_access() first.'). Agents cannot self-correct.