mcpField
S
ServiceNow MCP Server

ServiceNow MCP Server

本地服务
github.com/jschuller云与基础设施261 周前更新

关于 ServiceNow MCP Server

ServiceNow MCP Server 将 ServiceNow 数据与管理能力接入 MCP 客户端,面向处理平台记录、CMDB 和更新集的团队。工具可见性和操作权限由 ServiceNow 角色与 ACL 控制。

主要功能

  1. 01查询和管理表记录
  2. 02读取表结构与数据字典
  3. 03CMDB 项及关系操作
  4. 04聚合统计查询
  5. 05查看和管理更新集
  6. 06四种引导式工作流技能

适用场景

  1. 01检查事件和分配组数据
  2. 02分析 CMDB 数据质量
  3. 03在推广前审查更新集
  4. 04排查访问权限或字段问题

MCP 相关

它向 MCP 客户端提供 20 个工具、5 个资源和 4 种技能,涵盖 Table API、CMDB、聚合统计及更新集。服务按 ServiceNow 用户权限开放读写能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jschuller-mcp-server-servicenow": {
"command": "uvx",
"args": [
"mcp-server-servicenow"
],
"env": {
"SERVICENOW_INSTANCE_URL": "<SERVICENOW_INSTANCE_URL>",
"SERVICENOW_AUTH_TYPE": "<SERVICENOW_AUTH_TYPE>",
"SERVICENOW_USERNAME": "<SERVICENOW_USERNAME>",
"SERVICENOW_PASSWORD": "<SERVICENOW_PASSWORD>",
"SERVICENOW_CLIENT_ID": "<SERVICENOW_CLIENT_ID>",
"SERVICENOW_CLIENT_SECRET": "<SERVICENOW_CLIENT_SECRET>",
"SERVICENOW_API_KEY": "<SERVICENOW_API_KEY>",
"SERVICENOW_API_KEY_HEADER": "<SERVICENOW_API_KEY_HEADER>",
"SERVICENOW_TOKEN_URL": "<SERVICENOW_TOKEN_URL>",
"SERVICENOW_TIMEOUT": "<SERVICENOW_TIMEOUT>",
"SERVICENOW_DEBUG": "<SERVICENOW_DEBUG>",
"SERVICENOW_READ_ONLY": "<SERVICENOW_READ_ONLY>",
"SERVICENOW_ALLOW_JS_QUERIES": "<SERVICENOW_ALLOW_JS_QUERIES>",
"SERVICENOW_AUDIT_LOG": "<SERVICENOW_AUDIT_LOG>"
}
}
}
}
启动命令uvx mcp-server-servicenow
需要配置的环境变量
SERVICENOW_INSTANCE_URLServiceNow instance URL
SERVICENOW_AUTH_TYPE密钥Auth type: basic (default), oauth, or api_key
SERVICENOW_USERNAMEUsername for basic auth or the OAuth password grant (omit for OAuth client credentials)
SERVICENOW_PASSWORD密钥Password for basic auth or the OAuth password grant (omit for OAuth client credentials)
SERVICENOW_CLIENT_IDOAuth client ID (client credentials grant unless a username and password are set)
SERVICENOW_CLIENT_SECRET密钥OAuth client secret
SERVICENOW_API_KEY密钥API key for api_key auth
SERVICENOW_API_KEY_HEADER密钥Header name for api_key auth (default x-sn-apikey, ServiceNow's default auth parameter)
SERVICENOW_TOKEN_URL密钥OAuth token URL (default <instance>/oauth_token.do)
SERVICENOW_TIMEOUTHTTP timeout in seconds (default 30)
SERVICENOW_DEBUGDebug logging (default false)
SERVICENOW_READ_ONLYHide write tools and refuse non-GET requests
SERVICENOW_ALLOW_JS_QUERIESPermit arbitrary javascript: in caller queries
SERVICENOW_AUDIT_LOGAudit log target: stderr (default), off, or a file path

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-server-servicenow0.9.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ServiceNow MCP 服务

ServiceNow MCP 服务

PyPI 下载量 持续集成 许可证

将 Claude Code、GitHub Copilot、Codex、opencode、Antigravity 或任何 MCP 客户端连接到 ServiceNow:
查询任意表、读取架构和 CMDB、检查更新集。免费、采用 MIT 许可证,可在免费开发者实例上运行。


uvx mcp-server-servicenow 为 AI 助手提供 ServiceNow 开发者数据平面:Table API、数据字典、Stats API 聚合、CMDB 和更新集,支持 Tokyo 及之后的所有版本。它可以与 ServiceNow 自带的 MCP 服务一同运行(了解它们的区别)。

你可以这样提问

  • “cmdb_ci_server 有哪些字段,包括继承的字段?”
  • “谁拥有管理员权限?哪些角色是直接授予的,而不是通过组授予的?”
  • “在我提升更新集 'Q3 fixes' 之前,先帮我检查一下。”
  • “哪些服务器 CI 缺少 IP 地址或负责人?”
  • “每个分配组有多少个未结事件?”(任意表都适用,不只是平台表)

快速开始

在免费开发者实例上约需十分钟。如果使用公司实例,请向 ServiceNow 管理员索取第 2 步所需的用户。

1. 获取 ServiceNow 实例

注册免费的个人开发者实例(PDI)——其中预置了演示事件、变更和 CI。PDI 闲置几小时后会休眠:开始之前,请从开发者门户唤醒实例。

2. 创建集成用户

不要使用 admin 账号连接:新实例会拒绝该账号的 REST 基本身份验证(原因),而且服务所需的权限少得多。

  1. 以管理员身份登录,前往 All › User Administration › Users › New。
  2. 将 User ID 设为 mcp.integration,将 Identity type 设为 Machine(这会勾选 Web service access only),并勾选 Internal Integration User。如果你的表单没有 Identity type,请自行勾选 Web service access only。点击 Submit,然后重新打开该用户。
  3. 点击 Set Password,并保存密码,以便在第 3 步使用。
  4. Roles › Edit:添加 itil 和 snc_read_only,然后保存。

该用户可以读取事件、变更、问题、CMDB 和聚合数据,且无法修改任何内容。架构、更新集和写入操作需要更多权限:请参阅角色。

3. 将服务添加到客户端

你需要安装 uv(uvx 可在不安装服务的情况下运行它)。在 Claude Code 中:

read -rs SERVICENOW_PASSWORD     # paste the password; it is not shown or kept in your history
claude mcp add servicenow \
  -e SERVICENOW_INSTANCE_URL=https://devNNNNNN.service-now.com \
  -e SERVICENOW_USERNAME=mcp.integration \
  -e SERVICENOW_PASSWORD="$SERVICENOW_PASSWORD" \
  -- uvx mcp-server-servicenow

或者安装 Claude Code 插件,它会将四个技能添加为斜杠命令。它会读取启动 Claude Code 的 shell 中相同的 SERVICENOW_* 变量(详情):

claude plugin marketplace add jschuller/mcp-server-servicenow
claude plugin install servicenow@mcp-server-servicenow
Windows(PowerShell)

使用 winget install astral-sh.uv 安装 uv,然后:

$s = Read-Host 'Password' -AsSecureString
$p = [Runtime.InteropServices.Marshal]::PtrToStringBSTR([Runtime.InteropServices.Marshal]::SecureStringToBSTR($s))
claude mcp add servicenow -e SERVICENOW_INSTANCE_URL=https://devNNNNNN.service-now.com -e SERVICENOW_USERNAME=mcp.integration -e "SERVICENOW_PASSWORD=$p" -- uvx mcp-server-servicenow
VS Code(GitHub Copilot)

在 VS Code 中安装

此按钮会将服务添加到 VS Code 用户配置文件,并在首次启动时询问实例 URL、用户名和密码,且会安全存储密码。或者将以下内容添加到 .vscode/mcp.json。请在 Agent 模式下使用 Copilot Chat。

{
  "inputs": [
    { "type": "promptString", "id": "servicenow-url", "description": "ServiceNow instance URL, e.g. https://devNNNNNN.service-now.com" },
    { "type": "promptString", "id": "servicenow-password", "description": "Password for mcp.integration", "password": true }
  ],
  "servers": {
    "servicenow": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-server-servicenow"],
      "env": {
        "SERVICENOW_INSTANCE_URL": "${input:servicenow-url}",
        "SERVICENOW_USERNAME": "mcp.integration",
        "SERVICENOW_PASSWORD": "${input:servicenow-password}"
      }
    }
  }
}
Claude Desktop

