Don't script your AI. Arm it.

Tell your AI what you need in plain language. MCP Skills handle the rest.

mfa-servicenow-mcp

Just paste this. That's it.

Copy the line below into any AI coding assistant.
It installs everything — uv, Playwright, MCP config, and skills — automatically.

Install and configure mfa-servicenow-mcp by following the instructions here:
curl -s https://raw.githubusercontent.com/jshsakura/mfa-servicenow-mcp/main/docs/llm-setup.md

Works with Claude Code, Cursor, Codex, OpenCode, Windsurf, VS Code Copilot, Antigravity, Zed, and more.
Your AI detects the client and OS, then walks you through setup interactively.
After setup, restart your AI client to load the MCP server.

If uvx is blocked by corporate security tooling, jump to the If uvx is blocked (pip) section below.

Install, then add to your client config

Prefer the terminal? Install uv + Chromium, then add the server to your MCP client config file (snippets below). No installer command, no per-client flags.

# 1. Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Fetch the server + Chromium up front (so the first browser-auth call
#    doesn't download ~150 MB and time out)
uvx --refresh --with playwright --from mfa-servicenow-mcp servicenow-mcp --version
uvx --with playwright playwright install chromium

# 3. Add the server to your MCP client config — copy a snippet below
# 1. Install uv (if not already installed)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 2. Fetch the server + Chromium up front (so the first browser-auth call
#    doesn't download ~150 MB and time out)
uvx --refresh --with playwright --from mfa-servicenow-mcp servicenow-mcp --version
uvx --with playwright playwright install chromium

# 3. Add the server to your MCP client config — copy a snippet below

Install with pip instead

Windows Smart App Control blocks uvx, because uvx unpacks an unsigned temporary executable on every run. If uvx worked until recently and stopped right after a Windows update, this is why. Install with pip and launch the server as a module — the servicenow-mcp console script is an unsigned pip-generated .exe shim that Smart App Control blocks for the same reason.

# Homebrew and distro Pythons refuse global pip installs (PEP 668).
# Use a python.org Python, or simply stay on uvx above.
pip install mfa-servicenow-mcp playwright
python -m playwright install chromium

# Verify:
python -m servicenow_mcp --version

# Updating later:
pip install --upgrade mfa-servicenow-mcp playwright
python -m playwright install chromium
# Python 3.10+ from python.org is signed and passes Smart App Control.
pip install mfa-servicenow-mcp playwright
python -m playwright install chromium

# Verify:
python -m servicenow_mcp --version

# Updating later:
pip install --upgrade mfa-servicenow-mcp playwright
python -m playwright install chromium

The env block is identical either way — only command and args change. Paste the snippet from the Manual fallback section below, then set command to python and args to ["-m", "servicenow_mcp"].

Repair or inspect client config manually

The installer is the recommended path. Use the raw config examples below only if you need to inspect or repair a client config by hand.

Four distinct shapes cover every supported client. The env block is identical everywhere — only the outer wrapper differs.

{
  "mcpServers": {
    "servicenow": {
      "command": "uvx",
      "args": ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"],
      "env": {
        "SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
        "SERVICENOW_AUTH_TYPE": "browser",
        "SERVICENOW_BROWSER_HEADLESS": "false",
        "SERVICENOW_USERNAME": "your-username",
        "SERVICENOW_PASSWORD": "your-password"
      }
    }
  }
}
{
  "servicenow": {
    "command": "uvx",
    "args": ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"],
    "env": {
      "SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
      "SERVICENOW_AUTH_TYPE": "browser",
      "SERVICENOW_BROWSER_HEADLESS": "false",
      "SERVICENOW_USERNAME": "your-username",
      "SERVICENOW_PASSWORD": "your-password"
    }
  }
}
[mcp_servers.servicenow]
command = "uvx"
args = ["--with", "playwright", "--from", "mfa-servicenow-mcp", "servicenow-mcp"]
enabled = true

[mcp_servers.servicenow.env]
SERVICENOW_INSTANCE_URL = "https://your-instance.service-now.com"
SERVICENOW_AUTH_TYPE = "browser"
SERVICENOW_BROWSER_HEADLESS = "false"
SERVICENOW_USERNAME = "your-username"
SERVICENOW_PASSWORD = "your-password"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "servicenow": {
      "type": "local",
      "command": [
        "uvx", "--with", "playwright",
        "--from", "mfa-servicenow-mcp", "servicenow-mcp"
      ],
      "enabled": true,
      "environment": {
        "SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
        "SERVICENOW_AUTH_TYPE": "browser",
        "SERVICENOW_BROWSER_HEADLESS": "false",
        "SERVICENOW_USERNAME": "your-username",
        "SERVICENOW_PASSWORD": "your-password"
      }
    }
  }
}

The read-only standard package loads by default — no MCP_TOOL_PACKAGE needed. For write access, set it to an advanced package (service_desk, portal_developer, platform_developer, or full) — see the Tool Packages (Advanced) guide.

Add LLM-optimized skills

Tools alone are raw API calls. Skills are what make your LLM actually useful — verified pipelines with safety gates, rollback, and context-aware delegation. 4 skills today, more coming with every release.

uvx --from mfa-servicenow-mcp servicenow-mcp-skills claude
uvx --from mfa-servicenow-mcp servicenow-mcp-skills codex
uvx --from mfa-servicenow-mcp servicenow-mcp-skills opencode
uvx --from mfa-servicenow-mcp servicenow-mcp-skills antigravity

🔍 analyze/

1 skill — local source audit: cross-references, dead code, execution order, HTML report

🧭 explore/

1 skill — flow trigger tracing: which workflows/flows fire when a table changes

📦 manage/

2 skills — app source download, local sync (diff → push with conflict detection)

Always run the latest version

uvx caches the last downloaded version — it does not auto-update.
Upgrade via uv to get the latest release:

uvx --refresh --from mfa-servicenow-mcp servicenow-mcp --version

Then restart your MCP client (Claude Code, Cursor, etc.) to load the new version.

66 Registered Tools
MFA Native Support
3 Skill Categories
0 Credentials Shared

Three steps to production

No API keys to configure, no passwords in config files. Authenticate once through your browser, and your AI agent inherits a live session.

1

Install

One command with uvx sets everything up. Zero config.

2

Authenticate

A real browser opens for MFA, SSO, SAML — whatever your org requires.

3

Connect

Point Claude, Cursor, Zed, or any MCP client. 66 registered tools load through active package profiles.


Built for the enterprise

Everything you need to bridge AI agents and ServiceNow securely at scale.

🔒 Zero-Trust Security

Browser-based auth means credentials never leave your machine. Supports MFA, SSO, SAML, and any login flow your org uses.

⚡ Token-Efficient Performance

Lazy tool discovery, package-scoped schemas, compact JSON, response caching, and batched reads keep startup and LLM context cost under control.

🧩 Safe Data Comparison

Optional named instances are limited to read-only dev/test drift checks. Ordinary tools stay pinned to one active instance.

🤖 Broad Client Support

Works with Claude, Codex, Cursor, Zed, Antigravity, OpenCode, Windsurf, VS Code Copilot, and MCP clients over stdio or Streamable HTTP.


Ready to connect your AI to ServiceNow?

Get set up in under five minutes with our step-by-step guide.

Read the Setup Guide