servicenow-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WRITE_ENABLED | No | Enable write operations (create/update) across ITSM, HRSD, CSM, Agile, etc. Set to 'true' to allow. | false |
| MCP_TOOL_PACKAGE | No | Role-based tool package to expose. Options: 'full', 'service_desk', 'change_coordinator', 'knowledge_author', 'catalog_builder', 'system_administrator', 'platform_developer', 'portal_developer', 'integration_engineer', 'itom_engineer', 'agile_manager', 'ai_developer'. Defaults to 'full'. | full |
| SCRIPTING_ENABLED | No | Enable scripting operations (business rules, script includes, changesets, etc.). Set to 'true' to allow. | false |
| CMDB_WRITE_ENABLED | No | Enable CMDB write operations (CI create/update). Set to 'true' to allow. | false |
| NOW_ASSIST_ENABLED | No | Enable Now Assist operations (AI Agentic Playbooks, NLQ, AI Search). Set to 'true' to allow. | false |
| SN_INSTANCES_CONFIG | No | Path to a JSON file containing configuration for multiple ServiceNow instances (e.g., /path/to/instances.json). Use this for multi-instance setup instead of single-instance environment variables. | |
| SERVICENOW_AUTH_METHOD | No | Authentication method: 'basic' for Basic Auth or 'oauth2' for OAuth 2.0. Defaults to 'basic'. | basic |
| SERVICENOW_INSTANCE_URL | No | The URL of your ServiceNow instance (e.g., https://yourinstance.service-now.com). Required for single-instance setup. | |
| SERVICENOW_BASIC_PASSWORD | No | Password for Basic Auth. Required if SERVICENOW_AUTH_METHOD is 'basic'. | |
| SERVICENOW_BASIC_USERNAME | No | Username for Basic Auth (e.g., admin). Required if SERVICENOW_AUTH_METHOD is 'basic'. | |
| SERVICENOW_OAUTH_CLIENT_ID | No | Client ID for OAuth 2.0. Required if SERVICENOW_AUTH_METHOD is 'oauth2'. | |
| SERVICENOW_OAUTH_TOKEN_URL | No | Token URL for OAuth 2.0 (e.g., https://yourinstance.service-now.com/oauth_token.do). Required if SERVICENOW_AUTH_METHOD is 'oauth2'. | |
| SERVICENOW_OAUTH_CLIENT_SECRET | No | Client secret for OAuth 2.0. Required if SERVICENOW_AUTH_METHOD is 'oauth2'. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_toolsA | 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. |
| query_recordsA | Query ServiceNow records with filtering, field selection, pagination, and sorting |
| get_table_schemaB | Get the structure and field information for a ServiceNow table |
| get_mandatory_fieldsA | List the fields that ServiceNow Data Policies make mandatory on a table (and when they apply). Call this before creating or updating a record so you can collect the required fields up front and avoid a "Data Policy Exception: the following fields are mandatory" error. |
| get_recordB | Retrieve complete details of a specific record by sys_id |
| create_recordA | Create a new record in any ServiceNow table (requires WRITE_ENABLED=true). Pass dry_run=true to preview the resolved payload without writing. |
| update_recordA | 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. |
| delete_recordA | 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. |
| validate_queryA | 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 }. |
| get_userA | Look up user details by email or username |
| get_groupA | Find assignment group details by name or sys_id |
| search_cmdb_ciC | Search for configuration items (CIs) in the CMDB |
| get_cmdb_ciB | Get complete information about a specific configuration item |
| list_relationshipsB | Show parent and child relationships for a CI |
| list_discovery_schedulesA | List discovery schedules and their run status |
| list_mid_serversA | List MID servers and verify they are healthy |
| list_active_eventsC | Monitor critical infrastructure events |
| cmdb_health_dashboardA | Get CMDB data quality metrics (completeness of server and network CI data) |
| service_mapping_summaryA | View service dependencies and related CIs for impact analysis |
| natural_language_searchC | Search ServiceNow using plain English |
| natural_language_updateB | Update a record using natural language (requires WRITE_ENABLED=true) |
| list_instancesA | List all configured ServiceNow instances (multi-instance / multi-customer support) |
| switch_instanceA | Switch the active ServiceNow instance for this session |
| get_current_instanceA | Get the currently active ServiceNow instance name and URL |
| create_ci_relationshipA | [Write] Create a relationship between two CMDB Configuration Items |
| cmdb_impact_analysisA | Analyze the downstream impact of a Configuration Item change or outage |
| run_discovery_scanB | [Write] Trigger a ServiceNow Discovery scan for network/infrastructure |
| bulk_create_recordsA | Create many records in one table in a single call, tracking every created sys_id and returning a rollback_token. With rollback_on_error=true, a mid-way failure deletes everything already created so the batch is all-or-nothing. Supports dry_run. Requires WRITE_ENABLED=true. |
| rollback_changesA | Delete a set of previously-created records, e.g. the rollback_token returned by bulk_create_records. Requires WRITE_ENABLED=true. |
| compare_instancesA | Compare two configured ServiceNow instances: record counts for a table (with optional query) and/or a specific system property value. Useful for dev→prod drift detection and governance. |
| create_incidentA | Create a new incident record (requires WRITE_ENABLED=true) |
| get_incidentA | Get full details of an incident by number (e.g. INC0012345) or sys_id |
| update_incidentA | Update fields on an existing incident (requires WRITE_ENABLED=true) |
| resolve_incidentB | Resolve an incident with resolution code and notes (requires WRITE_ENABLED=true) |
| close_incidentA | Close a resolved incident (requires WRITE_ENABLED=true) |
| add_work_noteA | Add an internal work note to any ITSM record (requires WRITE_ENABLED=true) |
| add_commentA | Add a customer-visible comment to any ITSM record (requires WRITE_ENABLED=true) |
| create_problemA | Create a new problem record (requires WRITE_ENABLED=true) |
| get_problemA | Get full details of a problem by number (PRB...) or sys_id |
| update_problemA | Update fields on an existing problem (requires WRITE_ENABLED=true) |
| resolve_problemA | Resolve a problem with root cause and resolution notes (requires WRITE_ENABLED=true) |
| create_change_requestA | Create a new change request (requires WRITE_ENABLED=true) |
| get_change_requestA | Get full details of a change request by number (CHG...) or sys_id |
| update_change_requestA | Update fields on a change request (requires WRITE_ENABLED=true) |
| list_change_requestsA | List change requests with optional filtering by state or query |
| submit_change_for_approvalA | Move a change request to "Requested" state for approval (requires WRITE_ENABLED=true) |
| close_change_requestA | Close a change request with close code and notes (requires WRITE_ENABLED=true) |
| schedule_cab_meetingC | [Write] Schedule a Change Advisory Board (CAB) meeting |
| get_taskA | Get details of any task record by number or sys_id |
| update_taskA | Update fields on a task record (requires WRITE_ENABLED=true) |
| list_my_tasksA | List tasks assigned to the currently configured user |
| complete_taskA | Mark a task as complete (requires WRITE_ENABLED=true) |
| list_knowledge_basesA | List all knowledge bases available in the instance |
| search_knowledgeB | Search knowledge base articles by keyword |
| get_knowledge_articleA | Get the full content of a knowledge article by number (KB...) or sys_id |
| create_knowledge_articleB | Create a new knowledge article (requires WRITE_ENABLED=true) |
| update_knowledge_articleA | Update a knowledge article (requires WRITE_ENABLED=true) |
| publish_knowledge_articleA | Publish a draft knowledge article (requires WRITE_ENABLED=true) |
| retire_knowledge_articleA | [Write] Retire a knowledge article (mark as outdated) |
| list_catalog_itemsB | List available service catalog items |
| search_catalogA | Search the service catalog for items matching a keyword |
| get_catalog_itemA | Get full details of a catalog item including its variables |
| create_catalog_itemA | Create a new service catalog item (requires WRITE_ENABLED=true) |
| update_catalog_itemA | Update an existing catalog item (requires WRITE_ENABLED=true) |
| order_catalog_itemA | Order a service catalog item (requires WRITE_ENABLED=true) |
| create_approval_ruleA | Create an approval rule that automatically generates approval requests when a record matches given conditions (requires WRITE_ENABLED=true). Uses the sysapproval_rule table. |
| get_my_approvalsA | List approvals pending for the currently configured user |
| list_approvalsB | List approval requests with optional filters |
| approve_requestA | Approve a pending approval request (requires WRITE_ENABLED=true) |
| reject_requestA | Reject a pending approval request (requires WRITE_ENABLED=true) |
| get_sla_detailsA | Get SLA breach status for a specific task or incident |
| list_active_slasB | List active SLA records with optional filters |
| create_catalog_variableA | [Write] Add a form variable to a service catalog item |
| create_catalog_ui_policyA | [Write] Create a UI policy for a catalog item form |
| list_usersB | List users with optional search filter |
| create_userA | Create a new user account (requires WRITE_ENABLED=true) |
| update_userA | Update a user account (requires WRITE_ENABLED=true) |
| list_groupsA | List groups with optional search filter |
| create_groupA | Create a new assignment group (requires WRITE_ENABLED=true) |
| update_groupA | Update a group (requires WRITE_ENABLED=true) |
| add_user_to_groupA | Add a user to a group (requires WRITE_ENABLED=true) |
| remove_user_from_groupA | Remove a user from a group (requires WRITE_ENABLED=true) |
| list_reportsA | List saved reports in the instance (latest release: /api/now/reporting) |
| get_reportA | Get the definition and metadata of a saved report |
| run_aggregate_queryC | Run a grouped aggregate (COUNT, SUM, AVG) query on any table (latest release: /api/now/stats/{table}) |
| trend_queryA | Get time-bucketed trend data for a table (useful for monthly/weekly trend charts) |
| get_performance_analyticsA | Read Performance Analytics scorecard/indicator data (requires PA plugin; GET /api/now/pa/scorecards). Pass an indicator sys_id, or a PA widget sys_id to resolve its indicator. |
| export_report_dataA | Export raw table data as structured JSON for use in external reports |
| get_sys_logA | Retrieve system log entries for debugging or auditing. Set app_scope=true to read the scoped-application log (syslog_app_scope), where scoped gs.info()/gs.log() output lands, instead of the global syslog. |
| list_scheduled_jobsA | List scheduled jobs and their run schedules |
| get_scheduled_jobA | Get full details of a scheduled job by sys_id or name |
| create_scheduled_jobA | Create a new scheduled script execution job (requires WRITE_ENABLED=true) |
| update_scheduled_jobA | Update a scheduled job (requires WRITE_ENABLED=true) |
| trigger_scheduled_jobA | Immediately execute a scheduled job on-demand (requires WRITE_ENABLED=true) |
| create_reportA | Create a new saved report on any table (requires WRITE_ENABLED=true) |
| update_reportA | Update an existing saved report definition (requires WRITE_ENABLED=true) |
| list_job_run_historyA | List recent run history for scheduled jobs (success/failure log) |
| create_scheduled_reportB | [Write] Schedule a report for recurring email delivery |
| create_kpiC | [Write] Create a Key Performance Indicator from ServiceNow data |
| generate_reportA | Generate a branded PDF or PPTX report from capability analysis results. Call this after completing a scan, review, or audit to create a management-ready document with charts, tables, and ServiceNow links. Supports single capability (content) or multiple capabilities (sections) in one combined report. |
| list_atf_suitesA | List ATF test suites in the instance |
| get_atf_suiteA | Get details of a test suite including test count |
| run_atf_suiteA | Execute an ATF test suite (requires ATF_ENABLED=true) |
| list_atf_testsA | List ATF test cases, optionally filtered by suite |
| get_atf_testB | Get details of a specific test case |
| run_atf_testA | Execute a single ATF test (requires ATF_ENABLED=true) |
| get_atf_suite_resultB | Get the results of a test suite run |
| list_atf_test_resultsA | List individual test results within a suite run |
| get_atf_failure_insightA | Get ATF Failure Insight data — metadata changes between last successful and failed run (role changes, field value changes) |
| nlq_queryB | Ask a natural language question and get structured ServiceNow data (ServiceNow NLQ API) |
| ai_searchA | Semantic AI-powered search across KB, catalog, incidents (ServiceNow AI Search) |
| categorize_incidentA | Suggest category, assignment group, and priority for an incident by analysing similar resolved incidents (Table API). Predictive Intelligence has no public REST prediction endpoint; for model-based scoring run PI on-record and read the predicted field. |
| get_virtual_agent_topicsB | List Virtual Agent topics available in the instance (sys_cs_topic) |
| get_ms_copilot_topicsA | List the Virtual Agent topics (sys_cs_topic) that back a Microsoft Copilot integration. Copilot topic mapping itself is configured in Copilot Studio on the Microsoft side, not exposed via ServiceNow REST. |
| get_pi_modelsA | List available Predictive Intelligence solutions (classification/similarity models) |
| list_business_rulesA | List business rules (requires SCRIPTING_ENABLED=true) |
| get_business_ruleA | Get full details and script body of a business rule (requires SCRIPTING_ENABLED=true) |
| create_business_ruleA | Create a new business rule (requires SCRIPTING_ENABLED=true). ServiceNow supports ES2021 async/await in scripts. |
| update_business_ruleA | Update a business rule (requires SCRIPTING_ENABLED=true) |
| list_script_includesA | List script includes (requires SCRIPTING_ENABLED=true) |
| get_script_includeA | Get full script body of a script include (requires SCRIPTING_ENABLED=true) |
| create_script_includeA | Create a new script include (requires SCRIPTING_ENABLED=true) |
| update_script_includeA | Update a script include (requires SCRIPTING_ENABLED=true) |
| list_client_scriptsB | List client scripts (requires SCRIPTING_ENABLED=true) |
| get_client_scriptA | Get full details and script body of a client script (requires SCRIPTING_ENABLED=true) |
| list_changesetsB | List update sets (changesets) (requires SCRIPTING_ENABLED=true) |
| get_changesetA | Get details of an update set (requires SCRIPTING_ENABLED=true) |
| commit_changesetC | Commit an update set (requires SCRIPTING_ENABLED=true) |
| publish_changesetA | Publish/export an update set to XML for deployment (requires SCRIPTING_ENABLED=true) |
| create_client_scriptA | Create a new client script (onLoad, onChange, onSubmit, onCellEdit) (requires SCRIPTING_ENABLED=true) |
| update_client_scriptA | Update an existing client script (requires SCRIPTING_ENABLED=true) |
| list_ui_policiesA | List UI Policies for a table (field visibility, mandatory, read-only rules) (requires SCRIPTING_ENABLED=true) |
| get_ui_policyA | Get full details and conditions of a UI Policy (requires SCRIPTING_ENABLED=true) |
| create_ui_policyA | Create a new UI Policy to control field behavior dynamically (requires SCRIPTING_ENABLED=true) |
| list_ui_actionsA | List UI Actions (buttons, context menus, related links) for a table (requires SCRIPTING_ENABLED=true) |
| get_ui_actionA | Get full details and script of a UI Action (requires SCRIPTING_ENABLED=true) |
| create_ui_actionA | Create a new UI Action (button or link) on a form (requires SCRIPTING_ENABLED=true) |
| update_ui_actionA | Update an existing UI Action (requires SCRIPTING_ENABLED=true) |
| list_aclsA | List Access Control rules (ACLs) — who can read/write/create/delete records (requires SCRIPTING_ENABLED=true) |
| get_aclA | Get full details of an ACL rule including its script and role requirements (requires SCRIPTING_ENABLED=true) |
| create_aclA | Create a new ACL rule to control access to a table or field (requires SCRIPTING_ENABLED=true) |
| update_aclA | Update an existing ACL rule (requires SCRIPTING_ENABLED=true) |
| create_storyA | Create a new agile story/user story (requires WRITE_ENABLED=true) |
| update_storyB | Update an agile story (requires WRITE_ENABLED=true) |
| list_storiesA | List agile stories with optional sprint or state filter |
| create_epicA | Create a new epic (requires WRITE_ENABLED=true) |
| update_epicA | Update an epic (requires WRITE_ENABLED=true) |
| list_epicsA | List epics with optional project or state filter |
| create_scrum_taskA | Create a scrum task (sub-task of a story) (requires WRITE_ENABLED=true) |
| update_scrum_taskA | Update a scrum task (requires WRITE_ENABLED=true) |
| list_scrum_tasksB | List scrum tasks, optionally filtered by story |
| create_story_dependencyA | Link one agile story as dependent on another (m2m_story_dependencies). Requires WRITE_ENABLED=true. |
| list_story_dependenciesA | List dependency links for a story (m2m_story_dependencies). |
| delete_story_dependencyA | Remove a story dependency link by its m2m_story_dependencies sys_id. Requires WRITE_ENABLED=true. |
| create_projectA | Create a SPM project (pm_project). Requires WRITE_ENABLED=true. |
| update_projectA | Update a SPM project (pm_project). Requires WRITE_ENABLED=true. |
| list_projectsB | List SPM projects (pm_project). |
| create_hr_caseA | Create a new HR Service Delivery case (requires WRITE_ENABLED=true) |
| get_hr_caseA | Get full details of an HR case by number (e.g. HRCS0001234) or sys_id |
| update_hr_caseA | Update fields on an existing HR case (requires WRITE_ENABLED=true) |
| list_hr_casesA | List HR cases with optional filters (status, subject person, service) |
| close_hr_caseA | Close an HR case with resolution notes (requires WRITE_ENABLED=true) |
| list_hr_servicesB | List available HR services (Onboarding, Offboarding, Benefits, Payroll, etc.) |
| get_hr_serviceA | Get details of a specific HR service including its tasks and SLAs |
| get_hr_profileA | Get the HR profile for a user (employment details, department, manager) |
| update_hr_profileA | Update HR profile fields for a user (requires WRITE_ENABLED=true) |
| list_hr_tasksA | List HR tasks associated with an HR case |
| create_hr_taskA | Create a task within an HR case (requires WRITE_ENABLED=true) |
| get_hr_case_activityA | Get the full activity log and journal entries for an HR case |
| create_onboarding_caseA | Create an employee onboarding case with all standard tasks. [Write] |
| create_offboarding_caseB | Create an employee offboarding case with exit tasks. [Write] |
| get_hr_lifecycle_eventsA | Get HR lifecycle events for an employee (promotions, transfers, leaves) |
| list_hr_document_templatesA | List available HR document templates (offer letters, contracts, policies) |
| create_csm_caseA | Create a new Customer Service case (requires WRITE_ENABLED=true) |
| get_csm_caseA | Get full details of a CSM case by number (e.g. CS0001234) or sys_id |
| update_csm_caseA | Update fields on an existing CSM case (requires WRITE_ENABLED=true) |
| list_csm_casesB | List CSM cases with optional filters (account, contact, state, priority) |
| close_csm_caseA | Close a CSM case with resolution details (requires WRITE_ENABLED=true) |
| get_csm_accountA | Get details of a customer account including contacts and open cases count |
| list_csm_accountsC | List customer accounts with optional search filter |
| get_csm_contactA | Get details of a customer contact (name, account, phone, email) |
| list_csm_contactsA | List contacts for an account or search across all contacts |
| get_csm_case_slaA | Get SLA details and remaining time for a CSM case |
| list_csm_productsB | List products and services available in the CSM catalog |
| create_security_incidentB | Create a Security Operations incident (requires WRITE_ENABLED=true) |
| get_security_incidentA | Get full details of a security incident by number or sys_id |
| update_security_incidentA | Update a security incident record (requires WRITE_ENABLED=true) |
| list_security_incidentsA | List security incidents with filters (severity, state, category) |
| list_vulnerabilitiesB | List vulnerability entries from the Vulnerability Response module |
| get_vulnerabilityA | Get details of a specific vulnerability entry including CVSS score and affected CIs |
| update_vulnerabilityA | Update a vulnerability entry (state, risk acceptance notes, remediation date) (requires WRITE_ENABLED=true) |
| list_grc_risksA | List GRC (Governance, Risk, Compliance) risk entries |
| get_grc_riskA | Get details of a GRC risk including impact, likelihood, and controls |
| list_grc_controlsB | List GRC controls with optional filter by risk or policy |
| get_threat_intelligenceA | Query threat intelligence data — IOCs, threat actors, and campaigns |
| list_security_playbooksB | List available security response playbooks |
| run_security_playbookB | Execute a security response playbook against an incident. [Write] |
| get_security_dashboardA | Get security posture dashboard — open incidents by severity, vulnerability counts, mean time to resolve |
| scan_vulnerabilitiesA | Trigger a vulnerability scan for specified CIs or groups. [Write] |
| create_grc_riskA | Create a new GRC risk entry. [Write] |
| list_compliance_policiesA | List GRC compliance policies and their current status |
| get_compliance_assessmentB | Get compliance assessment results for a policy or control |
| list_audit_resultsB | List audit results and findings |
| list_flowsA | List Flow Designer flows with optional filter by name, category, or active status |
| get_flowA | Get full details of a Flow Designer flow including its actions and trigger |
| trigger_flowA | Trigger a Flow Designer flow with optional input parameters (requires WRITE_ENABLED=true) |
| get_flow_executionA | Get the status and details of a specific flow execution |
| list_flow_executionsB | List recent executions of a flow with status (completed, error, running) |
| list_subflowsA | List available subflows that can be reused across flows |
| get_subflowA | Get full details of a subflow including its inputs, outputs, and actions |
| list_action_instancesA | List Flow Designer action instances. Pass flow_id to scope to a single flow's steps (recommended); otherwise lists across the environment. |
| get_process_automationA | Get details of a Process Automation Designer playbook or process |
| list_process_automationsB | List Process Automation Designer playbooks and processes |
| create_flowB | Create a new Flow Designer flow. [Write] |
| create_subflowB | Create a new reusable subflow. [Write] |
| create_flow_actionA | Create a custom Flow Designer action. [Scripting] |
| publish_flowA | Publish (activate) a draft flow or subflow. [Write] |
| update_flowA | Update a flow or subflow's METADATA only (activate/deactivate, name, description, run-as). [Write] NOTE: this cannot safely insert or edit flow STEPS. Flow Designer executes a compiled snapshot, and writing action-instance rows over REST does not recompile the flow, which would desync/corrupt it. Edit steps in the Flow Designer UI. |
| test_flowC | Execute a flow in test mode with sample inputs. [Write] |
| get_flow_error_logA | Get detailed error logs for failed flow executions |
| list_decision_tablesA | List Decision Builder decision tables (sys_decision), optionally filtered by name or active status |
| get_decision_tableA | Get a decision table with its inputs and answer rows, by name or sys_id |
| list_decision_inputsB | List the inputs of a decision table |
| list_decision_answersB | List the answer/result rows of a decision table |
| create_decision_tableB | Create a Decision Builder decision table (sys_decision). Requires WRITE_ENABLED=true |
| create_decision_inputA | Add an input to a decision table (sys_decision_input). Requires WRITE_ENABLED=true |
| publish_decision_tableA | Publish a Decision Builder decision table — sets sys_decision.status to "published". Requires WRITE_ENABLED=true |
| list_portfoliosB | List Strategic Portfolio Management portfolios (pm_portfolio). SPM is the evolution of PPM. |
| get_portfolioB | Get a portfolio (pm_portfolio) by sys_id, with the projects linked to it. |
| list_programsC | List SPM programs (pm_program). |
| list_demandsB | List SPM demands (dmn_demand) — the intake pipeline that feeds projects. |
| create_demandA | Create an SPM demand (dmn_demand). Requires WRITE_ENABLED=true. |
| list_goalsB | List SPM goals (sn_gf_goal) — the strategic goals portfolios and programs align to. |
| list_project_tasksA | List project tasks (pm_project_task), optionally scoped to a parent project. |
| investigate_incidentA | One-call incident investigation. Returns the incident, similar recent incidents, the affected CI with its relationships, and related knowledge articles, so the assistant does not have to chain several queries. Read-only. |
| change_readinessA | One-call change readiness check. Returns the change request, its conflict status, approval state, affected CIs, and other active changes that overlap the same CI. Read-only. |
| service_healthA | One-call service health snapshot. Returns a business service or CI, its open incidents, related CIs, and recent changes. Read-only. |
| list_sla_definitionsA | List SLA/OLA definitions (contract_sla), optionally filtered by name, table, or active status |
| create_sla_definitionA | Create an SLA/OLA definition (contract_sla). Requires WRITE_ENABLED=true |
| update_sla_definitionA | Update an SLA/OLA definition (contract_sla). Requires WRITE_ENABLED=true |
| get_task_slaA | Get live SLA instances (task_sla) for a task — percent complete, breach status, stage, planned end |
| list_breached_slasA | List SLA instances that have breached or are at risk within a window (task_sla) |
| get_on_call_nowA | Find who is on call for a group right now. Returns the current roster members for the group's rotations |
| list_rotasA | List on-call rotations (cmn_rota), optionally filtered by group or name |
| create_rota_scheduleB | Create an on-call rotation (cmn_rota) for a group. Requires WRITE_ENABLED=true |
| add_roster_memberA | Add a member to an on-call roster (cmn_rota_member). Requires WRITE_ENABLED=true |
| create_on_call_overrideA | Create an on-call coverage override for a date range (cmn_rota_override). Requires WRITE_ENABLED=true |
| get_request_itemA | Get a requested item (RITM) with its variables, by number or sys_id |
| update_request_itemA | Update the state/stage or fields of a requested item (sc_req_item). Requires WRITE_ENABLED=true |
| list_catalog_tasksC | List catalog fulfillment tasks (SCTASK), optionally by request item, assignment group, or state |
| complete_catalog_taskA | Close a catalog fulfillment task (sc_task) as complete. Requires WRITE_ENABLED=true |
| list_catalog_categoriesA | List catalog categories (sc_category), optionally filtered by catalog or title |
| create_catalog_categoryA | Create a catalog category (sc_category). Requires WRITE_ENABLED=true |
| create_user_criteriaB | Create a user criteria record (user_criteria) for catalog entitlement/audience. Requires WRITE_ENABLED=true |
| assign_user_criteriaA | Attach a user criteria to a catalog item as available-for (sc_cat_item_user_criteria_mtom). Requires WRITE_ENABLED=true |
| list_user_rolesA | List roles granted to a user (sys_user_has_role), including inherited flag |
| grant_roleC | Grant a role to a user (sys_user_has_role). Requires WRITE_ENABLED=true |
| revoke_roleC | Revoke a directly-granted role from a user. Requires WRITE_ENABLED=true |
| create_roleA | Create a new role (sys_user_role). Requires WRITE_ENABLED=true |
| deactivate_userB | Deactivate (offboard) a user by setting active=false. Requires WRITE_ENABLED=true |
| create_delegationA | Create an approval/coverage delegation (sys_user_delegate). Requires WRITE_ENABLED=true |
| list_group_membersB | List the members of a group (sys_user_grmember) |
| get_user_entitlementsA | Summarize what a user can access: their roles, groups, and active status |
| create_surveyA | Create a survey/assessment definition (asmt_metric_type). Requires WRITE_ENABLED=true |
| send_surveyB | Issue a survey/assessment instance to a user (asmt_assessment_instance). Requires WRITE_ENABLED=true |
| get_survey_resultsA | Get responses/scores for a survey instance or definition (asmt_assessment_instance_question) |
| list_assessmentsA | List survey/assessment instances (asmt_assessment_instance) by state or user |
| list_grc_issuesA | List GRC issues/findings (sn_grc_issue), optionally by state or owner |
| create_grc_issueA | Raise a GRC issue/finding (sn_grc_issue). Requires WRITE_ENABLED=true |
| create_grc_controlB | Author a compliance control (sn_compliance_control). Requires WRITE_ENABLED=true |
| run_control_testB | Create/attest a control test (sn_compliance_control_test). Requires WRITE_ENABLED=true |
| create_business_serviceC | Create a business service (cmdb_ci_service). Requires WRITE_ENABLED=true |
| create_service_offeringA | Create a service offering under a business service (service_offering). Requires WRITE_ENABLED=true |
| list_service_offeringsB | List service offerings (service_offering), optionally by parent business service |
| list_scan_suitesB | List Instance Scan suites (scan_suite) available to run |
| get_instance_scan_findingsA | List Instance Scan findings (scan_finding) — best-practice violations, optionally by check or suite result |
| get_ecc_queueA | Inspect the ECC queue (ecc_queue) — MID server probes/sensors, by state, agent, or topic |
| resubmit_ecc_probeC | Re-queue an ECC probe/sensor by setting its state back to ready (ecc_queue). Requires WRITE_ENABLED=true |
| run_fix_scriptA | Execute a fix script (sys_script_fix) by name or sys_id on the server. Requires WRITE_ENABLED=true and SCRIPTING_ENABLED=true |
| list_ai_agent_executionsA | List recent Now Assist AI Agent execution plans (sn_aia_execution_plan) |
| get_ai_agent_executionA | Get an AI Agent execution plan with its steps/tool calls (sn_aia_execution_plan + _step) |
| list_agent_use_casesA | List AI Agent Studio use cases (sn_aia_usecase) and their configuration |
| list_application_servicesA | List discovered application services (cmdb_ci_service_auto), optionally by name or operational status. Parity with ServiceNow get_all_application_service_names |
| cmdb_services_for_ciB | Reverse lookup: which application services contain a given CI/server (svc_ci_assoc). Parity with ServiceNow get_all_application_services_for_a_server |
| cmdb_find_unmapped_cisA | Find operational CIs that have relationships but belong to no application service (mapping gaps). Parity with ServiceNow get_unmapped_topology |
| suggest_ci_classA | Suggest the correct CMDB CI class for a keyword before creating a CI (cmdb_class_info). Parity with ServiceNow Get_SimilarCI_Classes |
| get_quoteB | Get a CPQ/sales quote record by number or sys_id (tries known quote tables) |
| list_quotesA | List CPQ/sales quotes with optional filters (state, account) |
| get_approval_historyB | Get the approval progression/history for any record (sysapproval_approver rows, ordered) |
| preview_approval_routingB | Preview the planned approver path for a record before/after submission (existing sysapproval_approver rows + matching approval rules) |
| add_adhoc_approverA | Add an ad-hoc approver to an in-flight approval on a record (inserts a sysapproval_approver row). Requires WRITE_ENABLED=true |
| recall_approval_requestA | Recall/withdraw approval requests on a record by cancelling pending approver rows (state → cancelled/no_longer_required). Requires WRITE_ENABLED=true |
| submit_for_approvalA | Submit any record for approval by setting its approval field to "requested" (generic, not just change). Requires WRITE_ENABLED=true |
| list_csm_case_tasksA | List the tasks on a CSM case (sn_customerservice_task). Parity with ServiceNow CSM "Get Case Tasks" |
| advance_hr_caseC | Advance an HR case to its next state/stage (sn_hr_core_case). Parity with ServiceNow HRSD "HR Case Advance". Requires WRITE_ENABLED=true |
| search_hr_knowledgeA | Search HR-scoped knowledge articles (kb_knowledge in HR knowledge bases). Parity with ServiceNow HRSD "HR Knowledge Search" |
| mcp_health_checkA | Health check: confirm the instance is reachable and the configured credentials resolve to a valid user. Parity with ServiceNow MCP "Health Check" |
| summarize_recordA | Summarize a record (incident/case/etc.) using the Now Assist summarization skill when available, otherwise return the assembled record + activity for the caller to summarize. Parity with ServiceNow Quickstart incident/case summarization |
| get_case_sentimentA | Assess customer sentiment on a CSM case via the Now Assist sentiment skill when available, else return the case + customer comments for sentiment analysis. Parity with ServiceNow CSM "Sentiment Analysis" |
| generate_case_activity_responseA | Draft an agent reply for a CSM case activity stream via the Now Assist activity-response skill when available, else return the case context to draft from. Parity with ServiceNow CSM "Activity Response" |
| generate_csm_resolution_notesA | Generate CSM resolution notes via the Now Assist resolution-notes skill when available, else return the case + work notes to summarize. Parity with ServiceNow CSM "Generate Resolution Notes" |
| check_hr_eligibilityA | Check an employee's eligibility for an HR service/policy via the Policy Based HR Case Evaluator skill when available, else return the employee + service context. Parity with ServiceNow HRSD "HR Eligibility Check" |
| list_portalsA | List all Service Portal configurations available in the instance |
| create_portalA | Create a new Service Portal configuration (requires WRITE_ENABLED=true) |
| create_portal_pageA | Create a new page inside a Service Portal (requires WRITE_ENABLED=true) |
| get_portalA | Get full configuration details of a Service Portal by sys_id or URL suffix |
| list_portal_pagesA | List pages that belong to a Service Portal |
| get_portal_pageA | Get details of a specific Service Portal page including its layout |
| list_portal_widgetsB | List Service Portal widgets with optional search by name or category |
| get_portal_widgetA | Get full source code (HTML, CSS, client/server scripts) of a Service Portal widget |
| create_portal_widgetA | Create a new Service Portal widget with template, CSS, and scripts (requires WRITE_ENABLED=true) |
| update_portal_widgetA | Update an existing Service Portal widget's source code (requires WRITE_ENABLED=true) |
| list_widget_instancesA | List instances of a specific widget placed on portal pages |
| list_ux_appsA | List Next Experience (UI Builder) applications |
| get_ux_appA | Get configuration details of a Next Experience application |
| list_ux_pagesB | List pages within a Next Experience (UI Builder) application |
| list_portal_themesB | List Service Portal themes (color palettes, CSS variables) |
| get_portal_themeA | Get full details of a Service Portal theme including CSS variables |
| list_rest_messagesA | List outbound REST Message configurations (integrations with external APIs) |
| get_rest_messageA | Get full configuration of an outbound REST Message including its endpoints |
| list_rest_message_functionsA | List HTTP methods (functions) defined within a REST Message |
| create_rest_messageA | Create a new outbound REST Message definition (requires WRITE_ENABLED=true) |
| list_transform_mapsB | List Transform Maps used for importing data into ServiceNow tables |
| get_transform_mapA | Get details of a Transform Map including its field mappings |
| run_transform_mapA | Execute a Transform Map on an Import Set to load data (requires WRITE_ENABLED=true) |
| list_transform_field_mapsA | List field-level mappings within a Transform Map |
| list_import_setsB | List Import Sets with optional filter by state or staging table |
| get_import_setA | Get details of a specific Import Set including row count and transform status |
| create_import_set_rowA | Insert a row into an Import Set staging table for later transformation (requires WRITE_ENABLED=true) |
| list_data_sourcesA | List Import Set data source definitions (file/JDBC/REST loaders) |
| list_event_registryA | List registered event definitions in the ServiceNow event registry |
| get_event_registry_entryA | Get details of a specific registered event definition |
| register_eventA | Register a new custom event in the event registry (requires SCRIPTING_ENABLED=true) |
| fire_eventA | Fire a custom ServiceNow event for a specific record (requires WRITE_ENABLED=true) |
| list_event_logA | List recent event log entries (fired events and their processing status) |
| list_oauth_applicationsA | List OAuth application registry entries (client applications that can authenticate) |
| list_credential_aliasesA | List connection and credential aliases used by integrations |
| list_notificationsA | List email notification definitions (sysevent_email_action) |
| get_notificationA | Get full details of an email notification definition including template and conditions |
| create_notificationA | Create a new email notification definition (requires WRITE_ENABLED=true) |
| update_notificationA | Update an existing email notification (requires WRITE_ENABLED=true) |
| list_email_logsA | List outbound email log entries to track sent/failed emails |
| get_email_logA | Get full details of an email log entry including body and headers |
| list_attachmentsA | List attachments associated with a specific record |
| get_attachment_metadataA | Get metadata (name, type, size) of a specific attachment by its sys_id |
| read_attachmentA | Read an existing ServiceNow attachment and return its text content, server-side. Works for text formats (txt, csv, json, xml, html, md, log). Binary formats (PDF, DOCX, images) return metadata plus a note. Use this to summarise or draft from a file already in ServiceNow. |
| copy_attachmentA | Copy an existing ServiceNow attachment onto another record, entirely server-side (requires WRITE_ENABLED=true). The file bytes never pass through this tool call. Ideal for "attach the same document from this record onto that KB / incident". |
| delete_attachmentA | Delete an attachment from a record (requires WRITE_ENABLED=true) |
| upload_attachmentA | Attach a file to a ServiceNow record (requires WRITE_ENABLED=true). Provide EITHER source_url (recommended) OR content_base64. source_url has the server fetch the file directly, so large files never pass through this tool call; content_base64 is only reliable for small files (a few hundred KB) and is rejected above ~4MB. |
| list_email_templatesA | List email notification templates used by notifications |
| list_notification_subscriptionsA | List user subscriptions to notifications (who has opted in/out) |
| send_emergency_broadcastB | [Write] Send emergency broadcast notification to users or groups |
| schedule_notificationC | [Write] Schedule a notification for future delivery |
| list_pa_indicatorsA | List Performance Analytics (PA) indicators (KPIs) available in the instance |
| get_pa_indicatorA | Get details of a specific Performance Analytics indicator including its formula |
| get_pa_scorecardA | Get current scorecard data for a PA indicator — returns current value, target, trend direction |
| get_pa_time_seriesA | Get historical time-series data for a PA indicator to identify trends |
| list_pa_breakdownsA | List PA breakdowns (dimensions) available for segmenting indicator data |
| list_pa_dashboardsA | List Performance Analytics dashboards |
| get_pa_dashboardA | Get details of a PA dashboard including its widgets/tabs |
| list_homepagesA | List homepage dashboards (CMS content pages used as homepages) |
| list_pa_jobsA | List Performance Analytics data collection jobs and their schedules |
| get_pa_jobC | Get details of a Performance Analytics collection job |
| create_dashboardA | Create a new Performance Analytics dashboard (requires WRITE_ENABLED=true) |
| update_dashboardA | Update an existing PA dashboard (requires WRITE_ENABLED=true) |
| create_pa_indicatorA | Create a Performance Analytics (PA) indicator / KPI on |
| create_pa_breakdownA | Create a Performance Analytics (PA) breakdown on |
| check_table_completenessA | Analyze data quality and field completeness for a ServiceNow table — returns percentage of non-empty values per field |
| get_table_record_countA | Get total record count for a ServiceNow table with optional filters |
| compare_record_countsB | Compare record counts across multiple ServiceNow tables or time periods — useful for capacity planning |
| get_system_propertyA | Get a ServiceNow system property value and metadata by name |
| set_system_propertyB | Create or update a ServiceNow system property value. [Write] |
| list_system_propertiesC | List system properties with optional filtering |
| delete_system_propertyA | Delete a system property by name. [Write] |
| search_system_propertiesA | Search system properties by name, value, or description |
| bulk_get_propertiesB | Retrieve multiple system property values in a single call |
| bulk_set_propertiesA | Create or update multiple system properties in a single operation. [Write] |
| export_propertiesA | Export system properties matching a query to a JSON object (useful for environment snapshots) |
| import_propertiesA | Import (create or update) system properties from a JSON object. [Write] |
| validate_propertyA | Validate a property value against its declared type constraints without saving |
| list_property_categoriesA | List all unique property categories with their record counts |
| get_property_historyA | Get audit history of changes to a system property |
| get_current_update_setA | Get the currently active Update Set for the session |
| list_update_setsB | List Update Sets by state (in progress, complete, ignore) |
| create_update_setA | Create a new Update Set and optionally switch to it. [Scripting] |
| switch_update_setA | Switch the active Update Set context to a specified Update Set. [Scripting] |
| complete_update_setA | Mark an Update Set as complete (ready for migration). [Scripting] |
| preview_update_setB | Preview all changes contained in an Update Set |
| export_update_setA | Get the XML export payload for an Update Set (as used in migration). [Scripting] |
| ensure_active_update_setA | Ensure an active Update Set exists; create one automatically if none is in progress. [Scripting] |
| create_va_topicC | Create a new Virtual Agent conversation topic. [Write] |
| update_va_topicA | Update a Virtual Agent topic properties. [Write] |
| get_va_topicA | Get Virtual Agent topic details including intent and trigger phrases |
| list_va_topics_fullC | List all Virtual Agent topics with category and status details |
| get_va_conversationA | Get conversation history for a Virtual Agent session |
| list_va_conversationsA | List recent Virtual Agent conversations |
| list_va_categoriesA | List Virtual Agent topic categories |
| list_assetsA | List IT assets with optional filtering by state, class, or assigned user |
| get_assetA | Get full details of an IT asset including financial and lifecycle data |
| create_assetB | Create a new IT asset record. [Write] |
| update_assetC | Update an IT asset record. [Write] |
| retire_assetA | Retire an IT asset (mark as disposed/retired). [Write] |
| list_software_licensesA | List software license records with compliance status |
| get_license_complianceA | Get license compliance summary — purchased vs. installed vs. in use counts |
| list_asset_contractsA | List asset maintenance and support contracts |
| track_asset_lifecycleC | Track asset lifecycle events and stage transitions |
| get_license_optimizationA | Analyze software license usage and recommend optimizations |
| list_devops_pipelinesA | List DevOps pipeline configurations registered in ServiceNow |
| get_devops_pipelineA | Get details of a specific DevOps pipeline |
| list_deploymentsB | List recent application deployments tracked in ServiceNow |
| get_deploymentA | Get details and status of a specific deployment |
| create_devops_changeA | Create a change request linked to a DevOps deployment for change governance. [Write] |
| track_deploymentA | Record a deployment event in ServiceNow for audit and velocity tracking. [Write] |
| get_devops_insightsA | Get deployment frequency, failure rate, and lead time metrics for a pipeline |
| list_scoped_appsA | List scoped applications (custom apps) installed in the instance |
| get_scoped_appA | Get full details of a scoped application by sys_id or scope name |
| create_scoped_appA | Create a new scoped application in App Studio (requires WRITE_ENABLED=true). The scope follows x__, where is the instance's REGISTERED vendor prefix (glide.appcreator.company.code), not an arbitrary value. Leave scope blank to auto-derive it from the instance vendor prefix + app name; if you pass a scope whose vendor segment differs from the instance prefix, it is corrected to the registered one. |
| update_scoped_appA | Update an existing scoped application (requires WRITE_ENABLED=true) |
| ml_predict_change_riskB | Predict the risk level of a change request using historical ML analysis |
| ml_detect_anomaliesA | Run anomaly detection on operational metrics (alert volume, incident trends, etc.) |
| ml_forecast_incidentsA | Forecast incident volume for the next N days based on historical trends |
| ml_train_incident_classifierB | Trigger training of the incident classification ML solution. [Write] |
| ml_train_change_riskA | Trigger training of the change risk prediction ML model. [Write] |
| ml_train_anomaly_detectorB | Trigger training of an anomaly detection model for a specific table/field. [Write] |
| ml_evaluate_modelA | Get accuracy, training status, and metrics for a trained ML solution |
| ml_model_training_historyA | Get training run history and accuracy trends for an ML solution over time |
| ml_virtual_agent_nluA | Analyse Virtual Agent NLU performance — conversation completion rates and fallback metrics |
| ml_process_optimizationA | Identify process bottlenecks using analysis of task durations and reassignment patterns |
| ml_similar_incidentsA | Find similar past incidents using keyword-based matching. Provide either an incident sys_id (to find similar incidents) or a short_description (for free-text matching). Returns resolved incidents ranked by keyword match count. |
| ml_auto_categorizeA | Auto-categorize a record based on its description by analysing resolved records of the same table. Queries the last 500 resolved records, groups by category, and matches input keywords to suggest a category. |
| list_uib_pagesA | List UI Builder pages and their route configurations |
| get_uib_pageA | Get details of a specific UI Builder page including layout and child elements |
| create_uib_pageA | Create a new UI Builder page with route registration. [Write] |
| update_uib_pageC | Update an existing UI Builder page. [Write] |
| delete_uib_pageB | Delete a UI Builder page. [Write] |
| list_uib_componentsA | List available UI Builder components (macroponents) in the instance |
| create_uib_componentB | Create a custom UI Builder component (macroponent). [Scripting] |
| update_uib_componentC | Update a UI Builder component. [Scripting] |
| list_uib_data_brokersA | List UI Builder data brokers (data sources for pages) |
| create_uib_data_brokerB | Create a UI Builder data broker to feed data to a page. [Scripting] |
| list_workspacesB | List all configurable agent workspaces |
| get_workspaceA | Get details of a configurable agent workspace including tabs and lists |
| create_workspaceA | Create a new configurable agent workspace. [Write] |
| configure_workspace_listB | Add or update a list view in an agent workspace. [Write] |
| create_ux_app_routeC | Register a new route (URL path) in a UX app. [Write] |
| create_ux_experienceB | Create a new UX Experience (app shell) configuration. [Write] |
| list_mobile_app_configsB | List ServiceNow mobile app configurations |
| get_mobile_app_configA | Get details of a specific mobile app configuration |
| create_mobile_app_configB | Create a new mobile app configuration. [Write] |
| list_mobile_appletsB | List mobile applets (mini-apps within the mobile experience) |
| create_mobile_appletA | Create a mobile applet in a mobile app. [Write] |
| list_mobile_layoutsC | List mobile layout configurations |
| create_mobile_layoutC | Create a mobile layout for a specific view. [Write] |
| configure_offline_syncA | Configure which tables/records are available offline in mobile. [Write] |
| send_push_notificationC | Send a push notification to mobile app users. [Write] |
| get_mobile_analyticsA | Get mobile app usage analytics — sessions, active users, popular applets |
| find_artifactC | Search for platform artifacts by name, type, or scope (business rules, scripts, widgets, etc.) |
| validate_artifactB | Validate an artifact for best practices, security issues, and performance concerns |
| clone_artifactA | Clone a platform artifact to a new name/scope. [Scripting] |
| validate_deploymentA | Pre-validate an update set or app before deployment — check for conflicts and missing dependencies |
| rollback_deploymentA | Rollback a deployment by reverting an update set. [Write] |
| list_deployment_historyB | List deployment history — committed update sets and app installs over time |
| create_solution_packageB | Create a solution package from selected update sets for distribution. [Write] |
| execute_background_scriptB | Execute a background script on the instance (server-side JavaScript). [Scripting] |
| import_cmdb_dataB | Import CI data into CMDB via import set. [Write] |
| analyze_data_qualityA | Analyse data quality for a table — completeness, duplicates, stale records |
| fluent_queryA | GlideQuery-style fluent query builder. Supports select, where, aggregate (COUNT/AVG/SUM/MIN/MAX), orderBy, limit, and groupBy. Returns records or aggregate results. Example: { table: "incident", where: [["active","=",true],["priority","<",3]], select: ["number","short_description"], limit: 10 } |
| batch_requestA | Execute multiple ServiceNow REST API operations in a single HTTP call. Reduces round-trips by 50-70%. Each operation specifies method, URL path, and optional body. Max 50 operations per batch. |
| execute_scriptA | Execute a server-side script on the ServiceNow instance (Background Script). Supports GlideRecord, GlideQuery, GlideAggregate, and all server-side APIs. Returns the script output. Use for complex queries that cannot be expressed via REST. REQUIRES WRITE_ENABLED=true. |
| fluent_sdk_queryA | Run |
| fluent_versionA | Report the installed |
| fluent_explainA | Run |
| fluent_initB | Initialize a new ServiceNow fluent/now-sdk project. Runs |
| fluent_buildA | Build a ServiceNow fluent/now-sdk project. Runs |
| fluent_validateA | Validate a ServiceNow fluent/now-sdk project. Runs |
| fluent_cicdB | Run ServiceNow CI/CD operations via the SDK ( |
| search_servicenow_docsA | Search the official ServiceNow product documentation (servicenow.com/docs) — API references (GlideRecord, GlideSystem, GlideAjax…), admin & developer guides, encoded-query operators, release notes. Returns ranked results with title, breadcrumb, URL, snippet, and a |
| fetch_servicenow_docA | Fetch the full readable text of a specific ServiceNow documentation page. Pass either the |
| create_now_assist_skillA | Create a Now Assist skill definition (requires NOW_ASSIST_ENABLED + WRITE_ENABLED) |
| list_now_assist_skillsA | List Now Assist skill definitions (requires NOW_ASSIST_ENABLED) |
| get_now_assist_skillA | Get a single Now Assist skill definition by sys_id (requires NOW_ASSIST_ENABLED) |
| test_now_assist_skillA | Invoke a Now Assist skill with test input to verify behavior (requires NOW_ASSIST_ENABLED) |
| create_ai_agentA | Create an AI agent definition with optional auto-generated ACLs (requires NOW_ASSIST_ENABLED + WRITE_ENABLED) |
| list_ai_agentsA | List AI agent definitions |
| get_ai_agentA | Get an AI agent definition and its related ACLs |
| create_agentic_workflowA | Create an agentic workflow linked to an AI agent (requires NOW_ASSIST_ENABLED + WRITE_ENABLED) |
| cmdb_find_duplicatesA | Find duplicate CIs by matching on specified fields (in-memory grouping) |
| cmdb_find_orphansA | Find CIs with no relationships in cmdb_rel_ci |
| cmdb_find_staleA | Find CIs not updated within a given number of days that are still operational |
| cmdb_reconcileA | Act on duplicate, stale, or orphan CIs — merge, retire, or remove (requires CMDB_WRITE_ENABLED). Supports dry_run mode. |
| create_playbookA | Create a playbook definition with ordered steps that chain tool calls (requires NOW_ASSIST_ENABLED + WRITE_ENABLED) |
| execute_playbookA | Execute a playbook step by step, passing results forward through context (requires NOW_ASSIST_ENABLED). Supports dry_run. |
| list_playbooksA | List stored playbook definitions from sys_hub_action_type_definition |
| discover_tableA | Discover a ServiceNow table schema and register dynamic CRUD tools for it. After discovery, new tools become available: dynamic_query_, dynamic_get_, dynamic_create_, dynamic_update_, dynamic_delete_. Schemas are cached for 30 minutes. |
| list_table_configA | List every configuration artifact on a table — business rules, client scripts, UI policies, ACLs, UI actions, data policies, and dictionary fields — with per-type counts. Use it to see what depends on a table before changing or removing it. This is config/metadata impact, not CMDB CI impact. Each lane returns {count, records} or {error} if that table/plugin is unavailable. |
| find_field_referencesA | Find where a table field is used — its dictionary entry plus any scripts (business rules, script includes, client scripts, UI actions, widgets) that mention the field name. Use it before renaming or removing a field. Script matches are substring (LIKE) hits, so expect false positives (comments, similarly-named symbols) and misses for dynamically-built references; treat results as candidates to review, not a definitive list. |
| find_script_referencesA | Find what references a Script Include or named artifact — scans script-bearing config tables for textual use of the name. Use it before renaming or deleting a Script Include, Script Action, etc. Matches are substring (LIKE) hits, so treat them as candidates to review (false positives from comments/similar names; misses for dynamic references). |
| find_update_setsA | List the update sets that contain changes to an artifact (by name), so you know what is in-flight or already captured for promotion before you touch it. |
| find_property_usageA | Find scripts that read a system property (sys_properties) by name, plus the property record itself. Use it before changing or removing a property. Matches are substring (LIKE) hits — candidates to review, not definitive. |
| list_supported_artifactsA | Local sync: list the artifact types (tables) that support pull/push to local files and which fields sync for each. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| morning-standup | Daily standup briefing — P1/P2 incidents, SLA breaches, changes due today |
| my-tickets | All open tasks, incidents, and requests assigned to me |
| p1-alerts | Active P1 incidents with time open and assignee |
| my-changes | My pending change requests and their approval status |
| knowledge-search | Search the knowledge base |
| create-incident | Guided incident creation — asks for details then creates the record |
| sla-breaches | Records currently breaching or about to breach SLA |
| ci-health | CMDB health check for a named CI |
| run-atf | Trigger an ATF test suite and report results |
| switch-instance | Switch to a different ServiceNow instance for this session |
| deploy-updateset | Preview and commit an update set |
| scan-health | Complete instance health assessment — plugins, scheduled jobs, logs, quotas, system diagnostics |
| scan-security | Comprehensive security scan — ACLs, roles, scripts, APIs, compliance across ALL artifact types |
| scan-debt | Find dead code, unused scripts, duplicate logic, stale configurations across ALL artifact types |
| scan-upgrade | Check deprecated APIs, incompatible patterns, and plugin conflicts before upgrading |
| scan-cmdb | CMDB health — stale CIs, broken relationships, data quality, orphan detection, class compliance |
| scan-automation | Automation conflict detection — overlapping business rules and flows, circular triggers, execution order |
| review-code | Deep code review — security, performance, best practices, upgrade safety across all artifact types |
| review-acls | ACL coverage analysis — missing ACLs, field-level gaps, overly permissive rules, conflicts |
| review-scripts | Bulk script scan — injection, performance antipatterns, deprecated APIs, hardcoded sys_ids |
| review-flows | Flow Designer audit — error handling, performance, dead paths, async issues, security, compliance |
| build-business-rule | Guided business rule creation — understand, check existing, generate, review, create, test |
| build-client-script | Guided client script creation — onChange, onLoad, onSubmit, onCellEdit with best practices |
| build-test-plan | Generate ATF test plan for any artifact type — BRs, SIs, Client Scripts, Flows, ACLs, Catalog |
| build-app | Complete 7-phase scoped application builder — from data model to packaging |
| build-flow | Flow Designer creation — triggers, actions, error handling, subflows, testing |
| build-portal | Service Portal widget builder — server, client, HTML, CSS with architectural guidance |
| build-uib | UI Builder / Next Experience component builder — Seismic, NEDS, macroponents |
| build-catalog | End-to-end catalog item builder — variables, approval, fulfillment, client scripts |
| build-rest-api | Scripted REST API builder — resources, auth, error handling, versioning, documentation |
| ops-triage | P1/P2 incident triage — fetch details, assess CMDB impact, check SLAs, search KB, suggest resolution |
| ops-deploy | Safe deployment pipeline — validate, preview, create change, ATF, commit, rollback plan |
| ops-risk | Change risk scoring, conflict detection, CAB preparation, and rollback planning |
| docs-app | Auto-generate comprehensive application documentation — tables, scripts, flows, ACLs, catalog |
| docs-release | Generate release notes from update set — categorize changes, highlight breaking changes |
| docs-runbook | Operational runbook — incident response, health checks, escalation, recovery procedures |
| docs-script | Detailed script documentation — JSDoc, explanation, usage examples, dependencies, security |
| build-atf-suite | AI-generates runnable ATF test suites from business rules, script includes, flows, or any artifact |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| my-incidents | Open incidents currently assigned to me |
| open-changes | Change requests pending approval or scheduled this week |
| sla-breaches | Records currently breaching or about to breach SLA |
| instance:info | Current active ServiceNow instance metadata |
| ci:<name> | CMDB Configuration Item by name (e.g. @ci:web-prod-01) |
| kb:<title> | Knowledge Base article by title (e.g. @kb:VPN-setup) |
| query-syntax | ServiceNow encoded query syntax reference — operators, patterns, date functions, anti-patterns |
TDQS
Scored across 506 tools
With 506 tools, there is massive overlap: multiple query tools (query_records, fluent_query, fluent_sdk_query, nlq_query, natural_language_search, ai_search), multiple update-set tools (list_update_sets, list_changesets, get_changeset, commit_changeset, etc.), and many utility/search tools that blur together. Agents would frequently struggle to pick the correct tool.
Most tools follow a snake_case verb_noun pattern, but the verbs are highly varied (get/list/create/update/add/run/trigger/execute/generate/validate/import/export/find/analyze) and some tools use noun-only or phrase names like change_readiness, service_health, natural_language_search, and fluent_build. The overall convention is readable but not uniform.
506 tools is an extreme count for any MCP server, far beyond the 3-15 well-scoped range. The set feels like a full platform API dump rather than a curated, coherent toolset, with clear redundancy across domains.
Coverage is broad across many ServiceNow modules (ITSM, CSM, HRSD, CMDB, GRC, workflows, UI Builder, etc.), but there are notable gaps such as no list_problems, no delete operations for many core records, and no unified update for several artifact types. The generic query/update/delete tools mitigate these gaps but the domain-specific surface is uneven.