sn-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sn-mcpList open incidents in ServiceNow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sn-mcp
A Model Context Protocol server that lets an LLM talk to a ServiceNow instance — query records, and (only when you turn it on) write them — without handing the model the keys to the kingdom.
Built for a healthcare context. The bar is: a CISO can read this page and know what the model can and cannot touch.
The problem
LLMs are useful against ServiceNow. They are also one bad prompt away from reading sys_user, dumping a table, or following instructions hidden in a work note.
Most MCP wrappers solve “can the model call the API?” They skip “what happens when it tries something it shouldn’t?”
Related MCP server: ServiceNow MCP Server
Why this exists
The day job is regulated healthcare. I needed an agent that could look at a live instance while I was building — and I would not point a raw API token at that instance.
So the product is not “nine ServiceNow tools.” The product is the safety kernel those tools cannot bypass.
How a call works
LLM
│ stdio (no network, no ports)
▼
sn-mcp
│ 1. Zod validation
│ 2. Table + field allowlist ← default deny
│ 3. Query denylist ← no identity enumeration
│ 4. HTTPS to ServiceNow (10s cap)
│ 5. Error sanitization ← LLM never sees stack traces
│ 6. PHI redaction
│ 7. Response wrapper ← retrieved data is untrusted input
│ 8. Audit log + rate limit
▼
ServiceNowRead tools always go through that path. Write tools add one more gate: BUILDER_MODE is off unless you set it. Idle sessions cannot create, update, delete, or run scripts.
Design decisions
These are the ones a stranger needs. The rest, including what was rejected, live in DECISIONS.md.
Decision | Choice | Why |
Default deny | Only listed tables and fields come back | A miss is a closed door, not an open one |
Writes are opt-in |
| An idle chat cannot change the instance |
Errors fail safe | Unknown error category = no hint to the model | Better a confused model than a leaked schema |
PHI regex is not the primary control | Allowlist is primary; redaction is defense in depth | Regex will miss things. We say that out loud. |
Retrieved data is untrusted | Every SN payload is wrapped and tagged | Stops a work note from becoming an instruction |
Identity fields are denied everywhere | One | Closing |
What this is not: a production connector for a hospital instance. It is built and tested against a developer instance, with Basic auth. OAuth is the gating requirement before it ever sees real PHI.
What it can do
Always on (still subject to the kernel):
Tool | Purpose |
| Query an allowlisted table |
| Fetch one record by |
| Search published knowledge articles |
| Return a count — no rows cross the boundary |
| Is ServiceNow up, and can we write the audit log? |
Off until you opt in:
Tool | Purpose |
| Write to the instance |
| Run server-side JavaScript. Treat it as admin. |
Default allowlist: incident, change_request, problem, sc_request, sc_task, kb_knowledge, alm_hardware, wm_order. Clinical tables, users, scripts, attachments, and email are denied by name.
Run it
git clone https://github.com/dadshorts/sn-mcp.git
cd sn-mcp
npm install
cp .env.example .env # set SN_INSTANCE, SN_USERNAME, SN_PASSWORD
npm test # regression suite against the safety kernel
node src/index.mjs # listens on stdioPoint your MCP client at node src/index.mjs. Credentials stay in .env (gitignored). Leave BUILDER_MODE unset unless you are sitting down to write.
What's verified
Safety kernel + write gate exercised on a live developer instance
Regression suite for allowlist, denylist, wrapping, PHI false-positives, and builder-mode refusals
Audit log written for every tool call, including refusals
Months of local operation while building ServiceNow work
This repo is the server. It does not include instance credentials, audit logs, or production data.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceProvides AI assistants with read access to ServiceNow instances to aid in building and debugging applications. It enables users to query tables, retrieve specific records, and inspect table schemas using standard ServiceNow encoded query strings.
- Alicense-qualityDmaintenanceEnables 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.344MIT
- Alicense-qualityDmaintenanceEnables Claude to interact with ServiceNow instances through the ServiceNow API, allowing data retrieval, record management, and workflow execution. Supports multiple authentication methods and tool packaging for role-based access control.MIT
- Alicense-qualityBmaintenanceEnables interaction with ServiceNow ITSM through browser-based SSO authentication, providing 80+ tools for incidents, changes, catalog, CMDB, and more via natural language.34MIT
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Runtime permission, approval, and audit layer for AI agent tool execution.
The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dadshorts/sn-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server