MCP server for NetExec (nxc) network penetration testing tool. Provides MCP tools for executing NetExec commands via SSH to a Kali Linux machine. Supports SMB, WinRM, SSH, LDAP, MSSQL protocols and various modules.
NetExec MCP server has well-structured input schemas with proper types and enums, but suffers from critical gaps in naming conventions, output documentation, and error handling. Tool names use protocol prefixes (nxc_smb, nxc_winrm) rather than action verbs, violating the verb_noun pattern. Descriptions are adequate (100-150 chars) but lack guidance on when to use each tool vs. alternatives. No output schemas are documented, LLMs cannot predict response structure for chaining. Error handling is absent; the code catches exceptions but returns raw stderr without recovery guidance. Parameters are well-typed with enums for actions, but lack constraints on numeric ranges (threads, timeout). The server exposes SSH credentials as environment variables (good) but the tool descriptions don't explain prerequisites or dependencies.
Execute NetExec LDAP protocol commands for Active Directory enumeration, including users, groups, Kerberoasting, and BloodHound collection.
Execute NetExec MSSQL protocol commands for SQL Server enumeration and command execution.
Execute NetExec SMB protocol commands for Windows enumeration, credential validation, command execution, and credential dumping. Supports pass-the-hash attacks.
Execute NetExec SSH protocol commands for Linux/Unix enumeration and command execution.
Execute NetExec WinRM protocol commands for remote Windows management and command execution.
Tool names do not follow verb_noun pattern. All tools use protocol prefix (nxc_smb, nxc_winrm) instead of action verbs (execute_smb_enum, run_winrm_command). LLMs cannot infer intent from names alone.
No output schemas documented. Tool descriptions do not specify what fields are returned, making it impossible for LLMs to plan downstream calls or extract required IDs for chaining.
Error handling returns raw stderr without recovery guidance. Exceptions are caught but responses lack actionable next steps (e.g., 'Try with --local-auth flag' or 'Verify target is reachable').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Numeric parameters (threads, timeout, port) lack min/max constraints. LLMs could pass absurd values (threads=10000, timeout=999999) that break execution or cause hangs.
Tool descriptions lack dependency hints and prerequisites. No guidance on when to use nxc_ldap vs nxc_smb, or what credentials are required for each action enum value.