The most comprehensive ServiceNow AI toolkit, including a full ServiceNow MCP server: 500+ MCP tools plus 26 AI capabilities (scan, review, build, ops, docs) and a direct BYOK mode. Works with Claude, ChatGPT, Gemini, Cursor, GitHub Copilot and any LLM.
NowAIKit provides 19 tools with complete naming following verb_noun conventions (search_, query_, get_, create_, update_, delete_, list_). Descriptions are present for all tools and average ~150 chars, which is within the 10-1024 char baseline. However, critical gaps exist: (1) Most parameter descriptions are minimal (10-40 chars) and lack constraint details like ranges, enums, or format specifications. Example: query_records 'limit' param states 'Max records (default: 10, max: 1000)' but no description of what happens if omitted. (2) Output schemas are undocumented, no tool specifies what fields are returned or structure of responses. (3) Error handling is not visible in the tool definitions. (4) security-critical tools like create_record, update_record, delete_record expose dry_run as a parameter but lack comprehensive permission documentation. (5) Tool natural_language_search (#19) has NO input schema visible in the provided code. (6) Several tools like get_user and get_group accept 'identifier' params that could be ID or name, but do not clarify resolution order or fallback behavior. Tools are well-named and descriptions exist, but parameter rigor and output documentation are below production baseline.
Get CMDB data quality metrics (completeness of server and network CI data)
Create a new record in any ServiceNow table (requires WRITE_ENABLED=true). Pass dry_run=true to preview the resolved payload without writing.
Delete a record from any ServiceNow table (requires WRITE_ENABLED=true). Pass dry_run=true to preview the record that would be deleted without deleting it.
Get complete information about a specific configuration item
Find assignment group details by name or sys_id
Retrieve complete details of a specific record by sys_id
natural_language_search tool has no input schema visible in source code. Tool definition is inferred only from ToolBrowser.tsx categorization, not from explicit tool registration.
Output schemas are completely undocumented across all 19 tools. No tool specifies what fields are returned, response structure, or pagination metadata.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 58 | - | v1 |
Get the structure and field information for a ServiceNow table
Look up user details by email or username
Monitor critical infrastructure events
List discovery schedules and their run status
List MID servers and verify they are healthy
Show parent and child relationships for a CI
Search ServiceNow using plain English
Query ServiceNow records with filtering, field selection, pagination, and sorting
Search for configuration items (CIs) in the CMDB
Search the full NowAIKit tool catalog (500+ tools) by keyword to discover the right tool without loading every definition. Returns matching tool names + descriptions ranked by relevance. Use this FIRST when you are unsure which tool to call. Especially useful with MCP_TOOL_DISCOVERY=lean, which exposes only a small core set plus this search.
View service dependencies and related CIs for impact analysis
Update an existing record in any ServiceNow table (requires WRITE_ENABLED=true). Pass dry_run=true to preview a before→after field diff without writing.
Lint-check a ServiceNow encoded query BEFORE running it: validates javascript: expressions against the safe function allowlist, length limits, and common mistakes (e.g. using = instead of ^, raw spaces). Returns { valid, issues, suggestions }.
Parameter descriptions lack constraint details. Example: query_records 'limit' param is 'Max records (default: 10, max: 1000)' but lacks description of what value is used when omitted. The 'fields' param describes format as 'Comma-separated' but does not clarify if empty string is valid or required.
Identifier parameters (get_user 'user_identifier', get_group 'group_identifier') accept both email/name AND sys_id but do not document resolution order, fallback behavior, or what happens if multiple matches exist.
Destructive tools (delete_record, update_record, create_record) expose dry_run parameter to preview changes, but no error handling documentation is visible.
cmdb_health_dashboard tool accepts NO input parameters (empty object {}), but description does not explain what scope or context it applies to. Does it return health for the entire CMDB or a specific subset? This is ambiguous.
create_record and update_record accept 'fields' as free-form object with no schema validation visible. LLMs cannot infer which fields are required, optional, or type-safe.
Tool composition issue: search_tools returns matching tool names + descriptions, but no indication of whether those tools are actually callable by the agent or require additional setup. If MCP_TOOL_DISCOVERY=lean hides some tools, search_tools should clarify whether results include hidden tools.