跳转到内容

MFA ServiceNow MCP

不要给你的 AI 写脚本。为它装备武器。

用平实的语言告诉你的 AI 你需要什么。
剩下的交给 MCP Skills。

mfa-servicenow-mcp

没有哪个 MCP 为 ServiceNow 管理员做浏览器登录认证,于是我自己写了一个。

这一切始于开发 ServiceNow Portal——组件、页面、脚本包含,整张依赖关系图。
真正难的从来不是改代码,而是在动手之前,准确判断到底哪里坏了、为什么坏。
当 AI 代理能够可靠地完成这种诊断之后,下一个问题自然就是:它能不能更进一步,安全地参与测试和部署。

光靠 Table API 不足以完成那种诊断。
Flow Designer 的真实结构——触发器、动作,一个流程到底为什么触发或没触发——藏在普通 REST 认证够不到的、仅限会话(session-only)的接口后面。
所以这个工具不得不扩展到真正的浏览器认证,而不是一把写在配置文件里的 API 密钥。
管理员真正需要的,其实就是一个真实管理员本来就有的东西——一个受 MFA/SSO/SAML 保护的真实会话。
当时整个 MCP 生态里没有任何东西为 ServiceNow 做这件事,于是这就成了这个项目的核心结构:代理 继承一个实时浏览器会话,而不是握着一把密钥。

从那时起,这就不再只是一个 API 封装。
每一次写入都遵循一位细心工程师手动操作时会用的纪律——本地优先,推送前先与实时服务器做 diff, 锚定后一旦出现冲突的修改就会被拦下而不是被静默覆盖,而且可验证——部署用的 XML 会带一份证书, 证明它确实来自实时实例。

Token 成本也得到同样的对待——每个 schema 都做了压缩,每个 package 都只暴露代理实际能用到的 部分。
这里的每一个设计取舍,都是在真实的 ServiceNow Portal 工作中反复实战验证出来的,而不是来自 某份规格文档。

🔎 精准诊断

追踪真实的依赖链——是哪个组件、哪个脚本包含、哪个流程——而不是靠堆栈跟踪去猜。

🔑 是会话,不是密钥

Flow Designer 的真实结构藏在 Table API 够不到的仅限会话接口后面。代理继承一个实时管理员会话——MFA、SSO、SAML——而不是握着一把 API 密钥。

🧭 锚定同步

每次推送都会先与实时记录做 diff 并锚定——冲突的修改会被拦下,绝不会被静默覆盖。

🪶 从设计上就注重 Token

压缩过的 schema、按 package 划分范围的工具、按需投影的读取——成本是设计约束,不是事后才考虑的事。


只需粘贴这一行。就这么简单。

把下面这行复制到任意 AI 编码助手中。
它会自动安装一切 —— uv、Playwright、MCP 配置和技能。

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

适用于 Claude Code、Cursor、Codex、OpenCode、Windsurf、VS Code Copilot、Antigravity、Zed 等等。
你的 AI 会检测客户端和操作系统,然后以交互方式引导你完成安装。
安装后,重启你的 AI 客户端以加载 MCP 服务器。

如果 uvx 被企业安全工具阻止,请跳到下方的 当 uvx 被阻止时(pip)一节。

先安装,再添加到客户端配置

更喜欢用终端?安装 uv + Chromium,然后将服务器添加到你的 MCP 客户端配置文件(片段见下)。无需安装命令,无需各客户端专属标志。

# 1. 安装 uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. 提前获取服务器 + Chromium(避免首次浏览器认证调用时
#    下载 ~150 MB 导致超时)
uvx --refresh --with playwright --from mfa-servicenow-mcp servicenow-mcp --version
uvx --with playwright playwright install chromium

# 3. 将服务器添加到你的 MCP 客户端配置 — 复制下方片段
# 1. 安装 uv(如果尚未安装)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 2. 提前获取服务器 + Chromium(避免首次浏览器认证调用时
#    下载 ~150 MB 导致超时)
uvx --refresh --with playwright --from mfa-servicenow-mcp servicenow-mcp --version
uvx --with playwright playwright install chromium

# 3. 将服务器添加到你的 MCP 客户端配置 — 复制下方片段

改用 pip 安装

