ServiceNow MCP server
Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on ServiceNow, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.
Overview
This tool pack gives an agent full create, read, update, and delete access to any ServiceNow table, plus knowledge article search, CMDB impact analysis, aggregate reporting, and Service Catalog ordering. All tools return a human-readable summary alongside the record data.
For setup instructions, see SnapLogic MCP Server quickstart.
Example Prompts
- How many open incidents are there per priority?
- Count change requests grouped by assignment group
- What's the average reassignment count on active incidents?
- Break down problems by category and give me a total count
- Sum the business duration on incidents closed this month, by team
- What's directly connected to the prod-db-01 server CI?
- Show me everything related to this application CI before we schedule the change
- Run an impact check on the configuration item with sys_id 106c5c13c6112275
- How many relationships does the core network switch have, and is it operational?
- Open a new incident: 'VPN is down for the Berlin office', priority 1
Tools
| Tool Name | Functions |
|---|---|
| ServiceNowAggregateReport | Aggregate ServiceNow records (count/avg/sum) grouped by a field. |
| ServiceNowCMDBImpactAnalysis | Fetch a CMDB CI with its inbound and outbound relationships. |
| ServiceNowCreateRecord | Create a new record in any ServiceNow table. |
| ServiceNowDeleteRecord | Delete a ServiceNow record by sys_id. |
| ServiceNowOrderCatalogItem | Order a ServiceNow Service Catalog item by sys_id. |
| ServiceNowQuery | Query any ServiceNow table with an encoded-query filter. |
| ServiceNowSearchKnowledgeBase | Full-text search over published ServiceNow knowledge articles. |
| ServiceNowUpdateRecord | Update fields on an existing ServiceNow record by sys_id. |
Set up the MCP Server tools
- Download servicenow_tools.zip.
- In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded servicenow_tools.zip. Designer unpacks each pipeline into the project.
- Attach the required account to the connectivity snaps (see Connection Setup).
- Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.
Configure account
Attach a ServiceNow Basic-Auth or OAuth 2.0 account to the ServiceNow snaps in Designer after import.
These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.
See the SnapLogic account documentation for this connector: 1438105.
ServiceNowAggregateReport
Answers count, average, and sum questions by grouping ServiceNow records without pulling the underlying rows. Use it for breakdowns and roll-ups; use ServiceNowQuery when the user wants to see the actual records.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name* | string | — | ServiceNow table to aggregate, e.g. incident. |
| query | string | — | Encoded-query filter applied before aggregation, e.g. active=true. |
| group_by | string | — | Field to group results by, e.g. priority or assignment_group. |
| count | boolean | true |
Return a record count per group (default true). |
| avg_fields | string | — | Comma-separated numeric fields to average per group. |
| sum_fields | string | — | Comma-separated numeric fields to sum per group. |
* Required parameter.
Try asking:
- How many open incidents are there per priority?
- Count change requests grouped by assignment group
- What's the average reassignment count on active incidents?
- Break down problems by category and give me a total count
- Sum the business duration on incidents closed this month, by team
ServiceNowCMDBImpactAnalysis
Looks up a configuration item in the CMDB and returns its directly connected inbound and outbound relationships, along with the CI's status and relationship count. Use it during change planning or incident triage to quickly assess what depends on or connects to a given CI.
| Parameter | Type | Default | Description |
|---|---|---|---|
| ci_sys_id* | string | — | sys_id of the configuration item to look up. |
| ci_class | string | cmdb_ci |
CMDB class of the CI, e.g. cmdb_ci_server. Defaults to cmdb_ci. |
* Required parameter.
Try asking:
- What's directly connected to the prod-db-01 server CI?
- Show me everything related to this application CI before we schedule the change
- Run an impact check on the configuration item with sys_id 106c5c13c6112275
- How many relationships does the core network switch have, and is it operational?
ServiceNowCreateRecord
Creates a new record in any ServiceNow table, so one tool can open an incident, raise a change request, or write to a custom table. Returns the new record's sys_id and number for use in follow-up update or delete calls.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name* | string | — | ServiceNow table the record is created in, e.g. incident. |
| record* | object | — | Field map sent as the request body, e.g. {short_description, priority, category}. |
* Required parameter.
Try asking:
- Open a new incident: 'VPN is down for the Berlin office', priority 1
- Create a change request to patch the database servers on Saturday night
- Log a problem record for the recurring email outages and assign it to Infrastructure
- Raise a P3 incident in the inquiry category on behalf of the finance team
ServiceNowDeleteRecord
Permanently deletes a single ServiceNow record identified by table name and sys_id, with no bulk mode, typically for cleaning up duplicates or test data. Confirm with the user before calling, as the deletion cannot be undone.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name* | string | — | ServiceNow table containing the record, e.g. incident. |
| sys_id* | string | — | sys_id of the record to delete. |
* Required parameter.
Try asking:
- Delete the duplicate incident with sys_id a1b2c3d4
- Remove that test change request I created earlier
- Clean up the dummy problem record from the demo
ServiceNowOrderCatalogItem
Orders a Service Catalog item by sys_id, supporting quantity, catalog variables, and an on-behalf-of user, returning the request number. Use it to fulfill self-service requests for hardware, software, or access; if the user only knows the item by title, first look up its sys_id with ServiceNowQuery.
| Parameter | Type | Default | Description |
|---|---|---|---|
| item_sys_id* | string | — | sys_id of the catalog item to order. |
| variables | object | — | Map of catalog-item variables (item-specific options). Defaults to an empty map. |
| quantity | integer | 1 |
Number of units to order (default 1). |
| requested_for | string | — | User the request is raised on behalf of; omitted when blank. |
* Required parameter.
Try asking:
- Order a new MacBook Pro for Jordan in Sales
- Request access to the Salesforce reporting group for me
- Submit a catalog request for two external monitors
- Raise the standard new-starter laptop request on behalf of Priya
ServiceNowQuery
Queries any ServiceNow table using encoded-query syntax and returns the matching records, with optional field filtering and a record limit. Use it whenever the question is about which records match a condition, rather than a count or aggregate.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name* | string | — | ServiceNow table to query, e.g. incident, change_request, problem. |
| query | string | — | Encoded-query filter, e.g. active=true^priority=1. Omit to return all rows. |
| fields | string | — | Comma-separated list of fields to return. Omit to return all fields. |
| max_records | integer | 50 |
Maximum number of records to return (default 50). |
* Required parameter.
Try asking:
- Show me all active P1 incidents
- List change requests where the assignment group is Network
- Find open problems and just return number, short_description and state
- Get the 10 most recent incidents raised by the service desk
- Query the sc_task table for anything still unassigned
ServiceNowSearchKnowledgeBase
Runs a full-text search over published ServiceNow knowledge articles and returns the best-matching results. Use it when the user asks how to do something, rather than asking about a specific ticket or record.
| Parameter | Type | Default | Description |
|---|---|---|---|
| search_text* | string | — | Free-text query matched against published knowledge articles. |
| max_results | integer | 5 |
Maximum number of articles to return (default 5). |
* Required parameter.
Try asking:
- How do I reset my corporate VPN password?
- Find knowledge articles about onboarding a new laptop
- Search the KB for multi-factor authentication setup and give me the top 3
- Is there a published article on requesting software licences?
ServiceNowUpdateRecord
Updates an existing ServiceNow record by sys_id, applying only the fields that are passed. Use it to reassign, re-prioritize, add work notes, or change the state of a record surfaced by ServiceNowQuery.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name* | string | — | ServiceNow table containing the record, e.g. incident. |
| sys_id* | string | — | sys_id of the record to update. |
| fields* | object | — | Field map of values to change, sent as the PUT body, e.g. {priority: '1', work_notes: '...'}. |
* Required parameter.
Try asking:
- Set that incident to priority 1 and add a work note saying we're escalating
- Resolve the incident with sys_id abc123 and set the close notes
- Reassign this change request to the Database team
- Update the short description on the record we just found