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 Local install (release zip) 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 from the release zip

Use this when uvx or PyPI is blocked. The release zip ships a PyInstaller-built single-file executable — no Python required, no installer script. Grab the platform zip (and optionally the matching ms-playwright-chromium zip if Chromium download is blocked too) from GitHub Releases, extract it, and point your MCP client's command at the executable.

# 1. Pick a stable folder you control. Extract both zips UP FRONT —
#    don't leave .zip files alongside the executable. The Chromium
#    folder name just has to start with ms-play and hold chromium-*:
#
#    ~/apps/servicenow-mcp/                              (any directory)
#    ├── servicenow-mcp                                  ← executable
#    └── ms-playwright-chromium-linux-x64-<ver>/         ← default name works
#        └── chromium-1185/
#
# 2. At startup the executable globs for a sibling ms-play* directory
#    with a chromium-* inside and points Playwright at it. The system
#    standard cache (~/.cache/ms-playwright) and your MCP client config
#    stay untouched.
# 3. Verify the binary runs:
~/apps/servicenow-mcp/servicenow-mcp --version

# 4. Paste the MCP config snippet from "Manual fallback" below into
#    your client config and set 'command' to:
#       ~/apps/servicenow-mcp/servicenow-mcp
# Then restart your MCP client.
# 1. Pick a stable folder you control. Extract both zips UP FRONT —
#    don't leave .zip files alongside the executable. The Chromium
#    folder name just has to start with ms-play and hold chromium-*:
#
#    C:\Users\you\apps\servicenow-mcp\
#    ├── servicenow-mcp.exe                              ← executable
#    └── ms-playwright-chromium-windows-x64-<ver>\       ← default name works
#        └── chromium-1185\
#
# 2. At startup the executable globs for a sibling ms-play* directory
#    with a chromium-* inside and points Playwright at it. The system
#    standard cache (%LOCALAPPDATA%\ms-playwright) and your MCP client
#    config stay untouched.
# 3. Verify the binary runs:
& "$HOME\apps\servicenow-mcp\servicenow-mcp.exe" --version

# 4. Paste the MCP config snippet from "Manual fallback" below into
#    your client config and set 'command' to:
#       C:/Users/you/apps/servicenow-mcp/servicenow-mcp.exe
# Then restart your MCP client.

No installer script. You unzip the executable into any stable folder you control, extract the Chromium zip into a sibling folder named ms-playwright, and the executable auto-detects that layout at startup — pointing Playwright at it via PLAYWRIGHT_BROWSERS_PATH for the current process only. The system standard Playwright cache (~/.cache/ms-playwright, %LOCALAPPDATA%\ms-playwright) stays untouched, and your MCP client config is yours to edit — paste the snippet from the Manual fallback section below and set command to the absolute path of the executable.

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. 16 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/

5 skills — widget analysis, portal diagnosis, local source audit, provider audit, ESC page audit

🔧 fix/

3 skills — widget patching with staged safety gates, debugging, code review

📦 manage/

5 skills — app source download, changeset workflow, local sync, workflow management, skill management

🚀 deploy/

1 skill — change request lifecycle

🧭 explore/

2 skills — flow trigger tracing, ESC catalog flow

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.

70 Registered Tools
MFA Native Support
5 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. 70 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