Windows 的 Smart App Control 会阻止 uvx,因为 uvx 每次运行都要解压一个未签名的临时可执行文件。如果 uvx 一直用得好好的,却在某次 Windows 更新之后突然失效,原因就在这里。改用 pip 安装,并以模块方式启动服务器 —— servicenow-mcp 控制台脚本是 pip 生成的未签名 .exe 包装器,会因为同样的原因被阻止。

# Homebrew 和发行版自带的 Python 会拒绝全局 pip 安装(PEP 668)。
# 请改用 python.org 的 Python,或者干脆继续用上面的 uvx。
pip install mfa-servicenow-mcp playwright
python -m playwright install chromium

# 验证:
python -m servicenow_mcp --version

# 以后升级:
pip install --upgrade mfa-servicenow-mcp playwright
python -m playwright install chromium
# python.org 的 Python 3.10+ 已签名,可以通过 Smart App Control。
pip install mfa-servicenow-mcp playwright
python -m playwright install chromium

# 验证:
python -m servicenow_mcp --version

# 以后升级:
pip install --upgrade mfa-servicenow-mcp playwright
python -m playwright install chromium

无论用哪种方式,env 块都完全相同 —— 只有 commandargs 不同。粘贴下方手动回退一节中的片段,然后把 command 设为 pythonargs 设为 [“-m”, “servicenow_mcp”]

手动修复或检查客户端配置

安装程序是推荐路径。仅当你需要手动检查或修复客户端配置时,才使用下面的原始配置示例。

四种不同的形态涵盖了所有受支持的客户端。env 块在各处完全相同 —— 只有外层包装不同。

{
"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"
    }
  }
}
}

只读的 standard 包默认加载 —— 无需 MCP_TOOL_PACKAGE。 若需写入权限,请将其设为高级包(service_deskportal_developerplatform_developerfull)—— 见 工具包(高级)指南

添加为 LLM 优化的技能

仅有工具只是原始的 API 调用。技能才是让你的 LLM 真正有用的东西 ——
带安全门控、回滚和上下文感知委派的经验证流水线。
如今有 4 个技能,每次发布都会有更多。

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 个技能 —— 本地源码审计:交叉引用、死代码、执行顺序、HTML 报告

🧭 explore/

1 个技能 —— flow 触发器追踪:当某个表发生更改时哪些 workflow/flow 会触发

📦 manage/

2 个技能 —— 应用源码下载、本地同步(diff → 推送,带冲突检测)

始终运行最新版本

uvx 会缓存上次下载的版本 —— 它不会自动更新。
通过 uv 升级以获取最新发布版:

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

然后重启你的 MCP 客户端(Claude Code、Cursor 等)以加载新版本。

75已注册工具
MFA原生支持
3技能类别
0凭据共享

三步即可投入生产

无需配置 API 密钥,配置文件中也没有密码。
通过浏览器认证一次,你的 AI 代理便继承一个实时会话。

1

安装

uvx 一条命令搞定一切。零配置。

2

认证

会打开一个真实浏览器用于 MFA、SSO、SAML —— 无论你的组织要求什么。

3

连接

指向 Claude、Cursor、Zed 或任意 MCP 客户端。75 个已注册工具通过活动包配置加载。


为企业打造

在规模化场景下安全地连接 AI 代理与 ServiceNow,你所需的一切尽在于此。

🔒 零信任安全

基于浏览器的认证意味着凭据永不离开你的机器。支持 MFA、SSO、SAML 以及你组织使用的任意登录流程。

⚡ token 高效的性能

惰性工具发现、按包限定的 schema、紧凑 JSON、响应缓存和批量读取,将启动开销和 LLM 上下文成本控制在可控范围内。

🧩 安全的数据比对

可选的命名实例被限制为只读的 dev/test 漂移检查。普通工具始终固定在一个活动实例上。

🤖 广泛的客户端支持

适用于 Claude、Codex、Cursor、Zed、Antigravity、OpenCode、Windsurf、VS Code Copilot,以及通过 stdio 或 Streamable HTTP 通信的 MCP 客户端。


准备好把你的 AI 连接到 ServiceNow 了吗?

跟随我们的分步指南,五分钟内即可完成设置。

阅读安装指南