← 返回目录
S

ServiceNow MCP Server

社区
让 Claude 通过 MCP 连接并操作 ServiceNow 实例
GitHub 源仓库 ↗
★ 294 Stars 分类 · 其他 热门 源版本 06250607bdfc
49FMRS · D
可靠性
7/20
安全与权限
4/20
维护活跃度
9/20
文档质量
16/20
安装易用性
13/20

该项目是一个功能覆盖面较广的第三方 ServiceNow MCP 服务器,涵盖事件、变更、目录、知识库、敏捷管理、工作流和用户管理等 ITSM 核心场景,并提供按角色裁剪工具集的机制。使用前需要有效的 ServiceNow 实例和凭据,且默认权限较大,建议按需使用工具包限制功能范围并妥善保管凭据。

查看 FMRS 评分方法 →

ServiceNow MCP Server 是一个开源的 Model Context Protocol 服务器实现,用 Python 编写,使 Claude 能够连接 ServiceNow 实例、查询记录并执行操作。支持基本认证、OAuth 和 API Key 三种认证方式,提供事件管理、服务目录、变更管理、敏捷管理(用户故事/史诗/冲刺任务/项目)、工作流管理、脚本包管理、变更集管理、知识库管理、用户与组管理以及 UI 策略等一整套工具,覆盖大部分 ServiceNow ITSM 场景。通过 MCP_TOOL_PACKAGE 环境变量可以按角色(如服务台、目录构建者、变更协调员等)加载工具子集,以控制暴露给模型的工具数量。支持 stdio 和基于 SSE 的 Web 服务两种通信模式。

工具能力

create_incident
在 ServiceNow 中创建新的事件记录
update_incident
更新已有事件记录的字段
add_comment
为事件添加评论
resolve_incident
将事件标记为已解决
list_incidents
按条件列出事件记录
list_catalog_items
列出服务目录中的条目
get_catalog_item
获取特定服务目录条目的详情
list_catalog_categories
列出服务目录分类
create_catalog_category
创建新的服务目录分类
update_catalog_category
更新已有的服务目录分类
move_catalog_items
在分类之间移动目录条目
create_catalog_item_variable
为目录条目创建表单字段(变量)
list_catalog_item_variables
列出目录条目的所有变量
update_catalog_item_variable
更新目录条目的变量
list_catalogs
列出服务目录
get_optimization_recommendations
获取服务目录优化建议
update_catalog_item
更新服务目录条目
create_change_request
创建新的变更请求
update_change_request
更新已有的变更请求
list_change_requests
按条件列出变更请求
get_change_request_details
获取特定变更请求的详细信息
add_change_task
为变更请求添加任务
submit_change_for_approval
提交变更请求以供审批
approve_change
批准变更请求
reject_change
拒绝变更请求
create_story
创建新的用户故事
update_story
更新已有的用户故事
list_stories
按条件列出用户故事
create_story_dependency
在两个故事之间创建依赖关系
delete_story_dependency
删除故事之间的依赖关系
create_epic
创建新的史诗(Epic)
update_epic
更新已有的史诗
list_epics
按条件列出史诗
create_scrum_task
创建新的 Scrum 任务
update_scrum_task
更新已有的 Scrum 任务
list_scrum_tasks
按条件列出 Scrum 任务
create_project
创建新的项目
update_project
更新已有的项目
list_projects
按条件列出项目
list_workflows
列出工作流
get_workflow
获取特定工作流的详情
create_workflow
创建新的工作流
update_workflow
更新已有的工作流
delete_workflow
删除工作流
list_script_includes
列出脚本包(Script Include)
get_script_include
获取特定脚本包的详情
create_script_include
创建新的脚本包
update_script_include
更新已有的脚本包
delete_script_include
删除脚本包
list_changesets
按条件列出变更集
get_changeset_details
获取特定变更集的详细信息
create_changeset
创建新的变更集
update_changeset
更新已有的变更集
commit_changeset
提交变更集
publish_changeset
将变更集发布到生产环境
add_file_to_changeset
向变更集添加文件
create_knowledge_base
创建新的知识库
list_knowledge_bases
按条件列出知识库
create_category
在知识库中创建分类
create_article
创建新的知识文章
update_article
更新已有的知识文章
publish_article
发布知识文章
list_articles
按条件列出知识文章
get_article
获取特定知识文章
create_user
创建新用户
update_user
更新已有用户信息
get_user
按 ID、用户名或邮箱获取用户
list_users
按条件列出用户
create_group
创建新的用户组
update_group
更新已有的用户组
add_group_members
向用户组添加成员
remove_group_members
从用户组移除成员
list_groups
按条件列出用户组
create_ui_policy
创建 UI 策略(通常用于目录条目)
create_ui_policy_action
创建与 UI 策略关联的动作,用于控制变量状态(可见性、必填等)
list_tool_packages
列出配置中定义的所有可用工具包,并显示当前加载的工具包

