关于 Servicenow Devtools MCP
ServiceNow Devtools MCP 将 AI 应用连接到 ServiceNow,用于处理工单、检查实例、排查问题和审阅变更。可访问范围由账户角色、API 策略和 ACL 决定。
主要功能
- 01读取 ITSM 记录和历史
- 02检查表、字段、脚本和流程
- 03调查错误和事务
- 04审阅拟议的记录与脚本变更
适用场景
- 01汇总事件和请求答案
- 02查找脚本或检查 Flow Designer 流程
- 03应用前审阅工单或脚本变更
- 04调查近期错误和表健康状况
MCP 相关
这是通过 stdio 在本地启动的 MCP 服务,向 AI 应用提供 ServiceNow 记录、配置和诊断工具。启用写入工具后可预览变更,仍受 ServiceNow 权限和本地策略约束。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ServiceNow 平台 MCP
将 AI 应用连接到 ServiceNow,以读取工单、检查配置,并准备对记录或脚本进行更改。此服务使用 Model Context Protocol(MCP)。
使用你的 ServiceNow 账户登录。你的角色、API 访问策略和 访问控制规则(ACL)决定你可以读取或更改哪些内容。
从这里开始
如果服务已配置,请向 AI 应用提问:
使用 ServiceNow 显示我可以访问的 5 个活动事件。包括事件 编号、简短描述、优先级和负责人。不要进行任何更改。
如果需要登录,服务会在其所在的计算机上打开浏览器。
ITSM 工作
读取事件、问题、变更和请求记录。查看历史记录、检查 附件,或统计某个状态更新涉及的记录数量。
例如:
- “显示分配给 Service Desk 组的 10 个活动事件,按优先级排序。”
- “总结 INC0012345,包括过去 30 天的评论和工作备注。”
- “按分配组统计未结事件数量。注明使用的筛选条件。”
- “显示随 RITM0012345 提交的答案。”
使用实例中的记录编号和组名。列出记录和历史记录时,请注明时间段 并设置数量上限。
创建工单、更新工作备注和更改分配需要写入工具和 ServiceNow 权限。请参阅进行更改。
实例管理和开发
检查配置、调查问题并准备更改。可从记录名称或问题开始。 你无需知道 MCP 工具名称。
| 工作 | 可检查的内容 |
|---|---|
| 表和字段 | 字段类型、选项标签、引用和继承字段。 |
| 脚本 | Business Rules、Script Includes、Client Scripts 和代码搜索匹配项。 |
| Flow Designer | Flow 和子流程的触发器、输入、输出及已配置步骤。 |
| 故障排查 | 最近的错误、缓慢的事务、表健康状况和审计历史记录。 |
| 配置管理数据库(CMDB) | 配置项、它们之间的关系及类元数据。 |
例如:
- “读取名为 ‘Validate priority’ 的 Business Rule。说明其运行时机及脚本的作用。”
- “查找调用
gs.eventQueue的脚本。显示匹配记录。” - “检查 ‘New starter’ 流程。说明其触发器和已配置步骤。”
- “调查过去 24 小时内的脚本错误。为每项发现提供证据。”
请将示例规则和流程名称替换为实例中的名称。
诊断结果可帮助你调查问题,但不能确定根本原因,也不会修复实例。
flow 工具会检查配置,在本地检查已保存的 V2 结构,并读取状态。
它不能更改或执行流程。
启用写入工具后,你可以创建或更新配置记录, 包括脚本字段。应用脚本更改前,请遵循变更工作流。
连接设置
管理员负责准备 OAuth。每位用户使用自己的 ServiceNow 账户授权访问。AI 应用会使用 stdio 在本地启动服务。 你需要 Python 3.14 或更高版本、uv, 以及能够启动本地 MCP 服务的 AI 应用。
1. 在 ServiceNow 中准备 OAuth
OAuth 允许用户在浏览器中授权连接。公共客户端 ID 用于标识应用,不是密码或客户端密钥。
打开 System OAuth > Application Registry。选择 New,然后选择 Create an OAuth API endpoint for external clients,或选择现有的入站应用。 配置应用以满足以下要求:
| 要求 | 值 |
|---|---|
| 客户端类型 | 公共,无客户端密钥 |
| 授权流程 | 使用 PKCE 的授权码 |
| PKCE 方法 | S256 |
| 范围 | useraccount |
| 重定向 URL | http://127.0.0.1:8765/oauth/callback |
保存应用并复制其公共客户端 ID。如果无法配置 OAuth,请向管理员索取客户端 ID 和实例 URL。 用户仍需要 API 访问权限以及表和字段权限。
2. 将连接添加到 AI 应用
将 https://your-instance.service-now.com 和 your-public-client-id
替换为管理员提供的值。使用实例的 HTTPS 地址,
不要包含 /nav_to.do 之类的页面路径。
以下示例选择 readonly,并通过 SERVICENOW_ENV=prod 阻止写入。
环境设置用于控制写保护,不会选择实例,也不会检测实例是否为生产环境。
添加此配置时,请保留现有服务条目。 不要添加密码、API 密钥、客户端密钥或令牌。
VS Code 搭配 GitHub Copilot,或 Claude Code
将此配置保存为 AI 应用所打开的顶层文件夹中的 .mcp.json:
{
"mcpServers": {
"servicenow-platform": {
"command": "uvx",
"args": ["servicenow-platform-mcp"],
"env": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_OAUTH_CLIENT_ID": "your-public-client-id",
"MCP_TOOL_PACKAGE": "readonly",
"SERVICENOW_ENV": "prod"
}
}
}
}
在 VS Code 中,打开聊天并启用 ServiceNow 工具。 在 Claude Code 中,出现提示时批准项目 MCP 服务。 如需了解用户级配置和连接控制,请参阅 VS Code 指南 或 Claude Code 指南。
打开 OpenCode 配置
将以下内容添加到项目中的 opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servicenow-platform": {
"type": "local",
"command": ["uvx", "servicenow-platform-mcp"],
"enabled": true,
"environment": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_OAUTH_CLIENT_ID": "your-public-client-id",
"MCP_TOOL_PACKAGE": "readonly",
"SERVICENOW_ENV": "prod"
}
}
}
}
重启 OpenCode。其他配置选项请参阅其 MCP 指南。
对于其他本地 MCP 应用,请使用命令 uvx servicenow-platform-mcp
并设置相同的四个环境变量。其配置格式可能有所不同。
安装指南中包含可供改编的服务条目。
3. 登录并检查访问权限
- 保存配置后,重启 AI 应用或其 ServiceNow MCP 服务。
- 提问:“列出可用的 ServiceNow 工具。”
- 提问:“使用 ServiceNow 显示一条未关闭的事件记录,并包含其编号和简短描述。”
- 如果出现提示,请在浏览器中使用预期的 ServiceNow 账户登录。
返回的记录可确认对该表的读取权限。如果无法读取事件, 请改用账户有权访问的表。仅发现工具并不能确认连接正常。
默认情况下,令牌保留在服务内存中。服务会在可能的情况下续订过期的访问令牌。
可选设置 SERVICENOW_OAUTH_CACHE=os 会将刷新令牌存储在操作系统原生凭据存储中,
以便新的本地进程复用之前的登录信息。请参阅 OAuth 缓存配置。
进行更改
请先使用开发或测试实例。请管理员仅启用所需的写入工具,并授予相应的 ServiceNow 权限。
例如,MCP_TOOL_PACKAGE=query,describe,record_read,record_write
可启用记录检查和更改。为该非生产实例设置 SERVICENOW_ENV=dev。更改配置后,请重启服务。
记录、附件和目录更改在 apply_change 之前都必须先预览。
服务端不会强制要求人工审批。应用更改前,请逐项检查:
- 请应用读取当前记录。
- 请应用预览拟议的更改。
- 检查目标实例、记录、字段值和脚本差异。
- 仅在你批准后,才告知应用执行该预览。
- 在 ServiceNow 中检查结果,并在实例上测试任何更改后的行为。
对于工单更新:
预览向 INC0012345 添加以下工作备注:“等待来电者确认修复情况。”显示拟议更改,并等待我的批准。
对于脚本更新:
读取名为 'Validate priority' 的业务规则。提出修正建议并加以说明。显示包含完整替换脚本的预览。在我批准前,请勿应用更改。
预览工具会返回一次性令牌。apply_change 会检查策略、授权和可检测到的状态更改。令牌会在 300 秒后过期,并在重启后失效。如果结果为 UNKNOWN_OUTCOME,请先读取目标状态,再创建另一个预览。请勿自动重放该操作。
readonly 软件包包含目录浏览功能。目录更改需要 service_catalog_write 组权限。预览不会模拟履行流程,也不保证价格。
脚本更新会替换整个字段值。服务端不会检查 JavaScript 语法。请先检查并测试脚本,再依赖其行为。
将 SERVICENOW_ENV 设置为 prod 或 production,即可阻止通过此服务端进行写入。ServiceNow 权限仍会控制记录访问。工具选择和环境设置提供额外的本地控制。
选择可用工具
MCP_TOOL_PACKAGE 控制 AI 应用可调用哪些工具:
| 软件包 | 用途 |
|---|---|
readonly | ITSM 读取、元数据、附件、调查、审计、流程、代码搜索和 CMDB 检查。 |
core_readonly | 仅查询、表描述和附件读取。 |
full | 所有工具,包括经过审核的记录、附件和目录更改。 |
none | 仅 list_tool_packages,用于检查服务端是否能够启动。 |
软件包默认为 readonly,环境默认为 prod。
软件包会启用工具,但不会授予 ServiceNow 权限。
list_tool_packages 会列出可用的软件包和组,而非当前启用的软件包。
完整清单和工具输入请参阅工具参考。
如果遇到问题
| 问题 | 后续操作 |
|---|---|
| AI 应用无法启动服务 | 检查 Python、uv、服务命令以及两个必需的 ServiceNow 设置。 |
| 未打开浏览器,或授权超时 | 使用服务所在计算机上的浏览器。检查已注册的重定向 URL 是否准确。 |
| ServiceNow 拒绝 OAuth | 请管理员检查公共客户端模式、PKCE S256、客户端 ID、范围和重定向 URL。 |
| 登录成功,但记录请求返回 401 或 403 | 请管理员检查 API 策略、角色以及记录或字段访问规则。 |
| 缺少工具,或设置未生效 | 检查 MCP_TOOL_PACKAGE 并重启 MCP 服务。 |
请求失败时,请在报告中注明操作、记录或表以及经过脱敏的错误信息。 请勿包含密码、令牌、原始标头或浏览器回调 URL。 如需更详细的检查步骤,请参阅安装故障排除。
工具返回的 ServiceNow 数据会提供给 AI 应用使用。 请使用获准处理相应数据的应用。
更多帮助
- ITSM 工作:工单队列、历史记录、请求答复和工单变更。
- 实例管理与开发:表、脚本、流程、调查和经审核的变更。
- 安装与配置:连接设置、源码安装和故障排除。
- 完整 Wiki:设置、工具参考、安全限制和诊断。
- 为此 MCP 服务贡献代码:本地开发、测试和发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。