使用说明

项目简介

ServiceNow MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在连接大型语言模型 (LLM) 客户端(如 Claude)与 ServiceNow 平台。它充当桥梁,允许 LLM 通过标准化的 MCP 协议安全地访问和操作 ServiceNow 实例中的资源和功能,例如:

  • 资源 (Resources): 托管和管理 ServiceNow 的数据,如事件、服务目录、变更请求、工作流、脚本包含和变更集,为 LLM 提供上下文信息。
  • 工具 (Tools): 注册和执行各种 ServiceNow 操作,例如创建、更新、查询事件,管理服务目录项,处理变更请求和工作流,以及管理代码变更,让 LLM 能够调用 ServiceNow 的功能。
  • Prompt 模板 (Prompts): 虽然仓库文档中没有明确提及 Prompt 模板,但通过提供的工具和资源,可以构建基于 ServiceNow 数据的定制化 Prompt,以实现可控的 LLM 交互模式。

主要功能点

  • 连接 ServiceNow 实例: 支持多种身份验证方式,包括基本认证、OAuth 和 API 密钥,确保连接安全可靠。
  • 事件管理工具: 提供创建、更新、添加评论和解决事件的功能,方便 LLM 处理 IT 服务台的事件管理任务。
  • 服务目录工具: 支持列出、获取服务目录项和类别,以及创建、更新和移动服务目录类别,使 LLM 能够理解和操作服务目录。
  • 目录优化工具: 提供分析服务目录并给出优化建议的功能,帮助改进服务目录的质量和用户体验。
  • 变更管理工具: 支持创建、更新、列出变更请求,添加变更任务,提交、批准和拒绝变更请求,覆盖变更管理的完整生命周期。
  • 工作流管理工具: 提供工作流的列表、详情查询,以及工作流的创建、更新、激活、停用和活动管理,使 LLM 能够理解和操作 ServiceNow 工作流。
  • 变更集管理工具: 支持变更集的列表、详情查询,以及变更集的创建、更新、提交、发布和文件管理,方便 LLM 管理 ServiceNow 的代码变更。
  • 脚本包含管理工具: 提供脚本包含的列表、详情查询,以及脚本包含的创建、更新和删除,方便 LLM 管理 ServiceNow 的脚本代码。
  • 详细的文档和示例: 仓库包含详细的文档和示例脚本,帮助用户快速上手和理解如何使用 ServiceNow MCP Server。

安装步骤

  1. 先决条件:

    • Python 3.11 或更高版本
    • 可访问的 ServiceNow 实例以及相应的访问凭据
  2. 克隆仓库:

    git clone https://github.com/osomai/servicenow-mcp.git
    cd servicenow-mcp
  3. 创建虚拟环境并安装:

    python -m venv .venv
    source .venv/bin/activate   # Linux/macOS
    .venv\Scripts\activate      # Windows
    pip install -e .
  4. 配置环境变量: 创建 '.env' 文件,并根据你的 ServiceNow 实例配置以下环境变量(选择一种认证方式配置):

    • 基本认证:

      SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
      SERVICENOW_USERNAME=your-username
      SERVICENOW_PASSWORD=your-password
      SERVICENOW_AUTH_TYPE=basic
    • 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
      SERVICENOW_USERNAME=your-username  # OAuth 用户名 (Resource Owner Password Credentials Grant)
      SERVICENOW_PASSWORD=your-password  # OAuth 密码 (Resource Owner Password Credentials Grant)
    • API 密钥认证:

      SERVICENOW_AUTH_TYPE=api_key
      SERVICENOW_API_KEY=your-api-key

服务器配置

要将 ServiceNow MCP 服务器配置给 MCP 客户端(例如 Claude Desktop),你需要提供服务器的启动命令和参数。以下是一个 JSON 格式的配置示例,你需要将其添加到 MCP 客户端的配置文件中。

{
  "server name": "ServiceNow",
  "command": "/path/to/your/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"
  }
}

配置参数说明:

  • '"server name"': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
  • '"command"': 启动服务器的命令,通常是 Python 解释器的路径。请根据你的虚拟环境实际路径进行修改。
  • '"args"': 传递给启动命令的参数,这里指定运行 'servicenow_mcp.cli' 模块来启动 MCP 服务器。
  • '"env"': 环境变量配置,用于传递 ServiceNow 实例的连接信息和认证凭据。你需要将占位符 '"https://your-instance.service-now.com"'、'"your-username"'、'"your-password"' 替换为你的实际 ServiceNow 实例信息和凭据。'"SERVICENOW_AUTH_TYPE"' 指定认证类型,根据你的 '.env' 文件配置选择 '"basic"'、'"oauth"' 或 '"api_key"'。

注意: '/path/to/your/servicenow-mcp/.venv/bin/python' 需要替换为你实际的虚拟环境 Python 解释器路径。你可以在激活虚拟环境后,使用 'which python' (Linux/macOS) 或 'where python' (Windows) 命令查找。

基本使用方法

  1. 启动服务器: 在命令行中,激活虚拟环境后,运行以下命令启动 ServiceNow MCP Server:

    python -m servicenow_mcp.cli

    或者,你也可以直接设置环境变量后运行:

    SERVICENOW_INSTANCE_URL=... SERVICENOW_USERNAME=... SERVICENOW_PASSWORD=... SERVICENOW_AUTH_TYPE=basic python -m servicenow_mcp.cli
  2. 配置 MCP 客户端: 根据 MCP 客户端(例如 Claude Desktop)的文档,将上面生成的 JSON 配置信息添加到客户端的配置文件中。

  3. 通过 MCP 客户端与 ServiceNow 交互: 配置完成后,你就可以在 MCP 客户端中使用自然语言指令,通过 ServiceNow MCP Server 与 ServiceNow 实例进行交互,例如:

    • '列出最近的 5 个事件'
    • '创建一个高优先级的网络中断事件,描述为东区网络出现严重故障'
    • '显示编号为 INC0010001 的事件详情'
    • '请批准编号为 CHG0010002 的变更请求'
    • '在服务目录中查找包含 "笔记本电脑" 的条目'

    更多示例指令可以参考仓库 README.md 中的 "Example Usage with Claude" 部分。

使用 MCP CLI 安装 (可选):

如果你安装了 'mcp-cli' 工具,可以使用以下命令更方便地安装和配置 ServiceNow MCP Server:

mcp install src/servicenow_mcp/server.py -f .env

这个命令会自动读取 '.env' 文件中的环境变量来配置服务器。

信息

分类

商业系统