ServiceNow MCP服务器

一个基于Node.js的Model Context Protocol (MCP)服务器,用于连接Claude Desktop和其他MCP客户端与ServiceNow实例进行交互,支持查询表、管理事件、检索用户信息以及对任何ServiceNow表执行CRUD操作。

  • by bdamage
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 bdamage/servicenow-mcp-server

使用说明

仅用于演示实例

ServiceNow MCP服务器

基于Node.js的 模型上下文协议 (MCP)服务器,使Claude Desktop和其他MCP客户端能够与ServiceNow实例交互。查询表、管理事件、检索用户信息,并对任何ServiceNow表执行CRUD操作。

特性

  • 22强大的工具 用于全面的ServiceNow操作
  • 2资源 提供实例元数据和公共表信息
  • 完全CRUD支持 -创建、读取、更新、删除记录
  • 批量操作 -并行创建、更新或查询多条记录
  • CMDB管理 -高级CI关系、影响分析和拓扑映射
  • IRE集成 -具有重复预防和协调功能的最佳实践CMDB数据导入
  • 活动管理 -创建和查询用于监视和警报的事件
  • 服务建模 -定义具有关键性的业务服务并链接到CI
  • 影响分析 -评估停机对服务和依赖关系的影响
  • 事件管理 -用于搜索和管理事件的专用工具
  • 用户管理 -按用户名或sys_id查询用户信息
  • 架构发现 -探索表结构和可用字段
  • 类型安全 -使用TypeScript构建以提高可靠性
  • 易于配置 -简单的环境变量设置

安装

先决条件

  • Node.js 18+和npm
  • 具有API访问权限的ServiceNow实例
  • ServiceNow凭据(用户名和密码)
  • Claude Desktop或其他MCP客户端

设置

  1. 克隆或下载此存储库
cd /path/to/servicenow-mcp-server
  1. 安装依赖项
npm install
  1. 构建项目
npm run build

这将把TypeScript编译为JavaScript dist/ 目录。

配置

Claude桌面配置

将服务器添加到Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "servicenow": {
      "command": "node",
      "args": ["/absolute/path/to/servicenow-mcp-server/dist/index.js"],
      "env": {
        "SERVICENOW_INSTANCE": "https://your-instance.service-now.com",
        "SERVICENOW_USERNAME": "admin",
        "SERVICENOW_PASSWORD": "your-password",
        "NAME": "Production Instance"
      }
    }
  }
}

