Precision-first security scanner for Model Context Protocol servers
MCPSentinel defines a single tool 'scan_mcp_server' with a clear, action-verb name and comprehensive description (180 chars). Input schema is present with two parameters (target, transport) both typed and described. Tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) are correctly declared. Output is structured via structured_output=True. However, the tool lacks explicit output schema documentation in the source, and parameter descriptions could be more detailed regarding constraints (e.g., target length limit of 2048 is enforced in code but not documented in schema). Error handling is present but minimal, validation errors are raised but lack recovery guidance for the LLM.
Enumerate metadata from an operator-allowlisted HTTP MCP server and return static, semantic, and baseline security findings. Dynamic tool invocation is never performed and baselines are never approved from this MCP-native interface.
Output schema not documented. Tool declares structured_output=True but no explicit return type schema is visible in source. LLMs cannot plan downstream operations without knowing response structure.
Parameter constraints not reflected in schema descriptions. Target length limit (2048 chars) and transport enum values are enforced in code but not documented in the input schema descriptions, forcing LLMs to discover constraints via trial-and-error.
Error messages lack recovery guidance. Validation errors (e.g., 'Target host is not authorized') are raised but do not suggest next steps or available alternatives, limiting LLM self-correction.
Transport parameter description incomplete. The 'transport' parameter accepts 'auto', 'http', or 'stdio' but the description does not explain the difference or when to use each, forcing LLMs to infer behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |