ServiceNow MCP Server (windoze95/servicewow-mcp) is an MCP server listed on the M8ven Trust Index. It scores 56 out of 100, grade D. It declares 75 tools. No publisher has claimed this listing.

D
Caution
56/100

ServiceNow MCP Server

Enables authenticated interaction with ServiceNow via its REST API using per-user OAuth 2.0 tokens. It provides tools for managing incidents, tasks, knowledge articles, and service catalog requests while maintaining user-specific permissions.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

windoze95

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Known vulnerabilities in dependencies: 1 critical, 10 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
// tools this server exposes75 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

my_tool_name

What this tool does — be specific for LLM discoverability

search_acls

Search access controls (sys_security_acl) by name, operation, type, and active flag. `name` is the table or table.field the rule protects (e.g. 'incident' or 'incident.state'); `operation` is the action it governs. Use this to find which ACLs gate writing a field — e.g. search name='incident.state',

get_acl

Get one access control (sys_security_acl) by sys_id with its full record — including the `condition` and `script` that gate access and the `admin_overrides` flag — plus the roles that satisfy it from sys_security_acl_role (joined via sys_security_acl → sys_user_role, returned as role names). Use thi

search_catalog_items

Search the service catalog by keyword. Returns items the user has access to.

get_catalog_item

Get full details and form variables for a catalog item.

submit_catalog_request

Submit a request for a catalog item with variable values. Creates the request as the authenticated user.

create_catalog_item

Create a new service catalog item (form container) in ServiceNow.

update_catalog_item

Update fields on an existing catalog item.

create_catalog_variable

Create a form variable (field) on a catalog item.

update_catalog_variable

Update fields on an existing catalog variable.

list_catalog_variables

List variables (form fields) for a catalog item, ordered by display order.

create_variable_choice

Create a choice option for a select box or multiple choice variable.

create_variable_set

Create a reusable variable set that can be attached to multiple catalog items.

attach_variable_set

Attach a variable set to a catalog item via the M2M table.

create_catalog_client_script

Create a client-side script (onChange/onLoad/onSubmit) for a catalog item or variable set.

update_catalog_client_script

Update fields on an existing catalog client script.

create_catalog_ui_policy

Create a UI policy (declarative show/hide/mandatory rules) for a catalog item or variable set.

create_catalog_ui_policy_action

Create a field action within a catalog UI policy (set visible/mandatory/disabled).

search_change_requests

Search for change requests with various filters. Returns a paginated summary list.

get_change_request

Get full details of a specific change request by change number (CHG...) or sys_id.

create_change_request

Create a new change request in ServiceNow. Requires at least a short description.

update_change_request

Update fields on an existing change request. Provide the change number or sys_id and the fields to update.

get_change_request_approvals

Get approval records linked to a change request.

add_change_request_work_note

Add a work note (internal) or comment (customer-visible) to a change request.

search_cis

Search the CMDB (cmdb_ci and every subclass: cmdb_ci_server, cmdb_ci_db_instance, cmdb_ci_appl, …) by class, name, discovery source, install status, and last-discovered date range. This is the workhorse for assessing CMDB shape and data quality. Returns a paginated summary list ordered by most recen

get_ci

Get the full record for one configuration item by sys_id. Fetched from the cmdb_ci parent without a field restriction so every column on the CI's concrete subclass is returned; reference fields (owned_by, managed_by, location, support_group, assignment_group) come back as readable display values.

get_ci_relationships

Read cmdb_rel_ci for a configuration item in both directions: rows where the CI is the parent (parent_of) and rows where it is the child (child_of). Use this to assess dependency-mapping coverage and relationship health for a CI. Returns up to `limit` rows per direction with per-direction truncation

count_cis_by_class

Aggregate the entire CMDB by class via the ServiceNow Aggregate API (/api/now/stats/cmdb_ci grouped by sys_class_name with counts). One call returns the shape of the whole CMDB: a count per CI class sorted by count descending, plus the grand total and number of populated classes.

find_stale_cis

Find migration-skip candidate CIs by one staleness signal at a time: 'not_recently_discovered' (last_discovered older than stale_after_days), 'retired_but_operational' (install_status Retired yet operational_status Operational), or 'missing_assignment_group' (no assignment_group). Run once per reaso

get_ci_ticket_references

Count incident, change_request, and problem records that reference a configuration item (via their cmdb_ci field), with a small sample of the most recent of each. Use this to judge which CIs are actually in use versus safe to skip during a migration.

search_flow_executions

Search Flow Designer execution history (sys_flow_context) — one record per flow, subflow, or action run. Use this to find recent or failed flow runs (e.g. a flow that errored when an incident was created), then drill into a run with get_flow_execution to read its step-by-step log. Returns a paginate

get_flow_execution

Get full details of a single Flow Designer execution (sys_flow_context) by sys_id, including its step-by-step engine log entries from sys_flow_log (oldest first). Use this to diagnose why a specific flow run errored or stalled.

