npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

servicenow-browser-mcp-local

v0.1.4

Published

A security-focused, read-only local MCP launcher for browser-authenticated ServiceNow instances.

Downloads

519

Readme

ServiceNow Browser MCP Local

A local, read-only MCP launcher for ServiceNow instances that require an interactive enterprise SSO or MFA login.

The launcher prefers an existing Google Chrome installation, then Microsoft Edge, and only uses Playwright Chromium when the user explicitly installs that fallback. Browser cookies and session state remain on the current user's computer in a private, instance-scoped profile.

Security model

  • The MCP exposes only health, query, aggregate, schema, discovery and URL resolution tools. It does not expose create, update, delete or script tools.
  • No password, OAuth client secret, API key, cookie, browser profile or registry token is bundled in this package or sent through npm.
  • The initial ServiceNow URL must use HTTPS.
  • MCP transport is local stdio. This launcher does not open a listening port.
  • The npm package has no runtime npm dependencies and no install, prepare or publish lifecycle hooks. Its published files are controlled by an exact allowlist and scanned before release.
  • The runtime uses exact, hash-locked Python dependencies. Setup ignores ambient uv configuration, uses the operating system certificate store, and accepts only the pinned uv version.
  • Automatic setup is an explicit client choice via --auto-setup; npm install lifecycle hooks remain forbidden. Without that flag, a normal MCP session never downloads software. After setup, the content-addressed runtime is reused without downloading it again.
  • Ambient .env loading and the upstream online update check are disabled. Routine upstream authentication diagnostics are filtered below Warning so cookie and token prefixes are not retained in normal MCP client logs.
  • The browser uses a dedicated profile. Do not point it at a normal Chrome or Edge user profile.

The ServiceNow permissions of the signed-in person still apply. “Read-only” means this launcher does not expose mutation tools; query results can still contain data that the signed-in person is allowed to read. Protect the local browser profile as you would protect an authenticated browser session.

Quick start

Node.js 20 or newer and system Chrome or Edge are recommended. Put --auto-setup in the MCP client configuration so a separate setup command is not required:

{
  "mcpServers": {
    "servicenow": {
      "command": "npx",
      "args": [
        "--yes",
        "--registry=https://registry.npmjs.org/",
        "[email protected]",
        "--auto-setup"
      ],
      "env": {
        "SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
        "SERVICENOW_BROWSER_LOGIN_URL": "https://your-instance.service-now.com/login.do",
        "SERVICENOW_BROWSER_PROVIDER": "auto"
      }
    }
  }
}

Replace the two example URLs with your ServiceNow instance and its login entry point. The login URL is optional, but when supplied it must use the same HTTPS origin as the instance URL. Pin the exact package version rather than latest.

The first start downloads the pinned runtime and can take several minutes. Later starts reuse it. The first MCP call that needs ServiceNow may then open the isolated browser profile for interactive SSO/MFA. Complete login in that window; the session remains local to that user and is reused until it expires.

Some clients, including Qoder Work, support a startup timeout extension. A five-minute timeout is useful for the first start:

{
  "timeout": 300,
  "enabled": true
}

These two fields are client-specific and should be placed next to command, args and env only when the client supports them.

Managed setup and diagnostics

Administrators can pre-provision or diagnose the runtime explicitly:

SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com \
  npx --yes --registry=https://registry.npmjs.org/ \
  [email protected] setup
SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com \
  npx --yes --registry=https://registry.npmjs.org/ \
  [email protected] doctor

Both setup and --auto-setup obtain the pinned runtime and verify its lock. Neither installs a browser when system Chrome or Edge is available. Use setup --with-chromium only when neither browser is available or enterprise browser policy prevents automation. First-time setup needs network access to retrieve the pinned uv, Python and Python packages when they are not already cached. npx itself also contacts the selected npm registry to obtain the exact package version.

The managed uv bootstrap uses a 30-second connection/transfer-stall timeout, a five-minute safety limit per attempt and at most three attempts for transient network or server failures. Every successful download is restricted to HTTPS, capped at 50 MiB and checked against the pinned SHA-256 before it can be installed. Partial downloads are removed before a retry. Linux currently requires glibc; Alpine/musl is not supported by this package version.

If an enterprise network requires an explicit proxy that the local Node.js runtime cannot use, install the exact uv 0.11.29 through an approved company channel and set SERVICENOW_MCP_UV_PATH to that absolute executable path. Setup rejects every other uv version.

Supported browser providers are auto, chrome, msedge and chromium; an advanced deployment may also set an absolute SERVICENOW_BROWSER_EXECUTABLE_PATH.

Commands

  • --auto-setup prepares the runtime when needed, then starts stdio.
  • setup prepares the pinned Python runtime.
  • setup --with-chromium also installs the matching Playwright Chromium.
  • doctor performs local, read-only checks without contacting ServiceNow.
  • stdio, or no command, starts the stdio MCP server.

This is an independent compatibility launcher, not an official ServiceNow MCP and not affiliated with ServiceNow, Microsoft or Google.