使用说明
项目简介
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。
安装步骤
-
先决条件:
- Python 3.11 或更高版本
- 可访问的 ServiceNow 实例以及相应的访问凭据
-
克隆仓库:
git clone https://github.com/osomai/servicenow-mcp.git cd servicenow-mcp -
创建虚拟环境并安装:
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows pip install -e . -
配置环境变量: 创建 '.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) 命令查找。
基本使用方法
-
启动服务器: 在命令行中,激活虚拟环境后,运行以下命令启动 ServiceNow MCP Server:
python -m servicenow_mcp.cli或者,你也可以直接设置环境变量后运行:
SERVICENOW_INSTANCE_URL=... SERVICENOW_USERNAME=... SERVICENOW_PASSWORD=... SERVICENOW_AUTH_TYPE=basic python -m servicenow_mcp.cli -
配置 MCP 客户端: 根据 MCP 客户端(例如 Claude Desktop)的文档,将上面生成的 JSON 配置信息添加到客户端的配置文件中。
-
通过 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' 文件中的环境变量来配置服务器。
信息
分类
商业系统