A safety gate between AI agents and your servers: an MCP server exposing structured, policy-checked, audited operations
opsgate exposes 26 tools with consistent naming (verb_noun pattern) and basic descriptions. All tools have descriptions (10-50 chars, below the 50-200 char optimum). Input schemas are present for parameterized tools but lack detail: most parameters have only a type and minimal description. Output schemas are not documented. Error handling is present but generic. Security posture is strong (read-only vs mutating risk classification, audit logging), but descriptions do not guide LLM selection or explain when to use each tool vs alternatives. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification in the data.
Read-only tool to list Docker Compose services
Read-only tool to list directory contents
Read-only tool to check disk usage
Read-only tool to inspect Docker container
Read-only tool to get Docker container logs
Read-only tool to list Docker containers
Mutating tool to restart a Docker container
Mutating tool to start a Docker container
Descriptions are uniformly short (10-50 chars) and lack LLM-optimized guidance. Baseline for A+ tools is 50-200 chars with explicit WHAT/WHEN/WHY. E.g., 'Read-only tool to get system information' does not explain when to call system_info vs process_top vs listening_ports, or what fields are returned.
Output schemas are not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does service_status return a boolean or an object with status+timestamp?). Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Read-only tool to get Docker container stats
Mutating tool to stop a Docker container
Read-only tool to search files
Read-only tool to read file contents
Read-only tool to get systemd journal errors
Read-only tool to tail systemd journal
Read-only tool to list listening ports
Mutating tool to reload nginx
Read-only tool to test nginx configuration
Read-only tool to list top processes
Read-only tool to list services
Mutating tool to reload a service
Mutating tool to restart a service
Mutating tool to start a service
Read-only tool to check service status
Mutating tool to stop a service
Opt-in tool to execute arbitrary shell commands
Read-only tool to get system information
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are absent despite clear risk stratification in the data (READ_ONLY, REVERSIBLE, DESTRUCTIVE). These annotations enable agents to reason about safety and plan confirmations. Current spec supports tool annotations; they should be present.
Parameter descriptions are minimal (e.g., 'Service name', 'Container name or ID'). Baseline: 72 chars average. No guidance on format, constraints, or examples. E.g., does 'service name' accept 'nginx', 'nginx.service', or both? What if the service is not found?
shell_exec (DESTRUCTIVE risk) lacks confirmation/dry-run pattern. Agents can execute arbitrary commands without a safety gate. Baseline pattern: irreversible operations should support confirmation or dry-run before execution.