servicenow-platform-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SERVICENOW_ENV | No | Set to 'prod' or 'production' to block write operations | |
| MCP_TOOL_PACKAGE | No | Tool package preset: full, readonly, core_readonly, none, or a comma-separated list of group names | full |
| SERVICENOW_PASSWORD | Yes | Your ServiceNow password | |
| SERVICENOW_USERNAME | Yes | Your ServiceNow username | |
| SERVICENOW_INSTANCE_URL | Yes | Your ServiceNow instance URL, e.g. https://dev12345.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_tool_packagesA | List all available tool packages and their tool groups. |
| queryA | Read records, aggregates, or a single record from any ServiceNow table. Args:
table: ServiceNow table name (e.g. 'incident').
sys_id: When set, fetch a single record by sys_id (other filter args ignored
except |
| describeA | Return slim field metadata for a table, or list script-bearing fields. Args:
table: ServiceNow table name. Required unless |
| record_writeA | Create, update, or delete a record. Defaults to preview mode. Script-bearing tables (Business Rules, Script Includes, widgets, etc.)
are not special-cased - script-field discovery happens at runtime via
Args:
action: 'create' | 'update' | 'delete'.
table: Target table. Required.
sys_id: Required for 'update' and 'delete'.
data: JSON string of field values. Required for 'create' and
'update'.
script_path: Optional absolute path to a local script file. Content
is read (UTF-8, max 1 MB) and stored under the resolved
target script field. Path resolved with strict=True;
constrained to |
| record_applyA | Commit a previously previewed write. Single-use token. Args:
preview_token: The token returned by |
| record_readA | Fetch a record by sys_id or name from any table. Exactly one of Args:
table: ServiceNow table name (e.g. |
| attachmentA | Read attachments. action: 'list' | 'get' | 'download' | 'download_by_name'. Args: action: One of: list, get, download, download_by_name. sys_id: Attachment sys_id (for get, download). table: Parent table (for list, download_by_name). table_sys_id: Parent record sys_id (for list, download_by_name). file_name: File name (for download_by_name). |
| attachment_writeA | Write attachments. action: 'upload' | 'delete'. Args: action: 'upload' or 'delete'. table: Parent table (upload). table_sys_id: Parent record sys_id (upload). file_name: Attachment file name (upload). content_base64: Base64-encoded file bytes (upload). content_type: MIME type (upload, default 'application/octet-stream'). sys_id: Attachment sys_id (delete). |
| investigateA | Run an investigation or explain a finding. Args: action: 'run' | 'explain' | 'describe'. name: Investigation name (required for 'run', optional for 'describe'). Available: stale_automations, deprecated_apis, table_health, acl_conflicts, error_analysis, slow_transactions, performance_bottlenecks. params: JSON string of run parameters (run only). element_id: 'table:sys_id' identifier of a finding (explain only). |
| resolve_choiceA | Resolve a choice label to its underlying value via ChoiceRegistry. Args: table: ServiceNow table name. field: Field name on that table. label: Choice label to resolve. When empty, returns the full {label: value} mapping for the field. |
| service_catalogB | Service Catalog operations. Dispatch on Args: action: One of: catalogs_list, catalog_get, categories_list, category_get, items_list, item_get, item_variables, order_now, add_to_cart, cart_get, cart_submit, cart_checkout. sys_id: Record sys_id (catalog_get, category_get, item_get, item_variables). item_sys_id: Catalog item sys_id (order_now, add_to_cart). catalog_sys_id: Catalog sys_id (categories_list). catalog: Filter by catalog sys_id (items_list). category: Filter by category sys_id (items_list). text: Search text (catalogs_list, items_list). variables: JSON object of variable name/value pairs (order_now, add_to_cart). limit: Max results (catalogs_list, categories_list, items_list). Default 20. offset: Pagination offset (categories_list, items_list). Default 0. top_level_only: Return only top-level categories (categories_list). |
| build_queryA | Build a ServiceNow encoded query string from a JSON array of conditions. Each condition is an object with:
Operator groups:
Comparison: equals, not_equals, greater_than, greater_or_equal,
less_than, less_or_equal
String: contains, starts_with, like, ends_with, not_like,
does_not_contain
Null / special: is_empty, is_not_empty, anything, empty_string
Time: hours_ago, minutes_ago, days_ago, older_than_days
Date: on, not_on, relative_gt, relative_lt, more_than
Date part: datepart (requires Args: conditions: JSON array of condition objects. Returns the encoded query string in |
| auditA | Inspect ServiceNow audit posture (table/field config) and audit trail. IMPORTANT: Args: action: 'check_field' | 'check_fields' | 'check_table' | 'history' | 'describe'. table: ServiceNow table name (required for all actions except 'describe'). field: Field name (required for 'check_field'). fields_csv: Comma-separated field names (required for 'check_fields', 1..50). sys_id: 32-char record sys_id (required for 'history'). since: YYYY-MM-DD cutoff (history only; overrides window_days). window_days: Audit-trail/positive-control window (defaults to 90). limit: Row cap for 'history' (defaults to settings.max_row_limit). |
| flowA | Inspect Flow Designer flows, triggers, and value blobs (read-only). Args: action: 'inspect' | 'find_by_table' | 'decode_values' | 'list_triggers' | 'describe'. sys_id: Flow sys_id (inspect; mutually exclusive with name). name: Flow name (inspect; mutually exclusive with sys_id). value: gzip+base64+JSON blob to decode (decode_values). table: Target table (find_by_table; optional filter for list_triggers). trigger_type: Trigger type filter (list_triggers, e.g. 'record_update'). active: 'true' | 'false' filter (list_triggers). limit: Row cap for list_triggers (default 100). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- 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/Xerrion/servicenow-platform-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server