ServiceNow-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WRITE_ENABLED | No | Set to 'true' to enable write operations (create/update/delete) | false |
| MCP_TOOL_PACKAGE | No | Tool package to use (e.g., 'full', 'service_desk', etc.) | |
| SCRIPTING_ENABLED | No | Set to 'true' to enable script execution | false |
| CMDB_WRITE_ENABLED | No | Set to 'true' to enable CMDB write operations | false |
| NOW_ASSIST_ENABLED | No | Set to 'true' to enable Now Assist AI features | false |
| SN_INSTANCES_CONFIG | No | Path to instances JSON file for multi-instance support | |
| SERVICENOW_INSTANCE_URL | No | The URL of your ServiceNow instance (e.g., https://dev12345.service-now.com) | |
| SERVICENOW_OAUTH_PASSWORD | No | The password for Password Grant authentication (required if using password grant) | |
| SERVICENOW_OAUTH_USERNAME | No | The username for Password Grant authentication (required if using password grant) | |
| SERVICENOW_OAUTH_CLIENT_ID | No | The OAuth client ID from the Application Registry | |
| SERVICENOW_OAUTH_CLIENT_SECRET | No | The OAuth client secret from the Application Registry |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_recordsB | Query ServiceNow records with filtering, field selection, pagination, and sorting |
| get_table_schemaA | Get the structure and field information for a ServiceNow table |
| get_recordA | Retrieve complete details of a specific record by sys_id |
| get_userB | Look up user details by email or username |
| get_groupA | Find assignment group details by name or sys_id |
| search_cmdb_ciB | Search for configuration items (CIs) in the CMDB |
| get_cmdb_ciB | Get complete information about a specific configuration item |
| list_relationshipsA | 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_searchB | Search ServiceNow using plain English (experimental) |
| natural_language_updateA | Update a record using natural language (experimental, 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_analysisB | Analyze the downstream impact of a Configuration Item change or outage |
| run_discovery_scanB | [Write] Trigger a ServiceNow Discovery scan for network/infrastructure |
| 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_incidentA | 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_problemB | 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_requestB | 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_basesB | List all knowledge bases available in the instance |
| search_knowledgeA | 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_articleA | 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_articleB | [Write] Retire a knowledge article (mark as outdated) |
| list_catalog_itemsC | 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_itemB | 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_approvalsA | 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_slasA | List active SLA records with optional filters |
| create_catalog_variableB | [Write] Add a form variable to a service catalog item |
| create_catalog_ui_policyB | [Write] Create a UI policy for a catalog item form |
| list_requestsB | List service catalog requests (sc_request). Supports filtering by state and requested_for user. |
| get_requestA | Get a service catalog request (sc_request) by number or sys_id, including its requested items |
| list_request_itemsB | List requested items (sc_req_item) for a given request or catalog item |
| get_request_itemA | Get a requested item (sc_req_item) by number or sys_id, including its fulfillment tasks |
| cancel_requestA | Cancel an open service catalog request (requires WRITE_ENABLED=true) |
| update_request_itemA | Update a requested item — stage, assignment, or work notes (requires WRITE_ENABLED=true) |
| 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_groupB | Create a new assignment group (requires WRITE_ENABLED=true) |
| update_groupB | Update a group (requires WRITE_ENABLED=true) |
| add_user_to_groupB | 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_queryB | 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_analyticsB | Get Performance Analytics widget data (requires PA plugin; latest release: /api/now/pa/widget/{sys_id}) |
| export_report_dataB | Export raw table data as structured JSON for use in external reports |
| get_sys_logA | Retrieve system log entries for debugging or auditing |
| 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_reportC | [Write] Schedule a report for recurring email delivery |
| create_kpiB | [Write] Create a Key Performance Indicator from ServiceNow data |
| 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 |
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 |
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) |
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tedorigawa001/ServiceNow-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server