ServiceNow MCP 服务器使用说明
项目简介
ServiceNow MCP 服务器是一个基于 Model Context Protocol (MCP) 标准的应用后端,它充当大型语言模型 (LLM) 客户端与 ServiceNow 实例之间的桥梁。通过这个服务器,LLM 能够以标准化的方式安全地访问 ServiceNow 中的各种信息(如事件、用户、知识库)并执行操作(如创建、更新记录)。
主要功能点
- 资源访问 (Resources): 允许LLM客户端通过统一的URI访问ServiceNow中的数据资源,例如:
- 获取最新事件列表
- 根据编号获取特定事件详情
- 列出用户和知识文章
- 查询可用的ServiceNow表及其数据
- 获取表的结构信息 (schema)
- 工具调用 (Tools): 注册并提供一系列可供LLM调用的操作工具,用于执行ServiceNow中的具体任务,例如:
- 创建新的事件记录
- 更新现有事件记录
- 通过文本或编码查询搜索记录
- 根据系统ID (sys_id) 获取记录
- 向事件添加客户可见的评论
- 向事件添加内部工作笔记
- 支持通过自然语言搜索和更新记录
- 更新ServiceNow中的脚本文件(如Script Includes, Business Rules)
- Prompt模板 (Prompts): 定义结构化的Prompt模板,指导LLM进行特定的交互流程,例如分析事件或创建事件。
安装步骤
该服务器是一个Python包,可以通过PyPI或源码进行安装。
- 从 PyPI 安装 (推荐):
pip install mcp-server-servicenow - 从源码安装 (适用于开发):
git clone https://github.com/michaelbuckner/servicenow-mcp.git cd servicenow-mcp pip install -e .
服务器配置 (面向MCP客户端)
MCP客户端(如Cline)需要知道如何启动并连接到此ServiceNow MCP服务器。典型的配置信息会包含服务器名称、启动命令及其参数。
例如,在MCP客户端的配置文件中,你需要添加类似以下结构的配置(请根据你的实际安装路径和ServiceNow凭据进行修改,这不是实际的代码,而是需要填入客户端配置文件的参数说明):
{ "mcpServers": { "servicenow": { // 服务器的唯一标识名称,可自定义 "command": "/path/to/your/python/executable", // Python可执行文件的完整路径,该Python环境需要安装servicenow-mcp包 "args": [ // 启动服务器进程时传递的命令行参数列表 "-m", "mcp_server_servicenow.cli", // 运行servicenow-mcp包中的CLI模块 "--url", "https://your-instance.service-now.com/", // **必需**: 你的ServiceNow实例URL // 以下是认证参数,选择其中一种方式提供,建议使用环境变量避免凭据泄露 // Basic Auth (用户名/密码) "--username", "your-username", // ServiceNow用户名 (可通过SERVICENOW_USERNAME环境变量提供) "--password", "your-password", // ServiceNow密码 (可通过SERVICENOW_PASSWORD环境变量提供) // Token Auth (OAuth Token) // "--token", "your-oauth-token", // OAuth Token (可通过SERVICENOW_TOKEN环境变量提供) // OAuth Auth (Client ID, Client Secret, Username, Password) // "--client-id", "your-client-id", // OAuth Client ID (可通过SERVICENOW_CLIENT_ID环境变量提供) // "--client-secret", "your-client-secret", // OAuth Client Secret (可通过SERVICENOW_CLIENT_SECRET环境变量提供) // "--username", "your-username", // ServiceNow用户名 (同上) // "--password", "your-password" // ServiceNow密码 (同上) // 可以指定传输协议,默认是 stdio // "--transport", "stdio" // 或 "sse" ], "disabled": false, // 是否启用此服务器 "autoApprove": [] // 自动批准的工具列表 } } }
重要安全提示: 直接在配置文件中硬编码凭据(用户名、密码、Token、Client Secret)存在安全风险。强烈建议通过环境变量 ('SERVICENOW_INSTANCE_URL', 'SERVICENOW_USERNAME', 'SERVICENOW_PASSWORD', 'SERVICENOW_TOKEN', 'SERVICENOW_CLIENT_ID', 'SERVICENOW_CLIENT_SECRET') 提供ServiceNow认证信息。
基本使用方法
安装并配置好MCP客户端连接到ServiceNow MCP服务器后,LLM客户端即可通过标准MCP请求与ServiceNow进行交互:
- 访问数据: LLM可以请求读取'servicenow://'开头的资源URI来获取ServiceNow数据。
- 执行操作: LLM可以调用服务器暴露的工具(如 'create_incident', 'update_incident', 'search_records' 等)来执行相应的ServiceNow操作。
- 自然语言交互: 利用服务器提供的自然语言工具,LLM可以直接解析用户提出的自然语言查询或更新指令,无需预先将指令转化为结构化工具调用。
- 使用Prompt: LLM可以使用服务器定义的Prompt模板来指导其进行更结构化和ServiceNow领域相关的交互。
服务器会接收这些请求,调用ServiceNow API进行处理,并将结果以JSON-RPC响应的形式返回给LLM客户端。
信息
分类
商业系统