跳转到内容

ServiceNow MCP 变更管理工具

本文档介绍 ServiceNow MCP 服务器中可用的变更管理工具。

变更管理工具让 Claude 能够与 ServiceNow 的变更管理功能交互,使用户能够通过自然语言对话来创建、更新和管理变更请求。

ServiceNow MCP 服务器提供以下变更管理工具:

  1. manage_change - 变更请求的捆绑式 CRUD(表:change_request

    • action(必填):create / update / add_task 之一
    • 对于 action="create"short_descriptiontypenormal/standard/emergency),以及可选的 descriptionriskimpactcategoryrequested_byassignment_groupstart_dateend_date
    • 对于 action="update"change_id 加上至少一个可更新字段(short_descriptiondescriptionstateriskimpactcategoryassignment_groupstart_dateend_datework_notes);支持 dry_run=True 以进行预览
    • 对于 action="add_task"change_idtask_short_description,以及可选的 task_descriptiontask_assigned_totask_planned_start_datetask_planned_end_date
  2. sn_query(搭配 table=change_request)- 用任意过滤器列出变更请求

    • 使用通用的表查询原语来列出变更请求。sn_query 的参数见工具清单
  3. manage_change(action="get") - 获取特定变更请求的详细信息

    • 参数:
      • change_id(必填):变更请求 ID 或 sys_id
  1. submit_change_for_approval - 提交变更请求以供审批

    • 参数:
      • change_id(必填):变更请求 ID 或 sys_id
      • approval_comments:审批请求的备注
  2. approve_change - 批准变更请求

    • 参数:
      • change_id(必填):变更请求 ID 或 sys_id
      • approver_id:审批人的 ID
      • approval_comments:审批的备注
  3. reject_change - 拒绝变更请求

    • 参数:
      • change_id(必填):变更请求 ID 或 sys_id
      • approver_id:审批人的 ID
      • rejection_reason(必填):拒绝的原因

一旦 ServiceNow MCP 服务器在 Claude Desktop 中配置完成,你就可以让 Claude 执行如下操作:

  • “创建一个变更请求,用于明天晚上对服务器进行维护以应用安全补丁”
  • “为下周二凌晨 2 点到 4 点安排一次数据库升级”
  • “创建一个紧急变更,以修复我们 Web 应用中的严重安全漏洞”
  • “为服务器维护变更添加一个用于实施前检查的任务”
  • “添加一个在开始数据库升级前验证系统备份的任务”
  • “更新网络变更的实施计划,加入回滚流程”
  • “提交服务器维护变更以供审批”
  • “给我看看所有等待我审批的变更”
  • “批准数据库升级变更,备注:实施计划看起来很周密”
  • “由于测试不足,拒绝该网络变更”
  • “给我看看本周安排的所有紧急变更”
  • “数据库升级变更的状态如何?”
  • “列出所有指派给 Network 团队的变更”
  • “给我看看变更 CHG0010001 的详细信息”

以下示例展示如何以编程方式使用变更管理工具:

from servicenow_mcp.auth.auth_manager import AuthManager
from servicenow_mcp.tools.change_tools import ManageChangeParams, manage_change
from servicenow_mcp.utils.config import ServerConfig
# 创建服务器配置
server_config = ServerConfig(
instance_url="https://your-instance.service-now.com",
)
# 创建认证管理器
auth_manager = AuthManager(
auth_type="basic",
username="your-username",
password="your-password",
instance_url="https://your-instance.service-now.com",
)
# 通过捆绑式 manage_change 工具创建一个变更请求
params = ManageChangeParams(
action="create",
short_description="Server maintenance - Apply security patches",
description="Apply the latest security patches to the application servers.",
type="normal",
risk="moderate",
impact="medium",
category="Hardware",
start_date="2023-12-15 01:00:00",
end_date="2023-12-15 03:00:00",
)
result = manage_change(server_config, auth_manager, params)
print(result)

上面的示例展示了编程式请求的形态,以及将变更管理集成到你自己的自动化中所需的关键导入。

要在 Claude Desktop 中配置带变更管理工具的 ServiceNow MCP 服务器:

  1. 编辑位于 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或你操作系统对应路径的 Claude Desktop 配置文件:
{
"mcpServers": {
"ServiceNow": {
"command": "/Users/yourusername/dev/servicenow-mcp/.venv/bin/python",
"args": [
"-m",
"servicenow_mcp.cli"
],
"env": {
"SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
"SERVICENOW_USERNAME": "your-username",
"SERVICENOW_PASSWORD": "your-password",
"SERVICENOW_AUTH_TYPE": "basic"
}
}
}
}
  1. 重启 Claude Desktop 以应用更改

变更管理工具可以定制以匹配你组织特定的 ServiceNow 配置:

  • 状态值可能需要根据你的 ServiceNow 实例配置进行调整
  • 如有需要,可向参数模型添加额外字段
  • 审批工作流可能需要修改以匹配你组织的审批流程

要定制这些工具,请修改 src/servicenow_mcp/tools 目录下的 change_tools.py 文件。