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'. |
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_recordsC | Query ServiceNow records with filtering, field selection, pagination, and sorting |
| get_table_schemaB | Get the structure and field information for a ServiceNow table |
| get_recordC | Retrieve complete details of a specific record by sys_id |
| get_userC | Look up user details by email or username |
| get_groupC | 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_relationshipsC | Show parent and child relationships for a CI |
| list_discovery_schedulesC | List discovery schedules and their run status |
| list_mid_serversC | List MID servers and verify they are healthy |
| list_active_eventsC | Monitor critical infrastructure events |
| cmdb_health_dashboardB | Get CMDB data quality metrics (completeness of server and network CI data) |
| service_mapping_summaryB | View service dependencies and related CIs for impact analysis |
| natural_language_searchB | Search ServiceNow using plain English (experimental) |
| natural_language_updateB | Update a record using natural language (experimental, requires WRITE_ENABLED=true) |
| list_instancesB | List all configured ServiceNow instances (multi-instance / multi-customer support) |
| switch_instanceB | Switch the active ServiceNow instance for this session |
| get_current_instanceA | Get the currently active ServiceNow instance name and URL |
| create_ci_relationshipC | [Write] Create a relationship between two CMDB Configuration Items |
| cmdb_impact_analysisC | Analyze the downstream impact of a Configuration Item change or outage |
| run_discovery_scanC | [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_incidentC | 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_problemB | 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_problemB | Resolve a problem with root cause and resolution notes (requires WRITE_ENABLED=true) |
| create_change_requestC | Create a new change request (requires WRITE_ENABLED=true) |
| get_change_requestB | Get full details of a change request by number (CHG...) or sys_id |
| update_change_requestB | Update fields on a change request (requires WRITE_ENABLED=true) |
| list_change_requestsC | List change requests with optional filtering by state or query |
| submit_change_for_approvalB | Move a change request to "Requested" state for approval (requires WRITE_ENABLED=true) |
| close_change_requestB | 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_taskC | Get details of any task record by number or sys_id |
| update_taskB | Update fields on a task record (requires WRITE_ENABLED=true) |
| list_my_tasksC | List tasks assigned to the currently configured user |
| complete_taskA | Mark a task as complete (requires WRITE_ENABLED=true) |
| list_knowledge_basesC | List all knowledge bases available in the instance |
| search_knowledgeB | Search knowledge base articles by keyword |
| get_knowledge_articleC | 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_articleB | Update a knowledge article (requires WRITE_ENABLED=true) |
| publish_knowledge_articleB | Publish a draft knowledge article (requires WRITE_ENABLED=true) |
| retire_knowledge_articleC | [Write] Retire a knowledge article (mark as outdated) |
| list_catalog_itemsB | List available service catalog items |
| search_catalogC | Search the service catalog for items matching a keyword |
| get_catalog_itemB | Get full details of a catalog item including its variables |
| create_catalog_itemB | Create a new service catalog item (requires WRITE_ENABLED=true) |
| update_catalog_itemB | 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_approvalsB | List approvals pending for the currently configured user |
| list_approvalsC | List approval requests with optional filters |
| approve_requestB | Approve a pending approval request (requires WRITE_ENABLED=true) |
| reject_requestA | Reject a pending approval request (requires WRITE_ENABLED=true) |
| get_sla_detailsB | Get SLA breach status for a specific task or incident |
| list_active_slasB | List active SLA records with optional filters |
| create_catalog_variableC | [Write] Add a form variable to a service catalog item |
| create_catalog_ui_policyC | [Write] Create a UI policy for a catalog item form |
| list_usersC | List users with optional search filter |
| create_userB | Create a new user account (requires WRITE_ENABLED=true) |
| update_userB | Update a user account (requires WRITE_ENABLED=true) |
| list_groupsC | List groups with optional search filter |
| create_groupA | Create a new assignment group (requires WRITE_ENABLED=true) |
| update_groupB | Update a group (requires WRITE_ENABLED=true) |
| add_user_to_groupA | Add a user to a group (requires WRITE_ENABLED=true) |
| remove_user_from_groupB | Remove a user from a group (requires WRITE_ENABLED=true) |
| list_reportsC | List saved reports in the instance (latest release: /api/now/reporting) |
| get_reportB | 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_queryB | Get time-bucketed trend data for a table (useful for monthly/weekly trend charts) |
| get_performance_analyticsC | 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_logB | Retrieve system log entries for debugging or auditing |
| list_scheduled_jobsC | List scheduled jobs and their run schedules |
| get_scheduled_jobB | Get full details of a scheduled job by sys_id or name |
| create_scheduled_jobC | Create a new scheduled script execution job (requires WRITE_ENABLED=true) |
| update_scheduled_jobC | Update a scheduled job (requires WRITE_ENABLED=true) |
| trigger_scheduled_jobB | Immediately execute a scheduled job on-demand (requires WRITE_ENABLED=true) |
| create_reportC | Create a new saved report on any table (requires WRITE_ENABLED=true) |
| update_reportB | Update an existing saved report definition (requires WRITE_ENABLED=true) |
| list_job_run_historyB | List recent run history for scheduled jobs (success/failure log) |
| create_scheduled_reportC | [Write] Schedule a report for recurring email delivery |
| create_kpiC | [Write] Create a Key Performance Indicator from ServiceNow data |
| list_atf_suitesC | List ATF test suites in the instance |
| get_atf_suiteC | Get details of a test suite including test count |
| run_atf_suiteB | Execute an ATF test suite (requires ATF_ENABLED=true) |
| list_atf_testsB | List ATF test cases, optionally filtered by suite |
| get_atf_testC | Get details of a specific test case |
| run_atf_testB | Execute a single ATF test (requires ATF_ENABLED=true) |
| get_atf_suite_resultC | Get the results of a test suite run |
| list_atf_test_resultsB | List individual test results within a suite run |
| get_atf_failure_insightB | Get ATF Failure Insight data — metadata changes between last successful and failed run (role changes, field value changes) |
| nlq_queryC | Ask a natural language question and get structured ServiceNow data (ServiceNow NLQ API) |
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
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/aartiq/servicenow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server