# io.github.IvanBBaev/servicenow-mcp-ai (mcpb · servicenow-mcp-ai-3.1.1.mcpb)

ServiceNow MCP server — 100 tools over the full REST surface, every auth method, flows, diagrams.

- Trust score: 51/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `{servicenow_mcp_ai_host}`: 0/100, [markdown](https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/https-servicenow-mcp-ai-host-mcp.md), [page](https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/https-servicenow-mcp-ai-host-mcp)
- mcpb · `servicenow-mcp-ai-3.1.1.mcpb`: 51/100 (this document), [markdown](https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai-2.md), [page](https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai-2)
- npm · `servicenow-mcp-ai`: 89/100, [markdown](https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai.md), [page](https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/IvanBBaev/servicenow-mcp-ai/releases/download/v3.1.1/servicenow-mcp-ai-3.1.1.mcpb`
- Version: `3.1.1`
- Transport: `stdio`
- SHA-256: `70898025449f56fbc8c51174ce3891490ec478d54afe77ce4018249911b2644e`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 25/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs were checked across the 7 of 7 dependencies we could resolve, so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - 0 of 7 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (GPL-3.0-or-later).
  - Actively maintained (last published 5 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 3355 tokens (~90/item across 37 items; 20 tools + 17 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 99% of tool parameters carry a description.
  - Structured output schemas are declared (65% of tools); any adoption earns full credit.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "servicenow_delete_record" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the io.github.IvanBBaev/servicenow-mcp-ai server?

io.github.IvanBBaev/servicenow-mcp-ai ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 70898025449f56fbc8c51174ce3891490ec478d54afe77ce4018249911b2644e; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/IvanBBaev/servicenow-mcp-ai/releases/download/v3.1.1/servicenow-mcp-ai-3.1.1.mcpb`
- SHA-256: `70898025449f56fbc8c51174ce3891490ec478d54afe77ce4018249911b2644e`

### Verify on macOS / Linux

```bash
echo "70898025449f56fbc8c51174ce3891490ec478d54afe77ce4018249911b2644e  servicenow-mcp-ai-3.1.1.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\servicenow-mcp-ai-3.1.1.mcpb).Hash -eq "70898025449f56fbc8c51174ce3891490ec478d54afe77ce4018249911b2644e"
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 51, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 50, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 49, +2)

- [functional improvement] Stability: unverified → 0.03
- [functional improvement] Maintenance: unverified → pass
- [functional] Package version: 3.1.0 → 3.1.1

### 2026-10-30 (score 47)

First indexed and scored.

## MCP tools (20)

### `servicenow_query_table` (~455 tokens)

Query ServiceNow table

Read records from any table (Table API): encoded query, fields, paging, fetchAll. '^' cannot be escaped inside a value; very long queries can hit HTTP 414 — split them. See the servicenow://reference/encoded-query resource.

Input parameters:

- `displayValue` (string): 'true' display, 'false' raw (default), 'all' both, 'display' compact ([sys_id, name] refs).
- `domain` (string): Only this domain's rows (sys_id).
- `explain` (boolean): Read no records: which conditions can use an index, with cost notes (advice).
- `fetchAll` (boolean): All matches (≤ SN_MAX_RECORDS): sys_id cursor without an ORDERBY (stable), else offset.
- `fields`: Columns (default all); 'summary': the list view's.
- `fileFormat` (string): With format 'file': 'csv' (default; columns from 'fields' or page 1) or 'jsonl' (all keys).
- `format` (string): 'json' (default), 'csv', 'table' (columns + rows) or 'file': the full (redacted) result to <profile>/exports/.
- `instance` (string): Profile (default active)
- `limit` (integer): Max records (default 10).
- `noCount` (boolean): Skip the row count (sysparm_no_count): faster on huge tables; 'total' unknown.
- `offset` (integer): Records to skip (paging).
- `omitEmpty` (boolean): Drop empty cells; columns are listed.
- `query` (string): Encoded query (sysparm_query), e.g. 'active=true^ORDERBYDESCsys_created_on'.
- `queryCategory` (string): sysparm_query_category, e.g. a read replica.
- `queryNoDomain` (boolean): Query all accessible domains (sysparm_query_no_domain).
- `suppressPaginationHeader` (boolean): sysparm_suppress_pagination_header.
- `table` (string, required): Table, e.g. 'incident'.
- `view` (string): UI view's fields (sysparm_view); 'fields' wins.

Output parameters:

- `count` (number)
- `explain`
- `format` (string)
- `note` (string)
- `records` (array)
- `rows` (number|array)
- `total` (number)
- `truncated` (boolean)

### `servicenow_get_record` (~82 tokens)

Get ServiceNow record

Read a single record from a table by its sys_id.

Input parameters:

- `displayValue` (string): As in query_table.
- `fields` (array): Columns (default all).
- `instance` (string): Profile (default active)
- `sys_id` (string, required): Record sys_id.
- `table` (string, required): Table, e.g. 'incident'.

### `servicenow_create_record` (~165 tokens)

Create ServiceNow record

Create a new record in a table with the given field values.

Input parameters:

- `apply` (boolean): true executes; omitted: a non-mutating plan preview (SN_WRITE_MODE=apply executes by default).
- `inputDisplayValue` (boolean): Values are display values the instance resolves (sysparm_input_display_value); default false: raw.
- `instance` (string): Profile (default active)
- `table` (string, required): Table, e.g. 'incident'.
- `update_set` (string): In-progress update set (sys_id or exact name) to capture the write in, restored after. Default SN_UPDATE_SET; data rows are never captured.
- `values` (object, required): Field name/value pairs, e.g. { "short_description": "x" }.

### `servicenow_update_record` (~195 tokens)

Update ServiceNow record

Update fields on an existing record identified by its sys_id.

Input parameters:

- `apply` (boolean): true executes; omitted: a non-mutating plan preview (SN_WRITE_MODE=apply executes by default).
- `expected_mod_count` (integer): sys_mod_count from the plan's apply_with; with apply, a changed record is refused (STALE_RECORD).
- `inputDisplayValue` (boolean): Values are display values the instance resolves (sysparm_input_display_value); default false: raw.
- `instance` (string): Profile (default active)
- `sys_id` (string, required): Record sys_id.
- `table` (string, required): Table, e.g. 'incident'.
- `update_set` (string): In-progress update set (sys_id or exact name) to capture the write in, restored after. Default SN_UPDATE_SET; data rows are never captured.
- `values` (object, required): Field name/value pairs to change.

### `servicenow_upsert_record` (~295 tokens)

Upsert ServiceNow record

Create or update one record matched by an exact key of field/value pairs: no match creates, one updates, several are refused (AMBIGUOUS_KEY). Pass the plan's expected_action / expected_sys_id with apply:true; a changed decision gives STALE_RECORD.

Input parameters:

- `apply` (boolean): true executes; omitted: a non-mutating plan preview (SN_WRITE_MODE=apply executes by default).
- `expected_action` (string): The plan's action; with apply, refused (STALE_RECORD) if the key now resolves differently.
- `expected_sys_id` (string): The plan's sys_id; with apply, refused (STALE_RECORD) if the key now matches another record or none.
- `inputDisplayValue` (boolean): Values are display values the instance resolves (sysparm_input_display_value); default false: raw.
- `instance` (string): Profile (default active)
- `key` (object, required): Field/value pairs identifying the record, matched on raw values ('' matches an empty field); no '^' in values.
- `table` (string, required): Table name, e.g. 'cmdb_ci_server'.
- `update_set` (string): In-progress update set (sys_id or exact name) to capture the write in, restored after. Default SN_UPDATE_SET; data rows are never captured.
- `values` (object, required): Fields to write (plus the key fields on create).

### `servicenow_delete_record` (~168 tokens)

Delete ServiceNow record

Delete a record from a table by its sys_id.

Input parameters:

- `apply` (boolean): true executes; omitted: a non-mutating plan preview (SN_WRITE_MODE=apply executes by default).
- `expected_mod_count` (integer): sys_mod_count from the plan's apply_with; with apply, a changed record is refused (STALE_RECORD).
- `instance` (string): Profile (default active)
- `plan_token` (string): Plan preview token (apply:true)
- `sys_id` (string, required): Record sys_id.
- `table` (string, required): Table, e.g. 'incident'.
- `update_set` (string): In-progress update set (sys_id or exact name) to capture the write in, restored after. Default SN_UPDATE_SET; data rows are never captured.

### `servicenow_list_tables` (~52 tokens)

List ServiceNow tables

List tables from sys_db_object, optionally filtered by a name or label fragment.

Input parameters:

- `filter` (string): Case-insensitive name or label fragment.
- `instance` (string): Profile (default active)

Output parameters:

- `count` (number)
- `tables` (array)

### `servicenow_describe_table` (~86 tokens)

Describe ServiceNow table

List a table's columns from sys_dictionary (name, label, type, mandatory, reference, default, flags). details:true adds choice lists and dictionary overrides.

Input parameters:

- `details` (boolean): Add choice lists and dictionary overrides (two extra reads).
- `instance` (string): Profile (default active)
- `table` (string, required): Table, e.g. 'incident'.

Output parameters:

- `columns` (array)
- `count` (number)
- `table` (string)
- `warnings` (array)

### `servicenow_aggregate` (~185 tokens)

Aggregate ServiceNow records

Server-side aggregates (count, avg, min, max, sum) over a table via the Stats API, optionally grouped.

Input parameters:

- `avg_fields` (array): Numeric fields to average.
- `count` (boolean): Include a count (sysparm_count).
- `displayValue` (boolean): Add display values (sysparm_display_value=all).
- `group_by` (array): Fields to group by.
- `having` (string): HAVING clause (sysparm_having).
- `instance` (string): Profile (default active)
- `max_fields` (array): Fields to take the max of.
- `min_fields` (array): Fields to take the min of.
- `query` (string): Encoded query filtering the rows.
- `sum_fields` (array): Numeric fields to sum.
- `table` (string, required): Table, e.g. 'incident'.

Output parameters:

- `result`

### `servicenow_set_credentials` (~225 tokens)

Set ServiceNow credentials

Save connection credentials to the env file for later requests (any subset; auth / oauth_client_id / oauth_grant pick the method). Secrets are never arguments: list them in request_secrets for elicitation. See 'instance' for host changes.

Input parameters:

- `auth` (string): Stored as SN_AUTH (default: inferred).
- `instance` (string): Instance host, e.g. 'dev12345'. A change needs the new host's auth in the same call (Basic: user + password, else CREDENTIALS_INCOMPLETE) and elicitation confirmation unless SN_ALLOW_UNCONFIRMED_CRED…
- `oauth_client_id` (string): OAuth client id (not a secret).
- `oauth_grant` (string): Stored as SN_OAUTH_GRANT.
- `password` (string): ServiceNow password.
- `profile` (string): Profile (default active); a new name creates one.
- `request_secrets` (array): Secrets to enter through elicitation (never as arguments).
- `user` (string): ServiceNow username.

### `servicenow_list_instances` (~59 tokens)

List connection profiles

List the connection profiles: name, host, user, auth method (and OAuth grant), refresh-token state, read-only flag, write mode, credentials complete. Secrets are never included.

Input parameters:

- `instance` (string): Profile (default active)

Output parameters:

- `count` (number)
- `profiles` (array)

### `servicenow_use_instance` (~69 tokens)

Switch connection profile

Switch the connection profile (over HTTP: this session only unless persist).

Input parameters:

- `instance` (string): Profile (default active)
- `name` (string, required): Profile to activate, e.g. 'dev'.
- `persist` (boolean): Write the env file (journaled; default false).

### `servicenow_explain_policy` (~77 tokens)

Explain ServiceNow access policy

Say whether a table may be read or written under the active policy and which rule decides, or, without a table, return the effective policy. Local; no instance call.

Input parameters:

- `action` (string): Default read.
- `instance` (string): Profile (default active)
- `table` (string): Table to check.

### `servicenow_get_status` (~55 tokens)

Get ServiceNow connection status

Show instance, auth, missing credentials, per-profile write mode, policy, limits, TLS, queue, write counters, version, uptime. Secrets are never shown.

Input parameters:

- `instance` (string): Profile (default active)

Output parameters:

- `activeProfile` (string)
- `allowedTables` (array)
- `authMode` (string)
- `authWarnings` (array)
- `configured` (boolean)
- `deniedPackages` (array)
- `deniedTables` (array)
- `enabledPackages` (array)
- `http` (object)
- `instance` (string)
- `passwordSet` (boolean)
- `pluginApis` (object)
- `policy` (object)
- `profileDetails` (array)
- `profiles` (array)
- `readOnly` (boolean)
- `readOnlyPackages` (array)
- `sdkManaged` (object)
- `server` (object)
- `telemetry` (object)
- `user` (string)
- `writes` (object)

### `servicenow_test_connection` (~53 tokens)

Test ServiceNow connection

Verify the credentials work: reads one sys_user record, reports ok/status/latency. Auth and connectivity problems come back as ok:false, not errors.

Input parameters:

- `instance` (string): Profile (default active)

Output parameters:

- `latencyMs` (number)
- `message` (string)
- `ok` (boolean)
- `status` (number|null)
- `user` (string)

### `servicenow_check_capabilities` (~116 tokens)

Check achievable capabilities

Preflight which sys_* tables are readable and which capabilities work — run it before scripts/flows/codecheck on a governed instance. 'groups' picks matrix probes; results are cached (refresh:true).

Input parameters:

- `groups` (array): Groups to probe (default all), one read-only probe each; update_sets adds canRead / canSet (inferred). The sys_* preflight always runs.
- `instance` (string): Profile (default active)
- `refresh` (boolean): Discard the cache and probe again.

Output parameters:

- `capabilities`
- `degraded` (boolean)
- `matrix`
- `summary` (string)

### `servicenow_list_packages` (~57 tokens)

List tool packages

List tool packages with their session state: enabled, configured, denied, read-only, tool count. Toggle one with servicenow_enable_package / servicenow_disable_package.

Input parameters:

- `instance` (string): Profile (default active)

Output parameters:

- `enabled` (array)
- `packages` (array)

### `servicenow_enable_package` (~72 tokens)

Enable a tool package

Enable a tool package for this session (list_changed is sent). Denied packages are refused; a read-only package brings only its read tools. Ends with the session.

Input parameters:

- `instance` (string): Profile (default active)
- `name` (string, required): Package name, e.g. 'codecheck'.

Output parameters:

- `changed` (boolean)
- `enabled` (boolean)
- `package` (string)
- `prompts` (array)
- `readOnly` (boolean)
- `tools` (array)

### `servicenow_disable_package` (~67 tokens)

Disable a tool package

Disable a tool package for this session: its tools, resources and prompts are withdrawn (list_changed is sent). The admin tools cannot be disabled.

Input parameters:

- `instance` (string): Profile (default active)
- `name` (string, required): Package name, e.g. 'codecheck'.

Output parameters:

- `changed` (boolean)
- `enabled` (boolean)
- `package` (string)
- `prompts` (array)
- `readOnly` (boolean)
- `tools` (array)

### `servicenow_find_tools` (~72 tokens)

Find tools by intent

Search all tool packages, loaded or not, by intent; servicenow_enable_package loads a match's package.

Input parameters:

- `instance` (string): Profile (default active)
- `limit` (integer)
- `query` (string, required): What to do, e.g. 'run an ATF suite'.

Output parameters:

- `matches` (array)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai-2#diagnostics

## Score history

- 2026-11-05: 51
- 2026-11-04: 51
- 2026-11-03: 50
- 2026-11-02: 50
- 2026-11-01: 49
- 2026-10-31: 49
- 2026-10-30: 47

## Common questions

### What is the io.github.IvanBBaev/servicenow-mcp-ai server?

io.github.IvanBBaev/servicenow-mcp-ai is listed in the public MCP registry as io.github.IvanBBaev/servicenow-mcp-ai. ServiceNow MCP server, 100 tools over the full REST surface, every auth method, flows, diagrams. This page covers its MCPB bundle (https://github.com/IvanBBaev/servicenow-mcp-ai/releases/download/v3.1.1/servicenow-mcp-ai-3.1.1.mcpb).

### Is the io.github.IvanBBaev/servicenow-mcp-ai server safe to use?

io.github.IvanBBaev/servicenow-mcp-ai scores 51 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.IvanBBaev/servicenow-mcp-ai server expose?

io.github.IvanBBaev/servicenow-mcp-ai exposes 20 tools: servicenow_query_table, servicenow_get_record, servicenow_create_record, servicenow_update_record, servicenow_upsert_record, and 15 more. Their descriptions and schemas cost roughly 2,605 tokens of context every time the server is loaded.

### What licence is the io.github.IvanBBaev/servicenow-mcp-ai server under?

io.github.IvanBBaev/servicenow-mcp-ai declares the GPL-3.0-or-later licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

### What did VerifyMCP test on the io.github.IvanBBaev/servicenow-mcp-ai server?

VerifyMCP ran 15 checks on io.github.IvanBBaev/servicenow-mcp-ai, covering Known CVEs, Install scripts, Dependency health, Source repository and 11 more. One item could not be completed, a gap on our side rather than a finding about io.github.IvanBBaev/servicenow-mcp-ai: Malware scan. Endpoint Security and Transport & Reachability do not apply to an MCPB bundle, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Repository: https://github.com/IvanBBaev/servicenow-mcp-ai
- Website: https://ivanbbaev.github.io/servicenow-mcp-ai/
- Changelog RSS feed: https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai-2.xml
- Changelog JSON feed: https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai-2/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai-2.json
- HTML version of this page: https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai-2
