Skip to main content

A Model Context Protocol (MCP) server implementation for ServiceNow

Project description

ServiceNow MCP Server

English | 한국어

ServiceNow MCP server with browser-based authentication for MFA/SSO environments. It is designed for direct use from MCP clients such as Claude Desktop, OpenCode, Gemini Code Assist, and similar local MCP hosts.

Python Version PyPI version

Quick Start

Most users do not need to clone this repository. If you have uv, you can register the server directly in your MCP client.

Claude Desktop

Add this to claude_desktop_config.json:

{
  "mcpServers": {
    "servicenow": {
      "command": "uvx",
      "args": [
        "mfa-servicenow-mcp",
        "--instance-url",
        "https://your-instance.service-now.com",
        "--auth-type",
        "browser",
        "--browser-headless",
        "false"
      ]
    }
  }
}

OpenCode / Gemini / Vertex AI

{
  "mcp": {
    "servicenow": {
      "type": "local",
      "command": [
        "uvx",
        "mfa-servicenow-mcp",
        "--instance-url",
        "https://your-instance.service-now.com",
        "--auth-type",
        "browser",
        "--browser-headless",
        "false"
      ],
      "enabled": true
    }
  }
}

Run Directly From a Terminal

uvx mfa-servicenow-mcp --instance-url "https://your-instance.service-now.com" --auth-type "browser"

Notes:

  • The first run may install browser dependencies automatically.
  • Browser auth may open a login window.
  • Use --browser-headless false if you want an interactive MFA/SSO flow.

Install as a Local Command

uv tool install mfa-servicenow-mcp
servicenow-mcp --instance-url "https://your-instance.service-now.com" --auth-type "browser"

Windows users can also use WINDOWS_INSTALL.md.

Features

  • Browser authentication for MFA/SSO environments
  • Safe write confirmation with confirm='approve'
  • Payload safety limits and truncation for large records
  • Tool packages for standard users, service desk, portal developers, and platform developers
  • Developer-focused tools for logs, source lookup, workflow inspection, and update set operations

Authentication

Choose the auth mode based on your ServiceNow environment.

Browser Auth

Use this for Okta, Entra ID, SAML, MFA, or any interactive SSO flow.

uvx mfa-servicenow-mcp \
  --instance-url "https://your-instance.service-now.com" \
  --auth-type "browser" \
  --browser-headless "false"

Optional browser-related flags:

  • --browser-username
  • --browser-password
  • --browser-user-data-dir
  • --browser-timeout
  • --browser-probe-path

Environment variables:

SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
SERVICENOW_AUTH_TYPE=browser
SERVICENOW_BROWSER_HEADLESS=false

Basic Auth

Use this for PDIs or instances without MFA.

uvx mfa-servicenow-mcp \
  --instance-url "https://your-instance.service-now.com" \
  --auth-type "basic" \
  --username "your_id" \
  --password "your_password"

OAuth

Current CLI support expects OAuth password grant inputs.

uvx mfa-servicenow-mcp \
  --instance-url "https://your-instance.service-now.com" \
  --auth-type "oauth" \
  --client-id "your_client_id" \
  --client-secret "your_client_secret" \
  --username "your_id" \
  --password "your_password"

If --token-url is omitted, the server defaults to https://<instance>/oauth_token.do.

API Key

uvx mfa-servicenow-mcp \
  --instance-url "https://your-instance.service-now.com" \
  --auth-type "api_key" \
  --api-key "your_api_key"

Default header: X-ServiceNow-API-Key

Tool Packages

Set MCP_TOOL_PACKAGE to choose a smaller tool set. Default: standard

Package Intended Use Highlights
standard General users Incidents, catalog, knowledge, core queries
portal_developer Portal developers Portal code, script includes, safe logs, source lookup, workflow read, update set commit/publish
platform_developer Platform developers Script includes, safe logs, source lookup, workflows, UI policy, change set management
service_desk Operations Incident handling, comments, user lookup, article lookup
full Admin / unrestricted read surface Broad access across all implemented tool domains

Safety Policy

All mutating tools are protected by explicit confirmation.

Rules:

  1. Tools such as create_, update_, delete_, execute_, add_, commit_, and publish_ require confirmation.
  2. You must pass confirm='approve'.
  3. Without that parameter, the server rejects the request before execution.

This policy applies regardless of the selected tool package.

Developer Setup

If you want to modify the source locally:

git clone https://github.com/jshsakura/mfa-servicenow-mcp.git
cd mfa-servicenow-mcp

uv venv
uv pip install -e .
uv run playwright install chromium

For Windows-specific setup, see WINDOWS_INSTALL.md.

Documentation

Related Projects and Acknowledgements

  • This repository includes tools that were consolidated and refactored from earlier internal / legacy ServiceNow MCP implementations. You can still see that lineage in modules such as core_plus.py and tool_utils.py.
  • Some developer productivity workflows, especially server-side source lookup, were designed with ideas inspired by SN Utils. This project does not bundle or redistribute SN Utils code. It implements MCP-oriented server tools separately.
  • This project is focused on MCP server use cases rather than browser-extension UX. If you want in-browser productivity features directly inside ServiceNow, SN Utils remains a strong companion tool.

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mfa_servicenow_mcp-1.0.3.tar.gz (205.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mfa_servicenow_mcp-1.0.3-py3-none-any.whl (115.8 kB view details)

Uploaded Python 3

File details

Details for the file mfa_servicenow_mcp-1.0.3.tar.gz.

File metadata

  • Download URL: mfa_servicenow_mcp-1.0.3.tar.gz
  • Upload date:
  • Size: 205.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mfa_servicenow_mcp-1.0.3.tar.gz
Algorithm Hash digest
SHA256 96ad3216d2e3760bc27e2a47801544b3bce8991480cf1dcba4b2e5f198ca1252
MD5 0c2829e297a99ef43d69924ee72165da
BLAKE2b-256 5441b47fe32b42a7136893ba0c5049508732a5b02bd30f1859144b3540a52c19

See more details on using hashes here.

Provenance

The following attestation bundles were made for mfa_servicenow_mcp-1.0.3.tar.gz:

Publisher: ci.yml on jshsakura/mfa-servicenow-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mfa_servicenow_mcp-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for mfa_servicenow_mcp-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 70ddf57e6d2fa6b4ee2a321f8c43e2cdaa7f82c994b4a2068fafdd932b05855c
MD5 4c2f4674477211735b5d35318f9e8640
BLAKE2b-256 92eaad392fc84682c27230f20a74e0d0aea58ea41568f0ef781d07306aac575e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mfa_servicenow_mcp-1.0.3-py3-none-any.whl:

Publisher: ci.yml on jshsakura/mfa-servicenow-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page