编辑 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/,Windows:%APPDATA%\Claude\):

{
  "mcpServers": {
    "servicenow": {
      "command": "uvx",
      "args": ["mcp-server-servicenow"],
      "env": {
        "SERVICENOW_INSTANCE_URL": "https://devNNNNNN.service-now.com",
        "SERVICENOW_USERNAME": "mcp.integration",
        "SERVICENOW_PASSWORD": "your-password"
      }
    }
  }
}

Codex、opencode、Antigravity、Cursor、pi、Claude Code 插件以及如何避免将密码放入配置文件:客户端设置。

4. 检查是否正常运行

提问:“列出最近的 5 个事件。” 起步用户拥有 snc_read_only,因此服务只会列出 13 个只读工具。为用户授予写入角色(并移除 snc_read_only)后,7 个写入工具就会显示;客户端会在每次写入前征求确认。

没有得到回答?使用 --check 运行相同配置。它会发出只读请求,并为每项检查打印一行(实例可访问性、身份、角色、表读取、架构、聚合),且绝不会打印机密:

SERVICENOW_INSTANCE_URL=https://devNNNNNN.service-now.com SERVICENOW_USERNAME=mcp.integration \
  SERVICENOW_PASSWORD="$SERVICENOW_PASSWORD" uvx mcp-server-servicenow --check

收到回答了吗?请在展示与分享中说明使用的客户端和 ServiceNow 版本——这能帮助我们了解哪些配置有效。问题请前往问答。

如果无法正常运行

你看到的内容修复方法
Got HTML instead of JSONPDI 处于休眠状态:唤醒它并重试
401用户未设置为 Web service access only,或密码错误(401)
403用户缺少访问该表或工具所需的角色(角色)

其他问题:运行 --check(见上文),然后查阅故障排除。

工具

20 个工具、5 个资源和 4 个技能。完整参考:工具、资源和技能。

分组工具
表 APIlist_records get_record create_record update_record delete_record aggregate_records
CMDBlist_ci get_ci create_ci update_ci get_ci_relationships
系统get_table_schema get_current_user get_system_properties find_references
更新集list_update_sets get_update_set create_update_set set_current_update_set list_update_set_changes

**资源:**表架构、实例信息、当前更新集、CMDB 类层次结构和编码查询参考——无需调用工具即可读取。

**技能:**为 Now Platform 提供的四种引导式工作流,通过 MCP 以 skill:// 资源形式提供,因此每个客户端都可以使用,无需安装插件:

  • exploring-tables:架构、选项列表、记录历史、哪些内容会影响某个表或字段,以及编码查询参考;
  • analyzing-access:谁拥有哪些角色、团队名册和群组成员,以及 403 错误或字段缺失的含义;
  • reviewing-update-sets:风险类别和提升前检查清单;
  • servicenow-cmdb:CMDB 数据质量和 CSDM 一致性。

**社区技能:**适用于 ITSM 等应用以及自定义规范的技能,存放在作者各自的代码库中,每个技能都有自己的评估结果:

此处随附至 0.9.0 版本的事件分诊技能现已成为一个示例。

角色

ServiceNow 的 ACL 决定用户可以执行哪些操作;服务端不会额外赋予权限。

你的需求角色运行方式
读取 ITSM 和 CMDB 数据(入门指南中的用户)itil + snc_read_only不带标志:snc_read_only 用户看不到写入工具
……以及创建或更新事件和 CIitil(不含 snc_read_only)不带标志;客户端会在写入前询问(对于不会询问的客户端,使用 --read-only)
……以及删除事件、问题和变更添加 itil_admin
表架构添加 personalize_dictionary
更新集、系统属性admin——仅限 PDI

各工具的详情:各工具所需角色。设置公司实例:推荐的集成身份。

安全与治理

  • 只读模式 — --read-only 会隐藏 7 个写入工具,并拒绝任何非 GET 请求。
  • 只读身份只能看到只读工具 — 用户持有 snc_read_only 时,即使未设置标志,也会隐藏写入工具。这只是方便之举,并非控制措施:ServiceNow 无论如何都会拒绝这些写入操作。
  • 表范围由 ServiceNow 控制 — 集成用户的 ACL 和 REST API 访问策略决定它可以读取哪些表和字段,包括点式遍历。
  • 审计日志 — 每次工具调用或资源读取写入一行 JSON:记录调用者、表和结果;仅按名称记录写入字段,绝不记录字段值,并对查询中的类似机密的值进行遮蔽。
  • 由客户端批准写入操作 — 每个工具都标注为只读或破坏性操作,因此 Claude Code、Copilot 和 Codex 会在写入前询问。默认情况下不会询问的客户端(opencode、pi)需要使用只读身份;如果该身份有写入权限,则需要设置 --read-only。

标志和环境变量:配置。

适用范围

已于 2026-10-11 在 ServiceNow Brazil 上使用 0.8.0 验证,并在 Claude Code 和 Codex 中重新检查了 0.9.0 技能:Claude Code 2.1.296、VS Code 1.140(搭配 GitHub Copilot)、Codex CLI 0.162.1、opencode 1.19.0、Antigravity CLI 1.1.20 和 pi 1.1.0。Claude Desktop、Cursor 以及其他任何通过 stdio 或 Streamable HTTP 使用 MCP 的客户端也应该可以运行;各客户端的行为请参阅:客户端设置。

更多信息

编写自己的技能:EXTENDING.md 介绍了模板、验证器以及如何分享。接下来:MCP 提示词。

相关项目: sn-app-template — 一个适用于 Claude Code + now-sdk 的 ServiceNow 范围应用模板,可与此服务搭配使用。

许可证

MIT。这是一个独立项目,与 ServiceNow, Inc. 无关联,也未获其认可。ServiceNow 是 ServiceNow, Inc. 的商标。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。