安装接入

  1. 克隆仓库:git clone https://github.com/echelon-ai-labs/servicenow-mcp.git 并进入目录。2. 创建虚拟环境并安装:python -m venv .venv,激活后运行 pip install -e .(需要 Python 3.11+)。3. 创建 .env 文件,填入 SERVICENOW_INSTANCE_URL、SERVICENOW_USERNAME、SERVICENOW_PASSWORD 及 SERVICENOW_AUTH_TYPE(basic/oauth/api_key,OAuth 还需 CLIENT_ID/CLIENT_SECRET/TOKEN_URL,API Key 需 SERVICENOW_API_KEY)。4. 以 stdio 模式运行 python -m servicenow_mcp.cli,或使用 servicenow-mcp-sse 启动 SSE 模式的 Web 服务(默认监听 0.0.0.0:8080)。5. 如需接入 Claude Desktop,在 claude_desktop_config.json 中按示例配置 command、args 与 env 字段后重启 Claude Desktop。6. 可选:设置 MCP_TOOL_PACKAGE 环境变量并编辑 config/tool_packages.yaml 来按角色限制加载的工具集合。
claude_desktop_config.json
{"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"}}}}

选型与风险

适合谁

  • 拥有 ServiceNow 实例访问权限的 IT 服务台、系统管理员
  • 需要通过对话方式操作变更管理、目录构建或知识库的 ServiceNow 管理员/开发者
  • 希望用 Claude 自动化敏捷项目管理(故事/史诗/任务)的团队

不适合谁

  • 没有 ServiceNow 实例或有效凭据的用户
  • 只需要只读查询、不希望模型具备创建/更新/删除权限的场景(默认 full 工具包授予完整写权限)
  • 需要官方 ServiceNow 支持或 SLA 保障的企业场景(本项目由第三方社区维护,非 ServiceNow 官方产品)

所需权限

  • ServiceNow 实例 URL 及具备相应表(incident、change_request、sc_cat_item、kb_knowledge、sys_user、sys_user_group、sys_script_include、workflow、sys_update_set 等)读写权限的账号凭据
  • Basic 认证的用户名/密码,或 OAuth 客户端 ID/密钥,或 API Key(三选一)
  • 本地文件系统权限以读取存放凭据的 .env 文件

风险与副作用

  • 默认加载的 full 工具包对事件、变更、目录、知识库、用户/组等具有创建、更新甚至删除权限,误用可能造成生产数据被修改或删除
  • 凭据以明文形式保存在 .env 文件或 Claude Desktop 配置文件中,存在泄露风险
  • approve_change / reject_change / publish_changeset / publish_article 等工具会直接影响 ServiceNow 生产流程和可见性,需谨慎授权
  • SSE 模式默认监听 0.0.0.0,若未做好网络隔离可能被未授权访问

常见排障

  1. 报错 'argument after ** must be a mapping, not CreateChangeRequestParams':确认传给 create_change_request 的是字典而非 Pydantic 模型对象
  2. 报错 'Missing required parameter type':创建变更请求时需同时提供 short_description 和 type
  3. 报错 'Invalid value for parameter type':type 只能取 normal、standard 或 emergency
  4. 报错 'Cannot find get_headers method':检查 auth_manager 和 server_config 参数传递顺序是否正确
  5. 确认 .env 中的 SERVICENOW_INSTANCE_URL、认证方式与凭据字段匹配所选 SERVICENOW_AUTH_TYPE
  6. 若工具未按预期出现,检查 MCP_TOOL_PACKAGE 是否设置为有效的包名(见 config/tool_packages.yaml)

使用场景

让 Claude 创建、更新、评论和解决 ServiceNow 事件
通过自然语言查询和管理服务目录条目、分类与表单变量
创建和推进变更请求的审批流程
管理用户故事、史诗、Scrum 任务与项目等敏捷开发数据
创建、发布和维护知识库文章
管理 ServiceNow 用户、用户组及其成员关系
查看、创建和发布用于 ServiceNow 平台开发的变更集与脚本包

支持客户端

Claude Desktop完整支持