simple-servicenow-mcp
An MCP server that lets Claude, Cursor or any MCP client review a ServiceNow instance: upgrade readiness, missing ACLs, risky scripts and update sets. It is read-only by default, and it can also read and write records like any other ServiceNow MCP.
What it finds
Run against ServiceNow's own sn_publications plugin, as shipped on a developer
instance, upgrade_readiness_review returns:
| Severity | Finding | Where |
|---|---|---|
| 🔴 blocking | DOM access: document.URL.parseQuery() |
Client script Hide Accounts Type, line 2 |
| 🟠 risk | current.update() inside a business rule |
Business rule Update State for File Upload, line 5 |
| 🟠 risk | Hardcoded sys_id | Script include RecipientsListApi, line 168 |
Verdict: red, 40 scripts scanned. Each finding also carries the evidence and
a recommended fix. audit_acls does the same for tables that no ACL protects,
and summarize_update_set flags deletes and changes to security-sensitive tables
before you promote.
Quick start
-
No instance to try it on? Get a free Personal Developer Instance.
-
Add the server to your MCP client. For Claude Desktop or Cursor:
{ "mcpServers": { "servicenow": { "command": "uvx", "args": ["simple-servicenow-mcp"], "env": { "SN_INSTANCE_URL": "https://your-instance.service-now.com", "SN_USERNAME": "your-user", "SN_PASSWORD": "your-password" } } } }
For Claude Code:
claude mcp add servicenow \ -e SN_INSTANCE_URL=https://your-instance.service-now.com \ -e SN_USERNAME=your-user -e SN_PASSWORD=your-password \ -- uvx simple-servicenow-mcp
-
Restart the client and ask a question.
The server starts read-only; add --read-write to args to let it change
records. Beyond a PDI, use a dedicated low-privilege user or OAuth browser login
(SSO and MFA work): see
Authentication.
VS Code, Docker and other setups are in
Configuration.
Ask things like
- "Is the x_acme_hr scope ready for the next upgrade? What would block it?"
- "Which tables in x_acme_hr have no ACLs of their own?"
- "Review the 'Sprint 42' update set before we promote it."
- "Triage INC0010047 and suggest the next step."
- "Audit the Hardware catalog items for UX problems."
What's included
| Package | Covers | Loaded by default |
|---|---|---|
audit |
Upgrade readiness, missing ACLs, scope audits | ✓ |
core |
Any table: read, search, count, aggregate, describe schema, write | ✓ |
itsm |
Incidents, including a one-call triage bundle | ✓ |
scripts |
Business rules, script includes, client scripts, UI policies and actions | ✓ |
catalog |
Catalog items, variables, UX analysis | ✓ |
cmdb |
Configuration items and relationships | |
knowledge |
Knowledge articles | |
attachment |
Attachments on any record | |
update_set |
Update sets, their changes, and a risk summary |
Set SN_TOOL_PACKAGES=all for everything. There are also prompts for
multi-step reviews (upgrade readiness, update-set promotion, incident blast
radius, cross-instance drift, knowledge gaps) and resources for instance
info, health, table schema and app scope. Details are in the
Tool reference.
Safety
- Read-only by default. Tools that change data refuse until you start the
server with
--read-write. - Deletes need confirmation. Without
confirm=true,delete_recordanddelete_attachmentonly return a preview. - Writes are checked. Field names are validated against the table's schema, including inherited fields, before anything is sent.
- Every tool is annotated as read, write or destructive, so clients can ask before running the risky ones.
Documentation
- Configuration: install, client setup, environment variables, tool packages, multiple instances, transports
- Authentication: basic, OAuth client credentials, browser login with SSO
- Tool reference: every tool, prompt and resource
- Contributing · Security policy · Changelog
License
MIT. Built on the MCP Python SDK.
Release files for simple-servicenow-mcp 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simple_servicenow_mcp-0.2.2.tar.gz | 116.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_servicenow_mcp-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 187.0 kB
Release files / simple_servicenow_mcp-0.2.2.tar.gz
| Download URL | simple_servicenow_mcp-0.2.2.tar.gz |
|---|---|
| Size | 116.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
87ff4a76a0d63593fcdf7e48e11398144f35e94b9974dd3bc16fec2bae3c0c8d
|
|
BLAKE2b-256 checksum How to use checksums |
7d1781a203c9a0acee476dab1ca4fd30edb105e3d73d91988764783b433168a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / simple_servicenow_mcp-0.2.2-py3-none-any.whl
| Download URL | simple_servicenow_mcp-0.2.2-py3-none-any.whl |
|---|---|
| Size | 70.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
34f9de5ba35b0e67f940e7833798f32ce34acfb8a7801a20d833cda40aa1e03b
|
|
BLAKE2b-256 checksum How to use checksums |
34c1d7f7b7a84c45b145f58b43aa73b4580e6be808ae51869414c08c531d6854
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log