Unified ServiceNow MCP server with 400+ snow_* tools, blast-radius analysis, stdio + HTTP transports, and enterprise proxy support
This server exposes a search-and-execute pattern for two tool sets (ServiceNow native + enterprise integrations). The 4 meta-tools themselves have reasonable descriptions and schemas, but they are WRAPPER tools that delegate to dynamically discovered tools. The quality assessment is therefore constrained by what can be verified in static code: the 4 wrapper tool definitions score well (avg ~65), but the underlying 400+ ServiceNow tools and 76+ enterprise tools are NOT visible in the source code provided. The server relies on runtime discovery via tool_search and enterprise_tool_search, which return tool schemas dynamically. This is a valid pattern but creates an audit gap, the actual tool definitions (ServiceNow's snow_* tools, Jira tools, etc.) cannot be scored because they are not present in the source. The server's value lies in its orchestration layer, not in definitional quality of individual domain tools.
Execute an enterprise tool by name. Use enterprise_tool_search first to discover available tools. After searching, tools are enabled and can also be called directly by name without this wrapper.
Search through 76+ enterprise integration tools (Jira, Azure DevOps, Confluence, GitHub, GitLab, Process Mining). Returns matching tools with their full schemas. Found tools are automatically enabled for the session so you can call them directly. Always search before using an enterprise tool for the first time.
Execute an enabled ServiceNow tool by name. Use tool_search first to discover and enable tools.
Search and enable ServiceNow tools. Use to discover available tools and enable them for direct calling.
Tool definitions not visible in source code. The server implements a dynamic discovery pattern where underlying ServiceNow and enterprise tools are loaded at runtime, not statically defined in the source. The actual 400+ snow_* tool schemas and 76+ enterprise tool schemas are not auditable from the provided source.
Wrapper tools (tool_search, tool_execute, enterprise_tool_search, enterprise_tool_execute) use 'additionalProperties: true' in the args schema. This allows arbitrary, unvalidated parameters to be passed to discovered tools. The wrapper itself lacks visibility into what parameters are valid for each discovered tool until runtime. This creates a validation blind spot.
No explicit error handling or recovery guidance in tool descriptions. The descriptions state WHAT the tools do but do not guide the LLM on failure modes (e.g., what to do if a tool name is invalid, if discovery returns no results, or if execution fails). No 'retryable', 'user-fixable', or 'fatal' classification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
The 'args' parameter in tool_execute and enterprise_tool_execute is documented only as 'Arguments to pass to the tool. See the tool schema from *_search results.' This is a forward reference that requires the LLM to have already called the search tool and retained the schema in context. No inline schema validation or examples are provided. This increases the risk of malformed arguments.
No description documents the response format (what fields are returned by tool_search, tool_execute, enterprise_tool_search, enterprise_tool_execute). LLMs need to know what data to expect to plan downstream actions. The server loads tool schemas dynamically, but the wrapper tools themselves do not document their output schema.