项目简介 ServiceNow MCP 服务器项目提供了一个将 ServiceNow 丰富的 API 封装为 Model Context Protocol (MCP) 服务器的解决方案。通过此服务器,大型语言模型 (LLM) 客户端能够以标准化的方式访问 ServiceNow 实例中的各种数据和功能,例如查询配置项 (CMDB)、管理变更请求、处理事件、获取知识库文章以及操作数据表等。它为 LLM 提供了强大的企业级 IT 服务管理 (ITSM) 和 IT 运营管理 (ITOM) 自动化能力,支持构建智能代理进行 ServiceNow 交互。

主要功能点

  • 应用程序服务管理: 获取和管理 ServiceNow 应用程序服务的信息。
  • CMDB 查询: 检索配置管理数据库 (CMDB) 中的配置项信息。
  • CI/CD 流程自动化: 支持批量安装、实例扫描、应用仓库操作(安装、发布、回滚)、插件激活与回滚、远程源代码控制变更应用、测试套件运行、更新集管理等 CI/CD 相关操作。
  • 变更管理: 获取、创建、更新、批准、拒绝、删除变更请求及其关联任务和冲突扫描。
  • 导入集操作: 支持插入单个或多个导入集记录。
  • 事件管理: 查询和创建 ServiceNow 事件。
  • 知识库查询: 检索 ServiceNow 知识库文章,包括特色文章和最常查看文章。
  • 通用表格操作: 对 ServiceNow 中的任意表格进行记录的增、删、改、查。
  • 自定义 API 请求: 提供灵活的通用 API 请求接口,以处理未显式封装的 ServiceNow 端点。

安装步骤

  1. 安装 Python 包:
    python -m pip install servicenow-api
  2. 拉取 Docker 镜像 (推荐):
    docker pull knucklessg1/servicenow:latest
    这将获取预构建的 ServiceNow MCP 服务器 Docker 镜像,方便快速部署。

服务器配置 MCP 客户端需要配置 MCP 服务器的启动命令及其参数才能建立连接。以下是 MCP 客户端配置 ServiceNow MCP 服务器的 JSON 格式示例。您需要根据您的 ServiceNow 实例信息填充环境变量。

{
  "mcpServers": {
    "servicenow": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "servicenow-api",
        "servicenow-mcp"
      ],
      "env": {
        "SERVICENOW_INSTANCE": "您的 ServiceNow 实例的 URL,例如:https://yourinstance.servicenow.com",
        "SERVICENOW_USERNAME": "用于基本认证的 ServiceNow 用户名",
        "SERVICENOW_PASSWORD": "用于基本认证的 ServiceNow 密码",
        "SERVICENOW_CLIENT_ID": "用于 OAuth 认证的 ServiceNow Client ID (如果使用 OAuth 认证,否则可省略)",
        "SERVICENOW_CLIENT_SECRET": "用于 OAuth 认证的 ServiceNow Client Secret (如果使用 OAuth 认证,否则可省略)",
        "SERVICENOW_VERIFY": "是否验证 SSL 证书,例如:True 或 False (默认为 True)"
      },
      "timeout": 200000
    }
  }
}

基本使用方法

  1. 启动 MCP 服务器 (通过 Docker): 创建一个名为 'compose.yml' 的文件,内容如下:
    services:
      servicenow-mcp:
        image: knucklessg1/servicenow:latest
        environment:
          - HOST=0.0.0.0
          - PORT=8004
          # 以下环境变量需要替换为您的 ServiceNow 实例凭证
          - SERVICENOW_INSTANCE=https://yourinstance.servicenow.com
          - SERVICENOW_USERNAME=your_username
          - SERVICENOW_PASSWORD=your_password
          - SERVICENOW_CLIENT_ID=your_client_id # OAuth 认证可选
          - SERVICENOW_CLIENT_SECRET=your_client_secret # OAuth 认证可选
          - SERVICENOW_VERIFY=True # 或 False
        ports:
          - "8004:8004" # 将容器的 8004 端口映射到主机的 8004 端口
    然后在终端中导航到 'compose.yml' 所在的目录,运行以下命令启动服务器:
    docker-compose up -d
  2. MCP 客户端连接: 根据上述 'mcp.json' 配置,您的 MCP 客户端(例如:LLM 代理)将能够通过 JSON-RPC 协议连接到这个 ServiceNow MCP 服务器,并调用其注册的工具来执行 ServiceNow 上的操作。例如,一个 LLM 代理可以调用 'get_incident' 工具来查询 ServiceNow 中的事件,或调用 'create_change_request' 来创建新的变更请求。

信息

分类

商业系统