The ServiceNow app provides read/write access to the ServiceNow ITSM platform via its Table API. It can be used either as a Builder app (automations call ServiceNow instructions directly) or as a remote MCP server consumed by an AI Knowledge agent — covering incidents, change requests, problems, service catalog, requests, attachments, users and groups.Documentation Index
Fetch the complete documentation index at: https://prismeai-legacy.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
ITSM Tickets
Incidents, changes and problems with transitions and work notes
Service Catalog
List, inspect and order catalog items with variables
Generic Table Access
Query any ServiceNow table with encoded queries and aggregates
Prerequisites
- A ServiceNow instance (URL format:
https://<instance>.service-now.com) - Either Basic Auth credentials (user with
itil/adminrole) or an OAuth2 client (client_credentialsflow) - Roles required for the intended tables:
itilfor incidents,change_managerfor changes,problem_managerfor problems,sn_request_writefor catalog requests, etc.
- Usage as App
- Usage as MCP
Installation
- Go to Apps in your workspace
- Search for ServiceNow and install it
- Open the app instance configuration and fill in the required fields
Configuration
| Field | Description |
|---|---|
| Instance URL | https://<instance>.service-now.com |
| Authentication Type | basic or oauth2 |
| Username / Password | Required when authType = basic |
| OAuth2 Client ID / Client Secret | Required when authType = oauth2 (uses client_credentials grant) |
| MCP Endpoint | Auto-populated on install — URL of the MCP endpoint for this instance |
| MCP API Key | Auto-populated on install — signed key used in the mcp-api-key header. Do not modify |
Credentials are stored as workspace secrets.
MCP Endpoint and MCP API Key are generated automatically by the onInstall flow and are only needed to expose this instance as an MCP server (see the next tab).Available Instructions
Every instruction resolves credentials viabuildAppAuth (Basic or OAuth2 depending on authType). Most list operations accept limit, offset, fields (comma-separated) and displayValue (true/false/all) to control the response shape.displayValue controls how reference/choice fields are rendered: true → labels, false → sys_ids, all → both (under value and display_value).Generic Table Access
| Instruction | Arguments |
|---|---|
queryRecords | tableName*, query (encoded query), fields, limit, offset, displayValue |
getRecord | tableName, sysId, fields, displayValue |
getStats | tableName*, query, count, sumFields, avgFields, groupBy |
Incidents
| Instruction | Arguments |
|---|---|
listIncidents | query, state (1=New, 2=InProgress, 3=OnHold, 6=Resolved, 7=Closed), priority (1=Critical → 4=Low), assignedTo, assignmentGroup, fields, limit, offset, displayValue |
getIncident | sysId or number (e.g. INC0010001), fields, displayValue |
createIncident | shortDescription*, description, callerId, category, subcategory, impact (1/2/3), urgency (1/2/3), priority, assignmentGroup, assignedTo, cmdbCi, contactType |
updateIncident | sysId*, state, shortDescription, description, impact, urgency, priority, assignmentGroup, assignedTo, workNotes, comments, closeCode, closeNotes |
Change Requests
| Instruction | Arguments |
|---|---|
listChanges | query, state, priority, type (normal/standard/emergency), assignedTo, assignmentGroup, fields, limit, offset, displayValue |
getChange | sysId*, fields, displayValue |
createChange | changeType* (normal/standard/emergency), shortDescription*, description, category, priority, risk, impact, assignmentGroup, assignedTo, startDate, endDate, implementationPlan, backoutPlan, testPlan, cmdbCi |
updateChange | sysId*, shortDescription, description, priority, risk, impact, assignmentGroup, assignedTo, startDate, endDate, implementationPlan, backoutPlan, testPlan, workNotes |
getChangeTransitions | sysId* |
transitionChange | sysId, state (target state value) |
startDate / endDate use the ServiceNow format YYYY-MM-DD HH:mm:ss (UTC on the instance timezone).Problems
| Instruction | Arguments |
|---|---|
listProblems | query, state, priority, assignedTo, assignmentGroup, fields, limit, offset, displayValue |
getProblem | sysId*, fields, displayValue |
createProblem | shortDescription*, description, category, impact, urgency, priority, assignmentGroup, assignedTo, cmdbCi |
updateProblem | sysId*, state, shortDescription, description, priority, assignmentGroup, assignedTo, workaround, causeNotes, fixNotes, workNotes |
Service Catalog
| Instruction | Arguments |
|---|---|
listCatalogItems | catalog, category, query, limit, offset |
getCatalogItem | sysId* (returns the item with its variables / form fields) |
orderCatalogItem | sysId*, quantity, variables (object: form field values) |
Requests & Request Items
| Instruction | Arguments |
|---|---|
listRequests | query, fields, limit, offset, displayValue |
getRequest | sysId*, fields, displayValue |
listRequestItems | query, requestId (filter by parent request sys_id), fields, limit, offset, displayValue |
Attachments
| Instruction | Arguments |
|---|---|
listAttachments | tableName, tableSysId |
uploadAttachment | tableName, tableSysId, fileName, contentBase64, contentType |
Users & Groups
| Instruction | Arguments |
|---|---|
listUsers | query, active, fields, limit, offset |
getUser | sysId or username, fields |
listGroups | query, active, fields, limit, offset |
Arguments flagged with
* are required.DSUL Examples
Open an Incident From a Form
Assign and Resolve
Query With an Encoded Query
Order a Catalog Item
Aggregate Statistics
Attach a File
Error Handling
| HTTP Status | Error | Solution |
|---|---|---|
| 401 | Unauthorized | Verify credentials; for OAuth2, check the client_credentials grant is enabled on the app registry |
| 403 | Forbidden | The user/client lacks an ACL on the target table — grant itil, change_manager, problem_manager, or a table-specific role |
| 404 | Not Found | Verify sys_id / number and that the record is not in a restricted domain |
| 409 | Conflict | State transition is not allowed — call getChangeTransitions to get valid targets |
| 429 | Rate Limited | The instance returned a X-RateLimit-* error — back off; ServiceNow also enforces per-user transaction quotas |
Common Issues
“Instance not configured” —instanceUrl is missing from the app config. Paste the full URL with scheme (https://acme.service-now.com).
“Basic Auth requires username and password” — authType is basic but one credential is empty. Either fill both or switch to oauth2.
“OAuth2 requires clientId and clientSecret” — authType is oauth2 but the client credentials are missing. Create an Application Registry in ServiceNow (System OAuth > Application Registry) with the client_credentials grant.
“Invalid API key” (MCP) — The mcp-api-key header does not match the central app secret. Reinstall the app instance to regenerate a signed key.
Empty results with a seemingly valid query — encoded queries are case-sensitive and ACL-filtered. Try displayValue: all and verify the effective roles of the account.
External Resources
ServiceNow Table API
Official Table API reference
Encoded Query Strings
Operators and syntax for
queryOAuth Inbound Setup
Create an OAuth Application Registry
Tool Agents
Plug MCP servers into AI Knowledge agents