A Model Context Protocol (MCP) server implementation for ServiceNow with support for multiple authentication types and tool packages
Two tools with partial schema coverage. download_attachment has a complete, well-typed input schema (7 params, all described, appropriate types/constraints). audit_pending_changes has 7 params with types and descriptions. Both descriptions are adequate (60-90 chars) but lack actionable context for LLM selection. No output schemas documented. No error handling guidance. No tool annotations (readOnlyHint, destructiveHint). Naming is clear (verb_noun pattern). No security issues detected (no secrets in params). Composition is reasonable, two distinct concerns. However, missing output documentation and error recovery patterns significantly limit production readiness.
Audit pending update set changes for a developer with risk scanning and clone detection
Download attachments. Use saved_path locally; read the ResourceLink remotely when needed.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract required fields (e.g., attachment file path, audit risk scores). Violates pattern:tool requirement.
No error handling guidance. Errors return raw status codes/messages without recovery hints. E.g., 'Attachment not found' should suggest 'Try audit_pending_changes to list available attachments.' Violates pattern:recovery-guide.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools are read-only but lack explicit annotation. Agents cannot determine retry safety or side-effect risk.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Descriptions lack WHEN/WHY context. 'Download attachments' and 'Audit pending changes' are WHAT, not WHEN. LLMs need: 'Use this when you need to retrieve files attached to a ServiceNow record' and 'Use this to review developer changes for risk before deployment.' Violates pattern:tool-description.
download_attachment: 'output_dir' and 'filename' parameters lack validation constraints. No mention of path traversal guards, max path length, or allowed characters. Violates pattern:tool-gateway.