Token导航 LogoToken导航TokenDH.com
working service now MCP server logo
AI代理stdio官方级别未说明来源级核验

working service now MCP server

MCP Server

ServiceNow MCP服务器是一个实现模型完成协议(MCP)的服务器,允许Claude与ServiceNow实例进行交互,提供数据查询、记录管理、工作流执行等功能。

工具数

61

提示词数

0

GitHub Stars

0

资源数

0
工作流管理PythonClaude数据分析Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Vel-12

提供方

Vel-12

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

](https://mseep.ai/app/osomai-servicenow-mcp)

ServiceNow MCP服务器

ServiceNow的模型完成协议(MCP)服务器实现,允许Claude与ServiceNow实例交互。

概述

该项目实现了一个MCP服务器,使Claude能够连接到ServiceNow实例,检索数据,并通过ServiceNow API执行操作。它充当了Claude和ServiceNow之间的桥梁,实现了无缝集成。

特性

  • 使用各种身份验证方法(Basic、OAuth、API Key)连接到ServiceNow实例
  • 查询ServiceNow记录和表
  • 创建、更新和删除ServiceNow记录
  • 执行ServiceNow脚本和工作流
  • 访问并查询ServiceNow服务目录
  • 分析和优化ServiceNow服务目录
  • 故障排除的调试模式
  • 支持stdio和服务器发送事件(SSE)通信

安装

先决条件

  • Python 3.11或更高版本
  • 具有适当访问凭据的ServiceNow实例

设置

  1. 克隆此存储库:
   git clone https://github.com/yourusername/servicenow-mcp.git
   cd servicenow-mcp
  1. 创建虚拟环境并安装软件包:
   python -m venv .venv
   source .venv/bin/activate  # On Windows: .venv\Scripts\activate
   pip install -e .
  1. 创建一个 .env 使用您的ServiceNow凭据文件:
   SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
   SERVICENOW_USERNAME=your-username
   SERVICENOW_PASSWORD=your-password
   SERVICENOW_AUTH_TYPE=basic  # or oauth, api_key

用法

标准(stdio)模式

要启动MCP服务器,请执行以下操作:

python -m servicenow_mcp.cli

或者使用环境变量:

SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com SERVICENOW_USERNAME=your-username SERVICENOW_PASSWORD=your-password SERVICENOW_AUTH_TYPE=basic python -m servicenow_mcp.cli

服务器发送事件(SSE)模式

ServiceNow MCP服务器还可以作为web服务器运行,使用服务器发送事件(SSE)进行通信,这允许更灵活的集成选项。

启动SSE服务器

您可以使用提供的CLI启动SSE服务器:

servicenow-mcp-sse --instance-url=https://your-instance.service-now.com --username=your-username --password=your-password

默认情况下,服务器将侦听 0.0.0.0:8080。您可以自定义主机和端口:

servicenow-mcp-sse --host=127.0.0.1 --port=8000

连接到SSE服务器

SSE服务器公开了两个主要端点:

  • /sse -SSE连接端点
  • /messages/ -向服务器发送消息的端点

示例

请参阅 examples/sse_server_example.py 文件,以获取设置和运行SSE服务器的完整示例。

from servicenow_mcp.server import ServiceNowMCP
from servicenow_mcp.server_sse import create_starlette_app
from servicenow_mcp.utils.config import ServerConfig, AuthConfig, AuthType, BasicAuthConfig
import uvicorn

# Create server configuration
config = ServerConfig(
    instance_url="https://your-instance.service-now.com",
    auth=AuthConfig(
        type=AuthType.BASIC,
        config=BasicAuthConfig(
            username="your-username",
            password="your-password"
        )
    ),
    debug=True,
)

# Create ServiceNow MCP server
servicenow_mcp = ServiceNowMCP(config)

# Create Starlette app with SSE transport
app = create_starlette_app(servicenow_mcp, debug=True)

# Start the web server
uvicorn.run(app, host="0.0.0.0", port=8080)

工具包装(可选)

为了管理暴露于语言模型的工具数量(特别是在有限制的环境中),ServiceNow MCP服务器支持加载称为“包”的工具子集。这是通过控制 MCP_TOOL_PACKAGE 环境变量。

配置

  1. 环境变量: 设置 MCP_TOOL_PACKAGE 将环境变量设置为所需包的名称。
   export MCP_TOOL_PACKAGE=catalog_builder
  1. 包装定义: 可用的软件包及其包含的工具在中定义 config/tool_packages.yaml。您可以自定义此文件以创建自己的包。

行为

  • 如果 MCP_TOOL_PACKAGE 设置为中定义的有效包名称 config/tool_packages.yaml,将只加载该包中列出的工具。
  • 如果 MCP_TOOL_PACKAGE未设置 或者是空的 full 默认情况下加载包(包含所有工具)。
  • 如果 MCP_TOOL_PACKAGE 设置为无效的包名称 none 包已加载(除以下工具外,无其他工具 list_tool_packages),并记录警告。
  • 设置 MCP_TOOL_PACKAGE=none 明确不加载任何工具(除非 list_tool_packages).

可用包(默认)

默认值 config/tool_packages.yaml 包括以下基于角色的包:

  • service_desk:事件处理和基本用户/知识查找工具。
  • catalog_builder:用于创建和管理服务目录项、类别、变量和相关脚本(UI策略、用户标准)的工具。
  • change_coordinator:用于管理变更请求生命周期的工具,包括任务和审批。
  • knowledge_author:用于创建和管理知识库、类别和文章的工具。
  • platform_developer:用于服务器端脚本编写(脚本包括)、工作流开发和部署(变更集)的工具。
  • system_administrator:用于用户/组管理和查看系统日志的工具。
  • full:包括所有可用工具(默认)。
  • none:不包括工具(除 list_tool_packages).

内省工具

  • list_tool_packages:列出配置中定义的所有可用工具包名称,并显示当前加载的包。此工具在所有软件包中都可用,除了 none.

可用工具

注: 以下工具的可用性取决于加载的工具包(请参阅上文的工具包部分)。默认情况下(full 软件包),所有工具都可用。

事件管理工具

  1. 创建事件 -在ServiceNow中创建新事件
  2. update_事件 -在ServiceNow中更新现有事件
  3. 添加注释 -在ServiceNow中为事件添加评论
  4. resolve_事件 -在ServiceNow中解决事件
  5. 事故列表 -列出ServiceNow中的事件

服务目录工具

  1. list_catalog_items -列出ServiceNow中的服务目录项
  2. get_catalog_item -从ServiceNow获取特定的服务目录项
  3. 列表_目录_类别 -从ServiceNow列出服务目录类别
  4. 创建目录类别 -在ServiceNow中创建新的服务目录类别
  5. 更新目录类别 -更新ServiceNow中的现有服务目录类别
  6. move_catalog_items -在ServiceNow中在类别之间移动目录项
  7. create_catalog_item_variable -为目录项创建新变量(表单字段)
  8. list_catalog_item_variables -列出目录项的所有变量
  9. update_catalog_item_variable -更新目录项的现有变量
  10. 列表目录 -列出ServiceNow中的服务目录

目录优化工具

  1. get_optimization_推荐 -获取优化服务目录的建议
  2. update_catalog_item -更新服务目录项

变更管理工具

  1. create_change_request -在ServiceNow中创建新的更改请求
  2. update_change_request -更新现有变更请求
  3. list_change_requests -列出带有筛选选项的更改请求
  4. get_change_request_details -获取特定变更请求的详细信息
  5. add_change_task -将任务添加到更改请求中
  6. 提交_更改_批准 -提交变更请求以供批准
  7. 批准_更改 -批准变更请求
  8. 拒绝_更改 -拒绝更改请求

工作流管理工具

  1. list_workflows -列出ServiceNow中的工作流
  2. get_workflow -从ServiceNow获取特定工作流
  3. 创建工作流 -在ServiceNow中创建新工作流
  4. update_workflow -在ServiceNow中更新现有工作流
  5. 删除工作流 -从ServiceNow中删除工作流

脚本包含管理工具

  1. list_script_包含 -列表脚本包括来自ServiceNow的
  2. get_script_include -从ServiceNow获取特定的脚本包含
  3. create_script_include -在ServiceNow中创建新脚本
  4. update_script_include -更新ServiceNow中包含的现有脚本
  5. delete_script_include -从ServiceNow中删除脚本包含

变更集管理工具

  1. list_changesets -列出来自ServiceNow的带有筛选选项的变更集
  2. get_changeset_details -获取特定变更集的详细信息
  3. create_changeset -在ServiceNow中创建新的变更集
  4. update_changeset -更新现有变更集
  5. commit_changeset -提交变更集
  6. 发布_变更集 - 发布变更集
  7. add_file_to_changeset -将文件添加到变更集中

知识库管理工具

  1. 创建知识库 -在ServiceNow中创建新的知识库
  2. list_知识库 -列出具有过滤选项的知识库
  3. 创建_类别 -在知识库中创建新类别
  4. 创建_文章 -在ServiceNow中创建新的知识文章
  5. 更新_文章 -更新ServiceNow中现有的知识文章
  6. 发布_文章 -在ServiceNow上发布知识文章
  7. list_文章 -列出具有筛选选项的知识文章
  8. 获取_文章 -按ID获取特定知识文章

用户管理工具

  1. create_user -在ServiceNow中创建新用户
  2. update_user -在ServiceNow中更新现有用户
  3. get_user -通过ID、用户名或电子邮件获取特定用户
  4. list_users -列出具有筛选选项的用户
  5. 创建组 -在ServiceNow中创建新组
  6. update_group -在ServiceNow中更新现有组
  7. add_group_members -在ServiceNow中将成员添加到组
  8. remove_group_members -从ServiceNow中的组中删除成员
  9. list_groups -列出具有筛选选项的组

UI策略工具

  1. create_ui_policy -创建ServiceNow UI策略,通常用于目录项。
  2. create_ui_policy_action -创建与UI策略关联的操作,以控制变量状态(可见性、强制性等)。

使用MCP CLI

ServiceNow MCP服务器可以与MCP CLI一起安装,这为向Claude注册服务器提供了一种方便的方法。

# Install the ServiceNow MCP server with environment variables from .env file
mcp install src/servicenow_mcp/server.py -f .env

此命令将向Claude注册ServiceNow MCP服务器,并将其配置为使用.env文件中的环境变量。

与Claude Desktop集成

要在Claude Desktop中配置ServiceNow MCP服务器,请执行以下操作:

  1. 在以下位置编辑Claude Desktop配置文件 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或适用于您操作系统的适当路径:
{
  "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以应用更改

Claude使用示例

以下是一些自然语言查询示例,您可以使用Claude通过MCP服务器与ServiceNow交互:

事件管理示例

  • “造成东部地区网络中断的新事件”
  • “将事件INC0010001的优先级更新为高”
  • “在INC0010001事件中添加一条评论,称该问题正在调查中”
  • “解决事件INC0010001,并注明服务器已重新启动”
  • “列出分配给网络团队的所有高优先级事件”
  • “列出分配给网络团队的所有活动P1事件。”

服务目录示例

  • “显示服务目录中的所有项目”
  • “列出所有服务目录类别”
  • “获取有关笔记本电脑请求目录项的详细信息”
  • “显示硬件类别中的所有目录项”
  • 在服务目录中搜索“软件”
  • 在服务目录中创建一个名为“云服务”的新类别
  • “更新‘硬件’类别,将其重命名为‘it设备’”
  • 将“虚拟机”目录项移至“云服务”类别
  • “在‘IT设备’类别下创建一个名为‘监视器’的子类别”
  • “通过将所有软件项目移至“软件”类别来重新组织我们的目录”
  • “为笔记本电脑请求目录项创建描述字段”
  • “添加一个下拉字段,用于选择目录项中的笔记本电脑型号”
  • “列出VPN访问请求目录项的所有表单字段”
  • “在软件申请表中强制填写部门字段”
  • “更新成本中心字段的帮助文本”
  • “显示系统中的所有服务目录”
  • “列出所有硬件目录项。”
  • “查找‘新笔记本电脑请求’的目录项。”
  • “显示‘新笔记本电脑请求’项的变量。”
  • 为“新员工设置”目录项创建一个名为“department_code”的新变量。将其设置为必填字符串字段

目录优化示例

  • “分析我们的服务目录并确定改进机会”
  • “查找描述不佳、需要改进的目录项”
  • “确定我们可能想要退役的低使用率目录项”
  • “查找放弃率高的目录项”
  • “优化我们的硬件类别以改善用户体验”

变更管理示例

  • “为服务器维护创建更改请求,以便明天晚上应用安全补丁”
  • “安排下周二凌晨2点至4点进行数据库升级”
  • “将任务添加到服务器维护更改中,以进行实施前检查”
  • “提交服务器维护更改以供审批”
  • “批准数据库升级更改并添加注释:实施计划看起来很彻底”
  • “显示本周计划的所有紧急更改”
  • “列出分配给网络团队的所有更改”
  • “创建正常的更改请求以升级生产数据库服务器。”
  • 更新更改CHG0012345,将状态设置为“执行”

工作流管理示例

  • “显示ServiceNow中的所有活动工作流”
  • “获取有关事件审批工作流的详细信息”
  • “列出变更请求工作流的所有版本”
  • “显示服务目录请求工作流中的所有活动”
  • “创建处理软件许可证请求的新工作流”
  • “更新事件上报工作流的描述”
  • “激活新员工入职流程”
  • “停用旧密码重置工作流”
  • “将审批活动添加到软件许可证请求工作流中”
  • “更新事件上报工作流中的通知活动”
  • “从变更请求工作流中删除不必要的活动”
  • “重新排序服务目录请求工作流中的活动”

变更集管理示例

  • “列出ServiceNow中的所有变更集”
  • “显示开发人员'john.doe'创建的所有变更集”
  • “获取有关变更集'sys_update_set_123'的详细信息”
  • “为‘人力资源门户’应用程序创建新的变更集”
  • “更新变更集'sys_Update_set_123'的描述”
  • 提交变更集“sys_update_set_123”,并显示消息“已修复登录问题”
  • “将变更集'sys_update_set_123'发布到生产环境”
  • “将文件添加到变更集'sys_update_set_123'”
  • “显示变更集'sys_update_set_123'中的所有更改”

知识库示例

  • “为IT部门创建新的知识库”
  • “列出组织中的所有知识库”
  • “在IT知识库中创建一个名为“网络故障排除”的类别”
  • “在网络故障排除类别中写一篇关于VPN设置的文章”
  • “更新VPN设置文章,以包括移动设备说明”
  • “发布VPN设置文章,以便所有用户都能看到”
  • “列出网络故障排除类别中的所有文章”
  • “显示VPN设置文章的详细信息”
  • “在IT知识库中查找包含“密码重置”的知识文章”
  • “在网络故障排除类别下创建一个名为“无线网络”的子类别”

用户管理示例

  • “在放射科创建新用户Dr.Alice Radiology”
  • “更新Bob的用户记录,使他成为Alice的经理”
  • “将ITIL角色分配给Bob,以便他可以批准更改请求”
  • “列出放射科的所有用户”
  • “创建一个名为‘生物医学工程’的新小组来管理医疗器械”
  • “将管理员用户添加到生物医学工程组作为成员”
  • “更新生物医学工程组以更换其经理”
  • “从生物医学工程组中删除用户”
  • “查找系统中标题中包含“医生”的所有活动用户”
  • “创建一个将担任放射科审批人的用户”
  • “列出系统中的所有IT支持组”

UI策略示例

  • “为名为“显示理由”的“软件请求”项(sys_id:abc…)创建UI策略,该策略在“软件成本”大于100时适用。”
  • 对于UI策略“Show Justification”(sys_id:def…),添加一个操作,使“business_Justification”变量可见且为必填项
  • “为策略‘Show Justice’创建另一个操作,以隐藏‘alternative_software’变量。”

示例脚本

该存储库包括演示如何使用这些工具的示例脚本:

  • examples/catalog_optimization.example.py:演示如何分析和改进ServiceNow服务目录
  • examples/change_management_demo.py:演示如何在ServiceNow中创建和管理更改请求

身份验证方法

基本身份验证

SERVICENOW_AUTH_TYPE=basic
SERVICENOW_USERNAME=your-username
SERVICENOW_PASSWORD=your-password

OAuth身份验证

SERVICENOW_AUTH_TYPE=oauth
SERVICENOW_CLIENT_ID=your-client-id
SERVICENOW_CLIENT_SECRET=your-client-secret
SERVICENOW_TOKEN_URL=https://your-instance.service-now.com/oauth_token.do

API密钥验证

SERVICENOW_AUTH_TYPE=api_key
SERVICENOW_API_KEY=your-api-key

发展

文档

其他文件可在 docs 目录:

故障排除

变更管理工具的常见错误

  1. 错误: `argument after must be a mapping, not CreateChangeRequestParams`**

- 当您传递 CreateChangeRequestParams 对象而不是字典 create_change_request 功能。 - 解决方案:确保您传递的是带有参数的字典,而不是Pydantic模型对象。 - 注意:变更管理工具已经更新,可以自动处理此错误。如果参数被错误地包装或作为Pydantic模型对象传递,这些函数现在将尝试解包参数。

  1. 错误: Missing required parameter 'type'

- 当您没有提供创建更改请求所需的所有参数时,就会发生此错误。 - 解决方案:确保包含所有必需的参数。对于 create_change_request,两者 short_descriptiontype 是必需的。

  1. 错误: Invalid value for parameter 'type'

- 当您为提供的值无效时,会发生此错误 type 参数。 - 解决方案:使用有效值之一:“正常”、“标准”或“紧急”。

  1. 错误: Cannot find get_headers method in either auth_manager or server_config

- 当参数以错误的顺序传递或使用没有所需方法的对象时,会发生此错误。 - 解决方案:确保你通过了 auth_managerserver_config 参数的顺序正确。这些函数已经更新,可以自动处理参数交换。

贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

目录标签

目录标签

工作流管理PythonClaude数据分析ServiceNow集成本地部署MCP协议自动化工具数据查询

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

61

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP