关于 ServiceNow MCP Server
ServiceNow MCP Server 将 ServiceNow 数据与管理能力接入 MCP 客户端,面向处理平台记录、CMDB 和更新集的团队。工具可见性和操作权限由 ServiceNow 角色与 ACL 控制。
主要功能
- 01查询和管理表记录
- 02读取表结构与数据字典
- 03CMDB 项及关系操作
- 04聚合统计查询
- 05查看和管理更新集
- 06四种引导式工作流技能
适用场景
- 01检查事件和分配组数据
- 02分析 CMDB 数据质量
- 03在推广前审查更新集
- 04排查访问权限或字段问题
MCP 相关
它向 MCP 客户端提供 20 个工具、5 个资源和 4 种技能,涵盖 Table API、CMDB、聚合统计及更新集。服务按 ServiceNow 用户权限开放读写能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx mcp-server-servicenowSERVICENOW_INSTANCE_URLServiceNow instance URLSERVICENOW_AUTH_TYPE密钥Auth type: basic (default), oauth, or api_keySERVICENOW_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 secretSERVICENOW_API_KEY密钥API key for api_key authSERVICENOW_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 requestsSERVICENOW_ALLOW_JS_QUERIESPermit arbitrary javascript: in caller queriesSERVICENOW_AUDIT_LOGAudit log target: stderr (default), off, or a file path本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ServiceNow MCP 服务
将 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 基本身份验证(原因),而且服务所需的权限少得多。
- 以管理员身份登录,前往 All › User Administration › Users › New。
- 将 User ID 设为
mcp.integration,将 Identity type 设为 Machine(这会勾选 Web service access only),并勾选 Internal Integration User。如果你的表单没有 Identity type,请自行勾选 Web service access only。点击 Submit,然后重新打开该用户。 - 点击 Set Password,并保存密码,以便在第 3 步使用。
- 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 用户配置文件,并在首次启动时询问实例 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 JSON | PDI 处于休眠状态:唤醒它并重试 |
401 | 用户未设置为 Web service access only,或密码错误(401) |
403 | 用户缺少访问该表或工具所需的角色(角色) |
其他问题:运行 --check(见上文),然后查阅故障排除。
工具
20 个工具、5 个资源和 4 个技能。完整参考:工具、资源和技能。
| 分组 | 工具 |
|---|---|
| 表 API | list_records get_record create_record update_record delete_record aggregate_records |
| CMDB | list_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 等应用以及自定义规范的技能,存放在作者各自的代码库中,每个技能都有自己的评估结果:
- EXTENDING.md 介绍如何编写、验证、使用模拟工具测试和分享技能;
- 可浏览
servicenow-mcp-skill主题和 Discussions › Skills 查找技能。本项目不会审核这些技能。
此处随附至 0.9.0 版本的事件分诊技能现已成为一个示例。
角色
ServiceNow 的 ACL 决定用户可以执行哪些操作;服务端不会额外赋予权限。
| 你的需求 | 角色 | 运行方式 |
|---|---|---|
| 读取 ITSM 和 CMDB 数据(入门指南中的用户) | itil + snc_read_only | 不带标志:snc_read_only 用户看不到写入工具 |
| ……以及创建或更新事件和 CI | itil(不含 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 的客户端也应该可以运行;各客户端的行为请参阅:客户端设置。
更多信息
- 客户端设置 — 各类客户端、Claude Code 插件、Windows
- 配置 — 推荐的身份、OAuth 客户端凭据(无头模式)、API 密钥、多实例、机密信息、所有设置
- 远程部署 — 从源代码部署、Streamable HTTP、OAuth 2.1 + PKCE、Docker、Cloud Run
- 与 ServiceNow 自带的 MCP 服务搭配使用
- 架构与嵌入 — 将其挂载到自己的 FastMCP 服务中
- 编写自己的技能 — 模板、验证器、GitHub Action、分享
- 隐私 — 服务只与您的实例通信;不进行遥测
- 贡献 · 更新日志 · 支持 · 安全
编写自己的技能:EXTENDING.md 介绍了模板、验证器以及如何分享。接下来:MCP 提示词。
相关项目: sn-app-template — 一个适用于 Claude Code + now-sdk 的 ServiceNow 范围应用模板,可与此服务搭配使用。
许可证
MIT。这是一个独立项目,与 ServiceNow, Inc. 无关联,也未获其认可。ServiceNow 是 ServiceNow, Inc. 的商标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。