重要:将占位符值替换为实际的ServiceNow凭据:

  • SERVICENOW_INSTANCE:您的ServiceNow实例URL(例如。, https://dev12345.service-now.com)
  • SERVICENOW_USERNAME:具有API访问权限的ServiceNow用户名
  • SERVICENOW_PASSWORD:ServiceNow用户的密码
  • NAME:此实例的友好名称(例如“生产”、“开发”)

环境变量

变量 必填 描述 示例
SERVICENOW_INSTANCE 是 ServiceNow实例URL https://dev12345.service-now.com
SERVICENOW_USERNAME 是 ServiceNow用户名 admin
SERVICENOW_PASSWORD 是 ServiceNow密码 your-password
NAME 是 友好实例名称 Production Instance
DEBUG 否 启用调试日志记录 true 或 false

可用工具

1.查询表

使用筛选器、分页和字段选择查询任何ServiceNow表。

参数:

  • table (必填):表名(例如,“偶发事件”、“sys_user”)
  • query (可选):编码的查询字符串(例如,“active=true^priority=1”)
  • fields (可选):逗号分隔的字段列表(例如,“数字、简短描述、优先级”)
  • limit (可选):要返回的最大记录数(默认值:100,最大值:1000)
  • offset (可选):分页偏移量(默认值:0)

例子:

Query the incident table for active high-priority incidents:
- table: incident
- query: active=true^priority=1
- fields: number,short_description,state,assigned_to
- limit: 50

2.获取记录

通过sys_id检索单个ServiceNow记录。

参数:

  • table (必填):表名
  • sys_id (必填):32个字符的十六进制sys_id
  • fields (可选):要返回的字段

例子:

Get a specific incident:
- table: incident
- sys_id: 9d385017c611228701d22104cc95c371
- fields: number,short_description,priority,state

3.搜索事件

使用通用过滤器搜索事件的专用工具。

参数:

  • status (可选):事件状态(1=新,2=进行中,6=已解决,7=已关闭)
  • priority (可选):优先级(1=关键,2=高,3=中等,4=低,5=计划)
  • assigned_to (可选):指定用户的用户名
  • assignment_group (可选):作业组名称
  • search_text (可选):在short_description或description中搜索的文本
  • limit (可选):最大记录数(默认值:100)
  • offset (可选):分页偏移量(默认值:0)

例子:

Find all critical incidents assigned to a specific group:
- priority: 1
- assignment_group: Network Team
- status: 2

4.用户名

通过用户名或sys_id检索用户信息。

参数:

  • identifier (必填):用户名(例如“admin”)或sys_id
  • fields (可选):要返回的字段

例子:

Get user details:
- identifier: john.doe
- fields: user_name,first_name,last_name,email,title

5.创建记录

在任何ServiceNow表中创建新记录。

参数:

  • table (必填):表名
  • data (必填):将数据记录为键值对

例子:

Create a new incident:
- table: incident
- data: {
    "short_description": "Database server is down",
    "priority": "1",
    "caller_id": "admin",
    "assignment_group": "Database Team"
  }

6.更新记录

通过sys_id更新现有的ServiceNow记录。

参数:

  • table (必填):表名
  • sys_id (必填):记录sys_id以进行更新
  • data (必填):要更新的字段

例子:

Update incident status:
- table: incident
- sys_id: 9d385017c611228701d22104cc95c371
- data: {
    "state": "6",
    "close_notes": "Issue resolved by restarting service"
  }

7.get_table_schema

获取ServiceNow表的结构和可用字段。

参数:

  • table (必填):表名

例子:

Get schema for incident table:
- table: incident

8.删除记录

按sys_id删除ServiceNow记录。 谨慎使用 -这是无法撤消的。

参数:

  • table (必填):表名
  • sys_id (必填):要删除的记录sys_id

例子:

Delete a test incident:
- table: incident
- sys_id: abc123def456789012345678901234567

9.批处理创建记录

在单个批处理操作中创建多条记录。为了提高性能,记录是并行创建的。

参数:

  • table (必填):表名
  • records (必填):记录数据对象数组(最多100个)

例子:

Create multiple incidents at once:
- table: incident
- records: [
    {
      "short_description": "Email server down",
      "priority": "1",
      "caller_id": "admin"
    },
    {
      "short_description": "Printer not working",
      "priority": "3",
      "caller_id": "admin"
    },
    {
      "short_description": "Database slow performance",
      "priority": "2",
      "caller_id": "admin"
    }
  ]

退货:

  • 已处理的记录总数
  • 已成功创建记录
  • 带有错误详细信息的失败记录

10.批次更新记录

在单个批处理操作中更新多条记录。并行执行更新以获得更好的性能。

参数:

  • table (必填):表名
  • updates (必填):更新操作数组(最多100个)
    • 每个操作包含:
      • sys_id (必填):要更新的记录
      • data (必填):要更新的字段

例子:

Update multiple incidents to resolved:
- table: incident
- updates: [
    {
      "sys_id": "abc123...",
      "data": {
        "state": "6",
        "close_notes": "Fixed by restart"
      }
    },
    {
      "sys_id": "def456...",
      "data": {
        "state": "6",
        "close_notes": "User error resolved"
      }
    }
  ]

退货:

  • 已处理的记录总数
  • 已成功更新记录
  • 带有错误详细信息的失败记录

11.批次查询表

在单个批处理操作中查询多个表。查询并行执行以获得更好的性能。可用于同时从不同表中收集相关数据。

参数:

  • queries (必填):查询操作数组(最多20个)
    • 每个查询包含:
      • table (必填):表名
      • query (可选):编码查询字符串
      • fields (可选):要返回的字段
      • limit (可选):最大记录数(默认值:100)
      • offset (可选):分页偏移量(默认值:0)

例子:

Query incidents and users at the same time:
- queries: [
    {
      "table": "incident",
      "query": "active=true^priority=1",
      "fields": "number,short_description,state",
      "limit": 50
    },
    {
      "table": "sys_user",
      "query": "active=true",
      "fields": "user_name,email,title",
      "limit": 100
    },
    {
      "table": "change_request",
      "query": "state=1",
      "limit": 20
    }
  ]

退货:

  • 已处理的查询总数
  • 每个成功查询的结果(表名、计数、记录)
  • 查询失败,并显示错误详细信息

12.get_C_关系

从CMDB获取配置项的所有关系。显示父关系、子关系或所有关系以及相关CI的详细信息。

参数:

  • ci_sys_id (必填):配置项的sys_id
  • relationship_type (可选):要检索的关系类型-“父”、“子”或“全部”(默认值:“全部”)
  • depth (可选):关系遍历深度1-3(默认值:1)

例子:

Get all relationships for a database server:
- ci_sys_id: abc123def456789012345678901234567
- relationship_type: all
- depth: 2

退货:

  • CI详细信息(名称、类、状态)
  • 与类型信息的所有关系
  • 相关CI及其详细信息

13.get_impact_analysis

分析CI中断对相关服务和配置项的潜在影响。提供风险评估并确定受影响的关键服务。

参数:

  • ci_sys_id (必填):要分析的配置项的sys_id
  • include_services (可选):包括受影响的业务服务(默认值:true)
  • max_depth (可选):最大依赖遍历深度1-5(默认值:3)

例子:

Analyze impact of database server outage:
- ci_sys_id: abc123def456789012345678901234567
- include_services: true
- max_depth: 3

退货:

  • 源CI详细信息
  • 影响总结(受影响CI总数、关键服务、风险等级)
  • 受影响的CI和服务列表
  • 依赖链
  • 风险评估(高/中/低)

14.查询cmdb_ci

通过按类、状态、环境和支持组进行高级筛选,从CMDB中查询配置项。

参数:

  • ci_class (可选):CI类名(例如,“cmdb_CI_server”、“cmdb_CI_dabase”)
  • name_contains (可选):搜索名称包含此文本的CI
  • operational_status (可选):运行状态(1=运行,2=非运行等)
  • environment (可选):环境(例如,“生产”、“开发”、“测试”)
  • support_group (可选):支持组的名称
  • custom_query (可选):附加编码查询字符串
  • fields (可选):逗号分隔的字段列表
  • limit (可选):最大记录数(默认值:100)
  • offset (可选):分页偏移量(默认值:0)

例子:

Find all production database servers:
- ci_class: cmdb_ci_database
- environment: Production
- operational_status: 1
- limit: 50

退货:

  • 找到的CI计数
  • 具有请求字段的配置项数组

15.创建事件

在ServiceNow事件管理中创建一个事件,用于监视、警报和自动事件创建。事件可以触发警报和自动化工作流。

参数:

  • source (必填):事件源系统(例如“Nagios”、“Splunk”、“自定义监视器”)
  • node (必填):源节点/主机名(例如“webserver01.company.com”)
  • description (必填):事件描述/消息
  • type (可选):事件类型(例如,“CPU”、“磁盘”、“内存”、“网络”)
  • resource (可选):受影响的资源(例如,“CPU Core 1”、“/dev/sda1”)
  • severity (可选):严重性0=清除,1=严重,2=严重,3=轻微,4=警告,5=信息(默认值:3)
  • message_key (可选):事件关联的唯一消息键
  • additional_info (可选):其他上下文或详细信息(支持JSON字符串)
  • ci_identifier (可选):将事件链接到配置项的CI标识符
  • metric_name (可选):度量名称(例如,“cpu_utilization”、“disk_usage”)
  • metric_value (可选):度量值(例如,“95%”、“450ms”)

例子:

Create a critical CPU alert:
- source: Nagios
- node: webserver01.company.com
- type: CPU
- severity: 1
- description: CPU utilization exceeded threshold
- metric_name: cpu_utilization
- metric_value: 98%

退货:

  • 事件sys_id
  • 完整的事件记录
  • 处理状态消息

16.查询事件

查询事件管理事件,按源、节点、严重性和时间范围进行筛选。包括事件分布的统计数据。

参数:

  • source (可选):按事件源系统筛选
  • node (可选):按源节点/主机名筛选
  • severity (可选):按严重程度筛选(0-5)
  • state (可选):按处理状态筛选(就绪、排队、正在处理、已处理、错误)
  • time_range_hours (可选):仅显示过去N小时(1-168,最多1周)的事件
  • custom_query (可选):附加编码查询字符串
  • limit (可选):最大记录数(默认值:100)
  • offset (可选):分页偏移量(默认值:0)

例子:

Get all critical events from the last 24 hours:
- severity: 1
- time_range_hours: 24
- limit: 100

退货:

  • 事件计数
  • 统计数据(按严重程度和状态)
  • 按创建时间排序的事件数组

17.创建服务

在CMDB中创建具有关键性、分类和所有权的业务或技术服务。服务可以链接到CI和服务产品。

参数:

  • name (必填):服务名称
  • description (可选):服务描述
  • service_classification (可选):“业务服务”、“技术服务”、”服务提供”、“应用服务”(默认:“业务业务服务”)
  • business_criticality (可选):1=关键任务,2=高,3=中,4=低,5=计划(默认值:3)
  • operational_status (可选):1=运行中,2=非运行中,以此类推。(默认值:1)
  • owned_by (可选):服务所有者的sys_id
  • managed_by (可选):管理组的sys_id
  • parent_service (可选):父服务的sys_id(用于服务层次结构)
  • service_owner (可选):服务所有者的用户名或sys_id
  • support_group (可选):负责此服务的支持小组的名称
  • used_for (可选):“生产”、“暂存”、“QA”、“开发”、“灾难恢复”
  • version (可选):服务版本

例子:

Create a mission-critical e-commerce service:
- name: E-Commerce Platform
- description: Customer-facing online store
- service_classification: Business Service
- business_criticality: 1
- operational_status: 1
- support_group: E-Commerce Team
- used_for: Production

退货:

  • 服务sys_id
  • 完整的服务记录
  • 成功消息

18.链接_链接_服务

在CMDB中创建配置项和服务之间的关系。这定义了服务对基础设施的依赖关系。

参数:

  • service_sys_id (必填):服务的sys_id
  • ci_sys_id (必填):要链接的配置项的sys_id
  • relationship_type (可选):关系类型(默认值:“依赖于:使用者”)

例子:

Link a database server to the e-commerce service:
- service_sys_id: service123abc456def789012345678901
- ci_sys_id: ci123abc456def789012345678901234
- relationship_type: Depends On::Used By

退货:

  • 关系sys_id
  • 服务详细信息(名称、关键性)
  • CI详细信息(名称、类别)
  • 成功消息

19.获取服务地图

获取完整的服务拓扑,包括所有相关的CI、子服务、依赖关系、关键性评估和健康指标。可视化服务架构。

参数:

  • service_sys_id (必填):要映射的服务的sys_id
  • include_child_services (可选):在地图中包含子服务(默认值:true)
  • max_depth (可选):要遍历的服务层次结构的最大深度1-5(默认值:3)

例子:

Get complete topology for e-commerce service:
- service_sys_id: service123abc456def789012345678901
- include_child_services: true
- max_depth: 3

退货:

  • 服务详细信息(名称、分类、关键性、所有者)
  • 拓扑摘要(总CI、运行状况百分比、按类划分的CI)
  • 相关CI及其详细信息
  • 儿童服务
  • 关系
  • 风险评估(带推理的高/中/低)

20.ire_create_or_update_ci

使用ServiceNow的标识与协调引擎(IRE)创建或更新单个配置项。IRE提供智能CMDB数据管理,具有自动重复检测、识别规则和对账功能。

为什么使用IRE而不是create_record?

  • 自动防复制:使用标识规则查找现有CI
  • 智能对账:根据优先级合并来自多个源的数据
  • 数据质量:强制执行标准化的CMDB导入流程
  • 来源追踪:跟踪数据来源以进行审计和对账

先决条件:

  • 必须在ServiceNow中配置数据源 discovery_source 桌子
  • 应为CI类配置标识规则(可选但推荐)
  • 使用 ire_list_data_sources 查看可用资源

参数:

  • data_source (必填):发现源名称(例如“MyDiscoveryTool”)
  • class_name (必填):以“cmdb_CI”开头的CI类名(例如,“cmdb_CI_server”)
  • values (必填):CI属性作为键值对
  • internal_id (可选):源系统的唯一标识符(建议用于跟踪)
  • relations (可选):CI关系定义
  • reference_items (可选):参考字段数据(高级)

例子:

Create or update a server CI:
- data_source: MyDiscoverySource
- class_name: cmdb_ci_server
- values: {"name": "srv-web-01", "ip_address": "10.0.1.50", "host_name": "srv-web-01.example.com", "os_name": "Red Hat Enterprise Linux"}
- internal_id: aws-i-1234567890abcdef

退货:

  • 操作状态:“已创建”、“已更新”、“标识”、“跳过”或“错误”
  • CI系统id
  • CI标识符
  • 状态消息
  • 错误详细信息(如适用)

21.ire_batch_create_or_update_cis

在单个操作中使用IRE批量创建或更新多个配置项(最多100个)。非常适合批量导入和同步。

参数:

  • data_source (必填):发现源名称
  • items (必填,1-100):CI定义数组,每个定义包含:
    • className:CI类名
    • values:CI属性
    • internal_id:唯一标识符(可选)
    • relations:CI关系(可选)
    • referenceItems:参考数据(可选)

例子:

Import 3 servers from discovery:
- data_source: MyDiscoverySource
- items: [
    {
      "className": "cmdb_ci_server",
      "values": {"name": "srv-web-01", "ip_address": "10.0.1.50"}
    },
    {
      "className": "cmdb_ci_server",
      "values": {"name": "srv-web-02", "ip_address": "10.0.1.51"}
    },
    {
      "className": "cmdb_ci_database",
      "values": {"name": "db-prod-01", "ip_address": "10.0.2.10"}
    }
  ]

退货:

  • 总计、创建、更新、识别、跳过和失败计数
  • 每个CI结果,包括操作状态和sys_id
  • 故障的详细错误信息
  • 摘要消息

22.ire_list_data_source

列出在ServiceNow中配置的用于IRE操作的可用发现数据源。

参数:

  • active_only (可选):仅显示活动数据源(默认值:true)

例子:

List all active data sources:
- active_only: true

退货:

  • 数据源计数
  • 源数组包含:
    • 名字
    • 标签
    • 活跃状态
    • 类型

IRE(识别与协调引擎)概述

IRE工具(ire_create_or_update_ci, ire_batch_create_or_update_cis, ire_list_data_sources)提供最佳实践CMDB数据集成:

主要优势:

  • 防止重复:使用配置的标识规则自动标识现有CI
  • 数据校正:智能地合并来自多个来源的数据
  • 来源管理:跟踪数据源并应用源优先级规则
  • 数据质量:强制执行验证和标准化的进口流程
  • 关系处理:管理CI依赖关系和关系

何时使用IRE与直接表操作:

用例 推荐工具 原因
从外部系统导入 IRE工具 防止重复,跟踪源
发现工具集成 IRE工具 自动处理对账
一次性手动创建CI create_record 更简单地执行临时任务
批量数据同步 ire_batch_create_or_update_cis 高效,防止重复
通过sys_id更新已知CI update_record 当sys_id已知时直接更新

先决条件:

  1. 数据源:在ServiceNow中的“系统定义”>“发现源”处进行配置
  2. 识别规则:在CMDB>配置>标识规则(定义如何匹配CI)中设置
  3. 对账规则:在CMDB>配置>对账规则(定义数据优先级)进行配置

可用资源

1.servicenow://instance/info

提供有关连接的ServiceNow实例的元数据,包括实例URL、名称和API版本。

2.servicenow://tables/common

列出常用的ServiceNow表及其描述和主要字段。包括:

  • 事件
  • 系统用户
  • sys_user_group
  • change_request
  • 问题
  • cmdb_ci
  • kb_知识
  • 任务
  • sc请求
  • sc_req_item

使用示例

查询事件

问克劳德:

Show me all critical incidents that are currently in progress

克劳德将使用 search_incidents 工具包括:

{
  "priority": "1",
  "status": "2"
}

创建偶发事件

问克劳德:

Create a new incident: "Email server is not responding" with high priority

克劳德将使用 create_record 工具:

{
  "table": "incident",
  "data": {
    "short_description": "Email server is not responding",
    "priority": "2"
  }
}

探索表结构

问克劳德:

What fields are available in the change_request table?

克劳德将使用 get_table_schema 工具:

{
  "table": "change_request"
}

批量创建多个事件

问克劳德:

Create 5 incidents for different network issues: router offline, switch failure,
firewall error, DNS not responding, and VPN connection lost. All should be high priority.

克劳德将使用 batch_create_records 工具:

{
  "table": "incident",
  "records": [
    {
      "short_description": "Router offline in Building A",
      "priority": "2"
    },
    {
      "short_description": "Network switch failure",
      "priority": "2"
    },
    {
      "short_description": "Firewall error detected",
      "priority": "2"
    },
    {
      "short_description": "DNS not responding",
      "priority": "2"
    },
    {
      "short_description": "VPN connection lost",
      "priority": "2"
    }
  ]
}

批量更新多条记录

问克劳德:

Close all the incidents I just created with a note saying "Issue resolved"

克劳德将使用 batch_update_records 工具:

{
  "table": "incident",
  "updates": [
    {
      "sys_id": "abc123...",
      "data": {
        "state": "6",
        "close_notes": "Issue resolved"
      }
    },
    {
      "sys_id": "def456...",
      "data": {
        "state": "6",
        "close_notes": "Issue resolved"
      }
    }
  ]
}

一次查询多个表

问克劳德:

Show me active incidents, current change requests, and all database team members

克劳德将使用 batch_query_tables 工具:

{
  "queries": [
    {
      "table": "incident",
      "query": "active=true",
      "limit": 50
    },
    {
      "table": "change_request",
      "query": "state=1",
      "limit": 50
    },
    {
      "table": "sys_user",
      "query": "department.name=Database Team^active=true",
      "fields": "user_name,email,title"
    }
  ]
}

ServiceNow查询语法

使用时 query 参数,使用ServiceNow的编码查询语法:

  • 等于: field=value
  • 与: ^ (例如。, active=true^priority=1)
  • 或: ^OR (例如。, priority=1^ORpriority=2)
  • 不等于: field!=value
  • 大于: field>value
  • 小于: field<value
  • 包含: fieldLIKEvalue
  • 开始于: fieldSTARTSWITHvalue

示例:

  • 活动中的高优先级事件: active=true^priority=1
  • 分配给用户的事件: assigned_to.user_name=john.doe
  • 多个状态: state=2^ORstate=3

故障排除

身份验证错误

如果您看到“身份验证失败”错误:

  1. 验证您的 SERVICENOW_USERNAME 和 SERVICENOW_PASSWORD 是正确的
  2. 检查用户在ServiceNow中是否具有API访问权限
  3. 确保实例URL正确(包括 https://)

连接错误

如果您看到“无法连接到ServiceNow”错误:

  1. 验证 SERVICENOW_INSTANCE URL正确
  2. 检查您的网络连接
  3. 确保您的ServiceNow实例可访问
  4. 验证没有防火墙限制

权限错误

如果您看到“禁止”错误:

  1. 检查您的ServiceNow用户是否具有必要的表权限
  2. 验证用户是否具有适当的角色(例如。, itil, admin)
  3. 在ServiceNow中检查特定表的ACL规则

构建错误

如果 npm run build 失败:

  1. 确保你使用的是Node.js 18或更高版本
  2. 删除 node_modules 并运行 npm install 再次
  3. 检查输出中的TypeScript错误

发展

项目结构

servicenow-mcp-server/
├── src/
│   ├── index.ts                    # Main MCP server entry point
│   ├── config.ts                   # Environment configuration
│   ├── servicenow/
│   │   ├── client.ts              # ServiceNow API client
│   │   ├── auth.ts                # Authentication
│   │   └── types.ts               # TypeScript types
│   ├── tools/                      # MCP tool implementations
│   ├── resources/                  # MCP resource implementations
│   └── utils/                      # Utilities (logger, validation, errors)
├── dist/                           # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md

建筑

# Build once
npm run build

# Watch mode (rebuild on changes)
npm run watch

本地运行

# Build and run
npm run dev

添加新工具

  1. 在中创建新文件 src/tools/ (例如。, my-tool.ts)
  2. 按照现有工具中的模式实施工具
  3. 从导出工具 src/tools/index.ts
  4. 在中注册该工具 src/index.ts (ListTools和CallTool处理程序)

安全考虑

  • 从不提交凭据 到版本控制
  • 对所有敏感配置使用环境变量
  • 考虑在生产环境中使用OAuth而不是Basic Auth
  • 将ServiceNow用户权限限制在必要的范围内
  • 尽可能使用只读帐户进行仅查询操作
  • 定期轮换ServiceNow凭据

贡献

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

许可证

麻省理工学院

支持

关于以下问题:

更新日志

版本1.2.0

  • 添加了高级CMDB操作(3个工具)
    • get_ci_relationships:探索CI关系和依赖关系
    • get_impact_analysis:评估停机对服务和CI的影响
    • query_cmdb_ci:具有过滤功能的高级CI查询
  • 添加了事件管理支持(2个工具)
    • create_event:创建用于监视和警报的事件
    • query_events:使用统计信息查询事件
  • 增加了服务建模功能(3个工具)
    • create_service:定义具有关键性的业务/技术服务
    • link_ci_to_service:将CI链接到服务以进行依赖关系映射
    • get_service_map:使用运行状况指标可视化服务拓扑
  • 增加了IRE(识别与对账引擎)支持(3个工具)
    • ire_create_or_update_ci:创建/更新具有防重复功能的CI
    • ire_batch_create_or_update_cis:使用IRE进行批量CI操作(最多100次)
    • ire_list_data_sources:列出已配置的发现数据源
  • 总共22个可用工具(8个基本工具+3个批处理工具+3个CMDB工具+2个事件工具+3个服务工具+3个IRE工具)
  • CMDB数据集成与自动重复检测的最佳实践
  • 来自多个来源的智能数据协调
  • 通过关键性级别和影响分析增强服务管理
  • 全面的事件关联和警报支持

版本1.1.0

  • 增加了批处理操作以提高性能
  • 3个新工具:batch_create_records、batch_update_records和batch_query_tables
  • 批处理操作并行执行,性能提高5-10倍
  • 每批创建/更新操作最多支持100条记录
  • 每批查询操作最多支持20个查询
  • 批量操作的全面错误报告(标识哪些记录成功/失败)

版本1.0.0

  • 初始版本
  • 8个工具:查询表、获取记录、搜索事件、获取用户、创建记录、更新记录、获取表模式、删除记录
  • 2资源:实例信息、常用表
  • 完全支持TypeScript
  • 全面的错误处理
  • 基本身份验证支持