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.
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
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
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.
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_nameWhat this tool does — be specific for LLM discoverability
search_aclsSearch 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_aclGet 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_itemsSearch the service catalog by keyword. Returns items the user has access to.
get_catalog_itemGet full details and form variables for a catalog item.
submit_catalog_requestSubmit a request for a catalog item with variable values. Creates the request as the authenticated user.
create_catalog_itemCreate a new service catalog item (form container) in ServiceNow.
update_catalog_itemUpdate fields on an existing catalog item.
create_catalog_variableCreate a form variable (field) on a catalog item.
update_catalog_variableUpdate fields on an existing catalog variable.
list_catalog_variablesList variables (form fields) for a catalog item, ordered by display order.
create_variable_choiceCreate a choice option for a select box or multiple choice variable.
create_variable_setCreate a reusable variable set that can be attached to multiple catalog items.
attach_variable_setAttach a variable set to a catalog item via the M2M table.
create_catalog_client_scriptCreate a client-side script (onChange/onLoad/onSubmit) for a catalog item or variable set.
update_catalog_client_scriptUpdate fields on an existing catalog client script.
create_catalog_ui_policyCreate a UI policy (declarative show/hide/mandatory rules) for a catalog item or variable set.
create_catalog_ui_policy_actionCreate a field action within a catalog UI policy (set visible/mandatory/disabled).
search_change_requestsSearch for change requests with various filters. Returns a paginated summary list.
get_change_requestGet full details of a specific change request by change number (CHG...) or sys_id.
create_change_requestCreate a new change request in ServiceNow. Requires at least a short description.
update_change_requestUpdate fields on an existing change request. Provide the change number or sys_id and the fields to update.
get_change_request_approvalsGet approval records linked to a change request.
add_change_request_work_noteAdd a work note (internal) or comment (customer-visible) to a change request.
search_cisSearch 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_ciGet 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_relationshipsRead 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_classAggregate 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_cisFind 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_referencesCount 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_executionsSearch 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_executionGet 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_policiesSearch 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_policyGet 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_scriptsSearch 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_scriptGet 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_policiesSearch 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_policyGet 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_incidentsSearch for incidents with various filters. Returns a paginated summary list.
get_incidentGet full details of a specific incident by incident number (INC...) or sys_id.
create_incidentCreate a new incident in ServiceNow. Requires at least a short description.
update_incidentUpdate fields on an existing incident. Provide the incident number or sys_id and the fields to update.
add_work_noteAdd a work note (internal) or comment (customer-visible) to an incident.
search_knowledgeSearch knowledge base articles by keyword. Returns articles the user has access to.
get_articleGet full details of a knowledge article by sys_id.
search_on_call_shiftsSearch 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_shiftGet 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_scheduleGet 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_policyGet 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_callRead 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_devicesList 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_rulesSearch 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_numbersList 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_rulesSearch 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_ruleGet 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_viewRead 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_modulesSearch 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_definitionsSearch 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_definitionGet 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_inputsExpand 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_notificationsSearch 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_notificationGet 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_workflowsSearch 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_workflowGet 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_jobsSearch 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_jobGet 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_tasksGet all open tasks assigned to the authenticated user across all task types (incidents, requests, changes, etc.).
get_my_approvalsGet pending approvals for the authenticated user.
approve_or_rejectApprove or reject a pending approval with optional comments.
get_current_update_setGet the authenticated user's current ServiceNow update set.
change_update_setChange the authenticated user's current ServiceNow update set by sys_id or name.
create_update_setCreate a new update set in ServiceNow and optionally set it as the current update set.
lookup_userSearch for a ServiceNow user by name, email, or employee ID. Returns user profile information.
lookup_groupSearch for a ServiceNow assignment group by name. Returns group details.
get_my_profileGet the authenticated user's own ServiceNow profile information.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
When Vitest UI server is listening, arbitrary file can be read and executed
axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `config.proxy`
axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
Axios: Header Injection via Prototype Pollution
Allocation of Resources Without Limits or Throttling in Axios
LOG_LEVELTool 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.
[](https://m8ven.ai/mcp/windoze95/servicewow-mcp)?variant=verified from the URL.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