← 返回目录
S

ServiceNow MCP Server

社区
让 Claude 通过 MCP 连接并操作 ServiceNow 实例
分类
其他 第 158 / 230
Stars
★ 305 热门
传输方式
stdio(本地进程) · SSE
运行环境
Python 3.11+
凭据
需要 API Key / 凭据
许可证
MIT
最近提交
⚠
工具数
76
49FMRS · D

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

最强项 · 文档质量 16/20 最弱项 · 安全与权限 4/20

可靠性
7/20
安全与权限
4/20
维护活跃度
9/20
文档质量
16/20
安装易用性
13/20
查看各项评分依据
可靠性 7/20
本次审查仅基于 README 文本,未提供服务器清单(manifest 标注为'not cached'),也未看到任何源码、CI 工作流或测试文件作为证据,因此无法验证 MCP 初始化/工具列表握手是否可复现,也无法确认 README 中列出的约70个工具的实际行为与声明是否一致。README'故障排查'一节反而透露出历史上存在真实的接口不一致问题(如把 Pydantic 模型误传给需要字典的函数、参数顺序错误等),说明早期实现并不稳定,虽称'已自动处理',但没有可验证的回归测试或变更记录支撑这一说法。按静态评审校准规则,在缺乏可验证执行证据(CI+测试)的情况下可靠性不得超过12分,鉴于证据几乎为零且存在已知历史缺陷记录,给予7分。
安全与权限 4/20
触发红线:工具集中包含多个不可逆或部署类操作(如 delete_workflow、delete_script_include、delete_story_dependency、remove_group_members、commit_changeset/publish_changeset 发布到生产环境、approve_change/reject_change 等),README 全文未提及任何二次确认、干跑(dry-run)、审批门槛或最小权限范围限定机制,这些操作看起来会在被调用时直接对生产 ServiceNow 实例执行。此外凭证通过 .env 明文配置(Basic/OAuth/API Key),文档中未说明凭证存储的安全建议、作用域限制或最小权限指导,也未讨论出站网络边界或数据外泄风险的处理方式。按规则,不可逆删除/发布类操作默认无确认属于红线情形,故安全分控制在0-4区间。
维护活跃度 9/20
仓库为 MIT 许可、未归档,存在32个未关闭 issue,说明项目仍有人在使用与反馈,但本次审查未获得提交历史、发布节奏、变更日志或依赖更新策略等可验证证据,README 中也未说明版本号管理、安全响应渠道或维护者身份。贡献指引仅为通用的 fork+PR 流程,没有更具体的治理说明。由于关键维护活跃度证据缺失,只能基于'未归档+有许可证+有响应迹象'给予中等偏下的分数。
文档质量 16/20
文档覆盖面较广:包含安装步骤、三种认证方式配置示例、stdio 与 SSE 两种运行模式、工具打包(MCP_TOOL_PACKAGE)机制说明、近70个工具的功能列表、大量自然语言使用示例、故障排查条目,以及指向 docs/ 目录下若干专题文档(catalog.md、change_management.md 等)的链接和示例脚本引用。扣分点在于:各工具缺乏具体参数级说明(仅有名称+一句话描述,没有参数类型/必填项/返回结构),没有关于速率限制、成本、数据留存或权限边界的披露,故未给满分。
安装易用性 13/20
安装路径清晰:克隆仓库、创建虚拟环境、pip install -e .、编写 .env 凭证文件、通过 CLI 或 mcp install 注册,并提供了 Claude Desktop 的 claude_desktop_config.json 配置示例,以及 SSE 模式的主机/端口自定义说明,整体步骤明确且给出了具体代码示例。但根据静态评审规则,在没有 CI 工作流和实际测试证明这些步骤可复现之前,安装易用性分数不得超过15分;同时说明中依赖用户手动填写真实凭证、路径需要根据操作系统自行调整,存在一定手工/环境相关的脆弱性,故未打满该上限。

静态评测 · 未实际运行收录于 2026-08-26

查看 FMRS 评分方法 →

选型与风险

能访问什么访问网络修改第三方账户数据

适合谁

  • 拥有 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,若未做好网络隔离可能被未授权访问

安装接入

准备工作

运行环境:Python 3.11+

SERVICENOW_INSTANCE_URL 必填 您的 ServiceNow 实例地址,例如 https://your-instance.service-now.com,由管理员提供。
SERVICENOW_USERNAME 可选密钥 Basic 认证使用的 ServiceNow 用户名。
SERVICENOW_PASSWORD 可选密钥 Basic 认证使用的 ServiceNow 密码。
SERVICENOW_CLIENT_SECRET 可选密钥 OAuth 认证的客户端密钥。
SERVICENOW_API_KEY 可选密钥 API Key 认证时使用的 API 密钥。
其他可选配置项(4 个)
SERVICENOW_AUTH_TYPE 可选 认证方式:basic、oauth 或 api_key。
SERVICENOW_CLIENT_ID 可选 OAuth 认证的客户端 ID,在 ServiceNow 实例的 OAuth 应用注册中创建。
SERVICENOW_TOKEN_URL 可选 OAuth 令牌端点,通常为 https://your-instance.service-now.com/oauth_token.do。
MCP_TOOL_PACKAGE 可选 可选,指定要加载的工具包名称(如 service_desk、catalog_builder),默认加载 full。
  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"}}}}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "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"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add ServiceNow -e SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com -e SERVICENOW_USERNAME=your-username -e SERVICENOW_PASSWORD=your-password -e SERVICENOW_AUTH_TYPE=basic -- /Users/yourusername/dev/servicenow-mcp/.venv/bin/python -m servicenow_mcp.cli

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

启动 python -m servicenow_mcp.cli 后,在客户端工具列表中应出现 list_incidents 等工具;运行 "List all high priority incidents" 若能返回实例数据即证明连接成功。

常见排障

  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)

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 列出分配给网络团队的所有高优先级事件。
  • 创建一个变更请求,用于明晚对服务器进行安全补丁维护。
  • 显示服务目录中的所有条目。
  • 在“网络故障排除”知识库中撰写一篇关于 VPN 设置的文章并发布。

工具能力 76

create_incident 写入
在 ServiceNow 中创建新的事件记录
update_incident 写入
更新已有事件记录的字段
add_comment 写入
为事件添加评论
resolve_incident 写入
将事件标记为已解决
list_incidents 只读
按条件列出事件记录
list_catalog_items 只读
列出服务目录中的条目
get_catalog_item 只读
获取特定服务目录条目的详情
list_catalog_categories 只读
列出服务目录分类
展开其余 68 个工具
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 只读
列出配置中定义的所有可用工具包,并显示当前加载的工具包

使用场景

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

支持客户端

Claude Desktop

依据项目文档列出,未经本站实测。

详细介绍

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

同类可选方案

BioMCP 75 · B

统一的命令行语法,接入约30个可信生物医学数据源。

★ 659 · 工具数 11 与当前对比 →

源版本 06250607bdfc 数据同步于 2026-10-19 查看 FMRS 评分方法