MCP server for managing Sixfab cellular IoT devices, SIM cards, containers, eSIM profiles, and network monitoring
Server has 22 tools with consistent naming (verb_noun pattern: sixfab_list_*, sixfab_get_*, sixfab_update_*, sixfab_deploy_*, sixfab_delete_*) and descriptions present for all tools. All tools have input schemas with Zod validation. However, descriptions are brief (avg ~80 chars, below the 194-char baseline for A+ tools) and lack context on WHEN to use each tool or dependencies between them. Parameter descriptions are minimal, many lack format/constraint details. Output schemas are not documented; responses are JSON-stringified without field-level documentation. Error handling returns generic text messages without recovery guidance or error classification. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Passphrase parameter is repeated on all 22 tools, a security anti-pattern (credentials should be server-injected, not per-call parameters).
Delete a Docker container from a Sixfab device
Deploy a new Docker container to a Sixfab device
Download and install an eSIM profile on a Sixfab device using an activation code
Get detailed information about a specific Sixfab device/asset
Get the current GPS location of a Sixfab device
Get device monitoring data for a Sixfab device (CPU, memory, temperature, etc.)
Passphrase parameter exposed on all 22 tools. Credentials must never appear as tool parameters, use server-side secret injection via environment variables. Agent traces log every parameter, leaking secrets into logs and prompt history.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Get current status of a Sixfab device (online/offline, uptime, system info)
Get eSIM profiles installed on a Sixfab device
Get the current network interface priority settings for a Sixfab device
Get modem monitoring data for a Sixfab device (signal quality, registration status, etc.)
Get network monitoring data for a Sixfab device (signal strength, connection type, etc.)
Get the access code for remote terminal/SSH access to a Sixfab device
Get SIM data usage statistics for a Sixfab device
List all Sixfab cellular IoT assets (devices) registered to your account
List all Docker containers running on a Sixfab device
List all available networks in your Sixfab account
Register a new Sixfab device/asset using its registration token
Set network interface priority order for a Sixfab device
Switch the active eSIM profile on a Sixfab device
Update a Sixfab device/asset name or description
Update a Docker container on a Sixfab device (start, stop, restart)
Update SIM settings (APN, PIN) for a Sixfab device
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels documented (READ_ONLY, WRITE, DESTRUCTIVE). LLMs cannot infer safety properties without explicit hints.
Output schemas not documented. Tools return JSON.stringify(result) without field-level documentation. LLMs cannot plan downstream tool calls or extract required data (e.g., asset IDs for chaining) without knowing response structure.
Error handling returns generic text messages ('Error: <message>') without recovery guidance or error classification. LLMs cannot determine if an error is retryable, user-fixable, or fatal.
Parameter descriptions lack format/constraint details. E.g., 'activation_code' has no format hint; 'interval' (hourly/daily) lacks enum constraint; 'action' (start/stop/restart) lacks enum. LLMs hallucinate invalid values without formal constraints.