snow-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | HTTP bind host, default 127.0.0.1 | 127.0.0.1 |
| MCP_PORT | No | HTTP bind port, default 8000 | 8000 |
| MCP_TRANSPORT | No | Transport type: 'stdio' (default) or 'http' | stdio |
| SERVICENOW_PASS | Yes | Your ServiceNow password | |
| SERVICENOW_USER | Yes | Your ServiceNow username | |
| SERVICENOW_INSTANCE_URL | Yes | Your ServiceNow instance URL, e.g. https://your-instance.service-now.com |
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_incidentsA | List/search incident records. query: ServiceNow encoded query (sysparm_query syntax), e.g. "active=true^priority=1". order_by: field name to sort by. order_desc: sort descending instead of ascending. limit: max records to return. offset: records to skip, for pagination. fields: restrict returned fields; omit for all fields. display_value: return human-readable display values for reference/choice fields. |
| get_incidentB | Get a single incident record by sys_id. |
| create_incidentB | Create a new incident record. |
| update_incidentA | Update fields on an existing incident record identified by sys_id (partial update). |
| get_incident_work_notesA | Read the work notes on a incident identified by sys_id, newest first. Returns journal entries with sys_created_on, sys_created_by, and value (the note text). limit/offset paginate. created_by: filter to notes written by that username (exact match, e.g. 'beth.anglin'). |
| add_incident_work_noteA | Add a work note to a incident identified by sys_id. Appends a new journal entry; existing work notes are never modified. |
| list_requestsA | List/search service request (sc_request — the parent Request record) records. query: ServiceNow encoded query (sysparm_query syntax), e.g. "active=true^priority=1". order_by: field name to sort by. order_desc: sort descending instead of ascending. limit: max records to return. offset: records to skip, for pagination. fields: restrict returned fields; omit for all fields. display_value: return human-readable display values for reference/choice fields. |
| get_requestB | Get a single service request (sc_request — the parent Request record) record by sys_id. |
| create_requestC | Create a new service request (sc_request — the parent Request record) record. |
| update_requestB | Update fields on an existing service request (sc_request — the parent Request record) record identified by sys_id (partial update). |
| get_request_work_notesA | Read the work notes on a service request (sc_request — the parent Request record) identified by sys_id, newest first. Returns journal entries with sys_created_on, sys_created_by, and value (the note text). limit/offset paginate. created_by: filter to notes written by that username (exact match, e.g. 'beth.anglin'). |
| add_request_work_noteA | Add a work note to a service request (sc_request — the parent Request record) identified by sys_id. Appends a new journal entry; existing work notes are never modified. |
| list_requested_itemsA | List/search requested item (sc_req_item — a line item under a parent Request; filter by parent with query="request=") records. query: ServiceNow encoded query (sysparm_query syntax), e.g. "active=true^priority=1". order_by: field name to sort by. order_desc: sort descending instead of ascending. limit: max records to return. offset: records to skip, for pagination. fields: restrict returned fields; omit for all fields. display_value: return human-readable display values for reference/choice fields. |
| get_requested_itemB | Get a single requested item (sc_req_item — a line item under a parent Request; filter by parent with query="request=") record by sys_id. |
| create_requested_itemB | Create a new requested item (sc_req_item — a line item under a parent Request; filter by parent with query="request=") record. |
| update_requested_itemA | Update fields on an existing requested item (sc_req_item — a line item under a parent Request; filter by parent with query="request=") record identified by sys_id (partial update). |
| get_requested_item_work_notesA | Read the work notes on a requested item (sc_req_item — a line item under a parent Request; filter by parent with query="request=") identified by sys_id, newest first. Returns journal entries with sys_created_on, sys_created_by, and value (the note text). limit/offset paginate. created_by: filter to notes written by that username (exact match, e.g. 'beth.anglin'). |
| add_requested_item_work_noteA | Add a work note to a requested item (sc_req_item — a line item under a parent Request; filter by parent with query="request=") identified by sys_id. Appends a new journal entry; existing work notes are never modified. |
| list_table_recordsA | List/search records in any ServiceNow table by technical name (e.g. "incident", "sys_user", "change_request"). query: ServiceNow encoded query (sysparm_query syntax), e.g. "active=true^priority=1". order_by: field name to sort by. order_desc: sort descending instead of ascending. limit: max records to return. offset: records to skip, for pagination. fields: restrict returned fields; omit for all fields. display_value: return human-readable display values for reference/choice fields. |
| get_table_recordB | Get a single record by sys_id from any ServiceNow table by technical name. |
| create_table_recordB | Create a new record in any ServiceNow table by technical name. |
| update_table_recordC | Update fields on an existing record identified by sys_id, in any ServiceNow table by technical name (partial update). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Each tool targets a specific entity (incident, request, requested item, or generic table) and action (create, get, list, update, add work note, get work notes). There is no ambiguity between tools, even with similar naming patterns.
All tools follow a consistent verb_noun pattern with underscores, e.g., add_incident_work_note, create_incident, list_requests. No mixing of casing or verb styles.
22 tools cover specific ServiceNow entities (incident, request, requested item) plus generic table operations. While slightly above the typical 3-15 range, the count is justified by the need for distinct operations on each entity and generic access.
CRUD operations are present for incidents, requests, requested items, and generic tables, along with work notes read/write. However, deletion operations (e.g., delete_incident) are missing, and entity-specific operations for other common tables like change_request are absent, relying on generic table tools which may not cover all needs.