search_ui_policies

Search UI policies (sys_ui_policy) — client-side rules that make form fields mandatory / visible / read-only / cleared when their conditions match. Filter by the table they apply to, description, and active flag. Use get_ui_policy to see the per-field actions and any client scripts. Returns a pagina

get_ui_policy

Get one UI policy (sys_ui_policy) by sys_id with its full record (including the conditions and the script_true / script_false bodies) and its per-field actions from sys_ui_policy_action (each row's field plus its mandatory / visible / disabled (read-only) / cleared settings). This shows exactly what

search_client_scripts

Search client scripts (sys_script_client) — browser-side form logic that runs onLoad, onChange, onSubmit, or onCellEdit and can read/write field values. Filter by table, name, type, active, and a script-body substring. Use get_client_script to read the full script. Returns a paginated summary ordere

get_client_script

Get one client script (sys_script_client) by sys_id, including the full `script` body and its table / type / field. Use after search_client_scripts to read exactly what the script does.

search_data_policies

Search data policies (sys_data_policy2 — the '2' is the real table name) — server-side rules that make fields mandatory or read-only at the data layer (and optionally the UI, when enforce_ui is set). Filter by the table they apply to, description, and active flag. Use get_data_policy to see the per-

get_data_policy

Get one data policy (sys_data_policy2) by sys_id with its full record (including conditions) and its per-field rules from sys_data_policy_rule (each row's field plus its mandatory / disabled (read-only) settings). This shows exactly which fields the policy makes mandatory or read-only.

search_incidents

Search for incidents with various filters. Returns a paginated summary list.

get_incident

Get full details of a specific incident by incident number (INC...) or sys_id.

create_incident

Create a new incident in ServiceNow. Requires at least a short description.

update_incident

Update fields on an existing incident. Provide the incident number or sys_id and the fields to update.

add_work_note

Add a work note (internal) or comment (customer-visible) to an incident.

search_knowledge

Search knowledge base articles by keyword. Returns articles the user has access to.

get_article

Get full details of a knowledge article by sys_id.

search_on_call_shifts

Search on-call shifts (cmn_rota — labeled 'Shift' in the UI), the root record of a group's on-call configuration. Filter by group, name, or active flag. Each row summarizes the shift's coverage schedule reference, schedule engine, reminder settings, whether custom escalation is enabled, and its catc

get_on_call_shift

Get one on-call shift (cmn_rota) by sys_id, expanded into its full rotation structure: the shift record (all fields, including catch-all and reminder settings), its rosters (cmn_rota_roster, in escalation order, with rotation interval/start and the 2024-engine rotation_payload), each roster's ordere

get_on_call_schedule

Get a schedule (cmn_schedule) by sys_id with its entries (cmn_schedule_span: coverage windows with days_of_week, repeat pattern, all_day flag, start/end date-times) and any linked child/excluded schedules (cmn_other_schedule — how holiday calendars are attached). Works for any cmn_schedule: a shift'

get_on_call_escalation_policy

Get the complete escalation design for one on-call shift (cmn_rota) by sys_id: the shift's own catch-all/escalation fields, its escalation sets (cmn_rota_escalation_set, ordered, with conditions — the 2024 schedule engine's policy container), each set's ordered steps (cmn_rota_esc_step_def: escalati

who_is_on_call

Read the current on-call assignments from the v_on_call database view (group / shift / roster / user rows for right now). Optionally filter to one group. CAVEAT: v_on_call is an OOB view over the on-call tables and its visibility depends on the calling user's roles — an empty result can mean nobody

get_user_notification_devices

List a user's notification devices (cmn_notif_device): email, SMS, and voice endpoints plus their service provider, active flag, primary-email marker, and any quiet-hours schedule. This is the per-user contact-method surface that on-call escalation steps and contact preferences deliver to — needed w

search_on_call_trigger_rules

Search On-Call trigger rules (trigger_rule) — the records that launch an assignment/paging workflow when a condition on a task table matches (e.g. 'when incident major_incident_state becomes proposed, run the assign-by-acknowledgement workflow against a group'). This is where incident-driven paging

list_notify_numbers

List Notify (Twilio) phone numbers (notify_number): the provisioned SMS/voice numbers used for telephony-based on-call paging, with their capabilities (SMS/voice in/out), active flag, owning group (notify_group — whose workflows handle inbound replies and outbound calls), and owner. Use this to esta

search_business_rules

Search business rules (sys_script) by the table they run on (collection), name, execution phase (when), active flag, and substrings of the script body or the condition/filter_condition. Use this to find server-side automation that writes or gates on a field — e.g. a rule on 'incident' or 'cmdb_ci_ou

get_business_rule

Get the full record for one business rule (sys_script) by sys_id, including the complete `script` body and the `condition` and `filter_condition` fields. Use this after search_business_rules to read exactly what a rule does.

get_list_view

Read list view column layouts (sys_ui_list) and their ordered columns (sys_ui_list_element). Provide a `sys_id` for one specific layout, or a `table` to return the base list view(s) for that table (e.g. 'incident'). IMPORTANT: this returns which COLUMNS a list shows, not the row filter — a list's fi

search_navigator_modules

Search application navigator modules (sys_app_module) — the menu items in the left-hand nav. For a 'List of Records' module the `filter` field holds the encoded query that scopes the list (this is where a 'Major Incidents' list filter actually lives), the target table is in `name`, and the human lab

search_flow_definitions

Search Flow Designer flow/subflow definitions (sys_hub_flow) by name, active flag, and type. Use this to find a flow by name (e.g. 'Outage created from MIM'), then read what it does with get_flow_definition. This is the flow *design*; for execution history use search_flow_executions instead. Returns

get_flow_definition

Get a Flow Designer flow definition (sys_hub_flow) by sys_id, with its trigger instance(s) and ordered action steps. The flow header gives name/active/type/scope; the triggers reveal what fires the flow (e.g. their table and condition columns); the action instances list the ordered steps with their

get_flow_action_inputs

Expand the configured INPUT VALUES of one Flow Designer action instance (sys_hub_action_instance) by sys_id — the actual field assignments a 'Create Record' / 'Update Record' step makes, not just that it is a Create Record. Reads the pre-Washington store (sys_variable_value rows keyed by document_ke

search_notifications

Search email/notification definitions (sysevent_email_action) — the records under System Notification > Email > Notifications. Filter by name, the event that fires them (event_name, e.g. 'rota.on_call.reminder'), the table they notify about (collection), and active flag. Use this to find what an eve

get_notification

Get one email/notification definition (sysevent_email_action) by sys_id with every field: recipient configuration (recipient_users, recipient_groups, recipient_fields, event_parm_1/event_parm_2 usage), gating condition and advanced-condition script, subject/message body or template reference, weight

search_workflows

Search classic Workflow definitions (wf_workflow — the pre-Flow-Designer engine that still drives things like on-call assign-by-acknowledgement paging). Filter by name or the table the workflow runs on. Classic workflows do NOT appear in search_flow_definitions (that covers sys_hub_flow only); use t

get_workflow

Get one classic Workflow (wf_workflow) by sys_id with its design expanded: the workflow header, its versions (wf_workflow_version — the published one is the live design), and for the published (or, if none, most recent) version the activity nodes (wf_activity: name, activity definition type, stage,

search_scheduled_jobs

Search Scheduled Jobs (sysauto and all subclasses: sysauto_script, sysauto_template, sysauto_report, sysauto_import, etc.). Useful for finding background automations that create or update records on a schedule (e.g. monthly incident generators built as Scheduled Record Generators or Scheduled Script

get_scheduled_job

Get full details of a Scheduled Job (sysauto and all subclasses) by sys_id. Returns all fields for the record's class — including script/condition for sysauto_script and template/table for sysauto_template (Scheduled Record Generators).

get_my_tasks

Get all open tasks assigned to the authenticated user across all task types (incidents, requests, changes, etc.).

get_my_approvals

Get pending approvals for the authenticated user.

approve_or_reject

Approve or reject a pending approval with optional comments.

get_current_update_set

Get the authenticated user's current ServiceNow update set.

change_update_set

Change the authenticated user's current ServiceNow update set by sys_id or name.

create_update_set

Create a new update set in ServiceNow and optionally set it as the current update set.

lookup_user

Search for a ServiceNow user by name, email, or employee ID. Returns user profile information.

lookup_group

Search for a ServiceNow assignment group by name. Returns group details.

get_my_profile

Get the authenticated user's own ServiceNow profile information.

// known CVEs in dependencies1 critical10 high6 medium13 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

criticalvitest@3.2.4GHSA-5xrq-8626-4rwp

When Vitest UI server is listening, arbitrary file can be read and executed

highaxios@1.13.6GHSA-35jp-ww65-95wh

axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `config.proxy`

highaxios@1.13.6GHSA-3g43-6gmg-66jw

axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge

highaxios@1.13.6GHSA-6chq-wfr3-2hj9

Axios: Header Injection via Prototype Pollution

highaxios@1.13.6GHSA-777c-7fjr-54vf

Allocation of Resources Without Limits or Throttling in Axios

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configLOG_LEVEL
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

75/75 tools missing one or more hints — my_tool_name (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search_acls (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_acl (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +72 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Production dependencies are patched

0 critical, 10 high severity in production deps — axios@1.13.6 (high), axios@1.13.6 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Dev dependencies

1 critical/high in dev-only deps (does not ship to users)

Upgrade dev dependencies when convenient.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 5 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/windoze95/servicewow-mcp?variant=verified)](https://m8ven.ai/mcp/windoze95/servicewow-mcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 611d3ba50c97f28499f4fc44b5ecc5930c1c571c
code hash: d35364e0c721da9dca2ad97be94a98268c375df761ee02876e9a1bb1b67cb62f
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client