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

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

- Trust score: 82/100 (high trust)
- Change this week: +29
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `servicenow-mcp-ai`: 82/100 (this document), [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: `npm`
- Package: `servicenow-mcp-ai`
- Version: `2.0.1`
- Transport: `stdio`

## 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-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to IvanBBaev/servicenow-mcp-ai).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 37 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 88/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 2211 tokens (~100/item across 22 items; 19 tools + 3 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 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).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (11% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add ivanbbaev-servicenow-mcp-ai -- npx -y servicenow-mcp-ai
```

### Codex

```bash
codex mcp add ivanbbaev-servicenow-mcp-ai -- npx -y servicenow-mcp-ai
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ivanbbaev-servicenow-mcp-ai": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "servicenow-mcp-ai"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ivanbbaev-servicenow-mcp-ai --command npx --arg -y --arg servicenow-mcp-ai
```

### Hermes

```yaml
mcp_servers:
  ivanbbaev-servicenow-mcp-ai:
    command: "npx"
    args: ["-y", "servicenow-mcp-ai"]
```

### Other

```json
{
  "mcpServers": {
    "ivanbbaev-servicenow-mcp-ai": {
      "command": "npx",
      "args": [
        "-y",
        "servicenow-mcp-ai"
      ]
    }
  }
}
```

## 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-08-02 (score 82, +74)

- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Provenance: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] The attested source repository moved: IvanBBaev/servicenow-mcp-ai
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100
- [functional] Licence: MIT

### 2026-08-01 (score 8, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 6, −47)

- [security regression] Malware scan: pass → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-07-30 (score 53, +29)

- [functional improvement] Schema quality: unverified → 100
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-28 (score 24, −29)

- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-07-27 (score 53)

First indexed and scored.

## MCP tools (19)

### `servicenow_query_table` (~246 tokens)

Query ServiceNow table

Read records from any ServiceNow table through the Table API. Supports encoded queries, field selection and pagination.

Input parameters:

- `displayValue` (string): Return display values ('true'), raw values ('false', default) or both ('all').
- `fetchAll` (boolean): When true, page through all matching records (up to the server's SN_MAX_RECORDS cap) instead of a single page.
- `fields` (array): Columns to return. Omit to return all columns.
- `format` (string): Output format: 'json' (default), or 'csv' for a spreadsheet-friendly export.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `limit` (integer): Maximum number of records to return (default 10).
- `offset` (integer): Number of records to skip, for pagination.
- `query` (string): Encoded query (sysparm_query), e.g. 'active=true^priority=1^ORDERBYDESCsys_created_on'.
- `table` (string, required): Table name, e.g. 'incident', 'sys_user', 'change_request'.

### `servicenow_get_record` (~98 tokens)

Get ServiceNow record

Read a single record from a table by its sys_id.

Input parameters:

- `fields` (array): Columns to return. Omit to return all columns.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `sys_id` (string, required): The sys_id of the record to read.
- `table` (string, required): Table name, e.g. 'incident'.

### `servicenow_create_record` (~146 tokens)

Create ServiceNow record

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

Input parameters:

- `apply` (boolean): Execute the change. In the default plan mode, omitting this returns a non-mutating before/after preview; set true to apply. SN_WRITE_MODE=apply makes execution the default.
- `fields` (object, required): Field name/value pairs for the new record, e.g. { "short_description": "Printer down", "urgency": "2" }.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `table` (string, required): Table name, e.g. 'incident'.

### `servicenow_update_record` (~141 tokens)

Update ServiceNow record

Update fields on an existing record identified by its sys_id.

Input parameters:

- `apply` (boolean): Execute the change. In the default plan mode, omitting this returns a non-mutating before/after preview; set true to apply. SN_WRITE_MODE=apply makes execution the default.
- `fields` (object, required): Field name/value pairs to change on the record.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `sys_id` (string, required): The sys_id of the record to update.
- `table` (string, required): Table name, e.g. 'incident'.

### `servicenow_delete_record` (~124 tokens)

Delete ServiceNow record

Delete a record from a table by its sys_id.

Input parameters:

- `apply` (boolean): Execute the change. In the default plan mode, omitting this returns a non-mutating before/after preview; set true to apply. SN_WRITE_MODE=apply makes execution the default.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `sys_id` (string, required): The sys_id of the record to delete.
- `table` (string, required): Table name, e.g. 'incident'.

### `servicenow_list_tables` (~71 tokens)

List ServiceNow tables

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

Input parameters:

- `filter` (string): Case-insensitive fragment to match in name or label.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.

### `servicenow_describe_table` (~76 tokens)

Describe ServiceNow table

List a table's columns (name, label, type, mandatory, reference) from sys_dictionary.

Input parameters:

- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `table` (string, required): Table name to describe, e.g. 'incident'.

### `servicenow_aggregate` (~199 tokens)

Aggregate ServiceNow records

Compute server-side aggregates (count, avg, min, max, sum) over a table via the Stats API, with optional grouping. Avoids pulling individual rows.

Input parameters:

- `avg_fields` (array): Numeric fields to average.
- `count` (boolean): Include a record count (sysparm_count).
- `group_by` (array): Fields to group by.
- `having` (string): HAVING clause to filter groups (sysparm_having).
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `max_fields` (array): Fields to take the maximum of.
- `min_fields` (array): Fields to take the minimum of.
- `query` (string): Encoded query to filter rows before aggregating.
- `sum_fields` (array): Numeric fields to sum.
- `table` (string, required): Table name, e.g. 'incident'.

### `servicenow_list_attachments` (~90 tokens)

List ServiceNow attachments

List attachment metadata, optionally scoped to a specific record (table + sys_id).

Input parameters:

- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `sys_id` (string): sys_id of the record whose attachments to list.
- `table` (string): Table the record belongs to, e.g. 'incident'.

### `servicenow_get_attachment` (~65 tokens)

Get ServiceNow attachment metadata

Read a single attachment's metadata by its sys_id.

Input parameters:

- `attachment_sys_id` (string, required): The sys_id of the attachment record.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.

### `servicenow_download_attachment` (~78 tokens)

Download ServiceNow attachment

Download an attachment's bytes, returned as base64. Large files are refused (see SN_MAX_RESULT_CHARS).

Input parameters:

- `attachment_sys_id` (string, required): The sys_id of the attachment to download.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.

### `servicenow_upload_attachment` (~187 tokens)

Upload ServiceNow attachment

Attach a file (provided as base64) to a record identified by table + sys_id.

Input parameters:

- `apply` (boolean): Execute the change. In the default plan mode, omitting this returns a non-mutating before/after preview; set true to apply. SN_WRITE_MODE=apply makes execution the default.
- `content_base64` (string, required): File contents, base64-encoded.
- `content_type` (string): MIME type, e.g. 'text/plain'. Defaults to octet-stream.
- `file_name` (string, required): File name to store, e.g. 'log.txt'.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `sys_id` (string, required): sys_id of the record to attach to.
- `table` (string, required): Table the record belongs to.

### `servicenow_delete_attachment` (~107 tokens)

Delete ServiceNow attachment

Delete an attachment by its sys_id.

Input parameters:

- `apply` (boolean): Execute the change. In the default plan mode, omitting this returns a non-mutating before/after preview; set true to apply. SN_WRITE_MODE=apply makes execution the default.
- `attachment_sys_id` (string, required): The sys_id of the attachment to delete.
- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.

### `servicenow_set_credentials` (~112 tokens)

Set ServiceNow credentials

Save or update the ServiceNow connection credentials. Values are persisted to the env file and used for all subsequent requests. Provide any subset of fields.

Input parameters:

- `instance` (string): Instance host, e.g. 'dev12345' or 'dev12345.service-now.com'.
- `password` (string): ServiceNow password.
- `profile` (string): Connection profile to write (default: the active one). Use a new name to create a profile.
- `user` (string): ServiceNow username.

### `servicenow_list_instances` (~69 tokens)

List connection profiles

List the configured ServiceNow connection profiles (instances): name, host, user, read-only flag and whether credentials are complete. Passwords are never included.

Input parameters:

- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.

### `servicenow_use_instance` (~90 tokens)

Switch connection profile

Switch the active ServiceNow connection profile (persisted to the env file). All identity-scoped caches (OAuth tokens, schema, plugin availability) are cleared.

Input parameters:

- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.
- `name` (string, required): Profile to activate, e.g. 'default' or 'dev'.

### `servicenow_get_status` (~63 tokens)

Get ServiceNow connection status

Show the configured instance, user, auth mode and access policy, and whether credentials are complete. The password is never revealed.

Input parameters:

- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.

Output parameters:

- `activeProfile` (string)
- `allowedTables` (array)
- `authMode` (string)
- `configured` (boolean)
- `deniedPackages` (array)
- `deniedTables` (array)
- `enabledPackages` (array)
- `instance` (string)
- `passwordSet` (boolean)
- `pluginApis` (object)
- `profiles` (array)
- `readOnly` (boolean)
- `readOnlyPackages` (array)
- `telemetry` (object)
- `user` (string)

### `servicenow_test_connection` (~75 tokens)

Test ServiceNow connection

Verify that the configured credentials actually work: reads one sys_user record and reports ok/status/latency. Auth and connectivity problems are returned structurally (ok:false), not as errors.

Input parameters:

- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.

Output parameters:

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

### `servicenow_check_capabilities` (~105 tokens)

Check achievable capabilities

Preflight which admin-restricted sys_* tables the connected user can actually read, and report which higher-level capabilities (schema reads, script intelligence, ACL audit) are achievable. Run this before relying on the scripts/flows/codecheck tools on a governed instance — on a least-privilege account those reads may be silently empty.

Input parameters:

- `instance` (string): Connection profile to use for this call (default: the active profile). See servicenow_list_instances.

## Diagnostics

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

## Score history

- 2026-08-03: 82
- 2026-08-02: 82
- 2026-08-01: 8
- 2026-07-31: 6
- 2026-07-30: 53
- 2026-07-28: 24
- 2026-07-27: 53

## Links

- npm package: https://www.npmjs.com/package/servicenow-mcp-ai
- Socket report: https://socket.dev/npm/package/servicenow-mcp-ai
- Repository: https://github.com/IvanBBaev/servicenow-mcp-ai
- Changelog RSS feed: https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ivanbbaev-servicenow-mcp-ai/servicenow-mcp-ai
