mcpField
P
product-compliance

product-compliance

github.com/happy-technologies-llc其他4141 次安装2 天前更新
代码仓库

关于 product-compliance

面向 SAM 分析师和许可证经理的 ServiceNow Software Asset Management 软件产品合规审查技能。它比较授权与安装及使用情况,并支持差距分析、整改规划和审计报告。

主要功能

  1. 01获取产品与发现模型详情
  2. 02比较授权、安装和使用情况
  3. 03识别授权不足或过量
  4. 04查看合规与核对结果
  5. 05制定整改计划并生成审计报告

适用场景

  1. 01审查软件产品合规情况
  2. 02准备供应商审计
  3. 03寻找软件许可证成本优化机会
  4. 04生成定期合规报告

MCP 相关

该技能说明如何使用 SN-Query-Table、SN-Natural-Language-Search 和 SN-Get-Record 等 MCP 工具检索软件、许可证、安装及合规记录。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill product-compliance

安装后在 Claude Code 中输入/product-compliance确认已加载。

详细介绍

产品合规性

概述

此技能提供了一套结构化方法,用于汇总 ServiceNow Software Asset Management(SAM)中的软件产品合规性。它可帮助 SAM 分析师和许可证管理员评估企业内软件产品的合规状况。

主要功能:

  • 检索软件产品详情及关联的发现模型
  • 汇总许可证授权与实际安装情况(权利与使用情况)
  • 识别安装数量超过授权数量的合规差距
  • 标出授权数量超过使用量的过度许可产品
  • 分析合规结果和对账状态
  • 为合规违规情况生成整改行动计划
  • 生成可用于审计的合规报告

适用场景: SAM 分析师需要审查特定软件产品或发布商的合规情况、准备供应商审计、寻找成本优化机会,或生成定期合规报告时。

前提条件

  • 角色: sam_admin、sam_user、license_admin 或 asset_manager
  • 访问权限: 对 samp_sw_product、samp_sw_install、samp_license、samp_compliance_result、samp_entitlement_result 和 cmdb_sam_sw_discovery_model 表具有读取权限
  • 插件: 必须启用 Software Asset Management(com.snc.samp),并使用 SAM Professional 或 Enterprise
  • 数据: 已完成软件发现和规范化,且许可证记录为最新

操作步骤

步骤 1:检索软件产品详情

获取软件产品记录及其分类。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: samp_sw_product
  query: display_name=Microsoft Office 365
  fields: sys_id,display_name,manufacturer,version,is_licensable,product_classification,lifecycle_stage,lifecycle_end_date,platform,category
  limit: 5

按发布商进行更广泛的搜索:

Tool: SN-Query-Table
Parameters:
  table_name: samp_sw_product
  query: display_nameLIKEMicrosoft^is_licensable=true

使用 REST API:

GET /api/now/table/samp_sw_product?sysparm_query=display_nameLIKEMicrosoft Office^is_licensable=true&sysparm_fields=sys_id,display_name,manufacturer,version,is_licensable,product_classification,lifecycle_stage,lifecycle_end_date,platform,category&sysparm_limit=10&sysparm_display_value=true
步骤 2:检索合规结果

获取该产品最新的合规计算结果。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: samp_compliance_result
  query: software_product=[PRODUCT_SYS_ID]^ORDERBYDESCsys_updated_on
  fields: sys_id,software_product,compliance_status,rights_count,install_count,usage_count,compliance_gap,last_compliance_run,license_metric,publisher
  limit: 1

使用 REST API:

GET /api/now/table/samp_compliance_result?sysparm_query=software_product=[PRODUCT_SYS_ID]^ORDERBYDESCsys_updated_on&sysparm_fields=sys_id,software_product,compliance_status,rights_count,install_count,usage_count,compliance_gap,last_compliance_run,license_metric,publisher&sysparm_limit=1&sysparm_display_value=true
步骤 3:检索许可证授权

获取与该产品关联的所有许可证记录。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: samp_license
  query: software_product=[PRODUCT_SYS_ID]^ORDERBYDESCstart_date
  fields: sys_id,display_name,license_metric,rights,used_rights,available_rights,start_date,end_date,contract,vendor,cost,state,license_type,compliance_status
  limit: 20

使用 REST API:

GET /api/now/table/samp_license?sysparm_query=software_product=[PRODUCT_SYS_ID]^ORDERBYDESCstart_date&sysparm_fields=sys_id,display_name,license_metric,rights,used_rights,available_rights,start_date,end_date,contract,vendor,cost,state,license_type,compliance_status&sysparm_limit=20&sysparm_display_value=true
步骤 4:检索安装数据

获取当前安装情况,以了解实际部署情况。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: samp_sw_install
  query: norm_product=[PRODUCT_SYS_ID]^is_reconciled=true
  fields: sys_id,display_name,installed_on,installed_on.location,installed_on.assigned_to,install_date,discovery_source,is_reconciled,last_scanned
  limit: 100

按地点统计安装数量:

Tool: SN-Query-Table
Parameters:
  table_name: samp_sw_install
  query: norm_product=[PRODUCT_SYS_ID]^is_reconciled=true^GROUPBYinstalled_on.location
  fields: installed_on.location
  limit: 50

使用 REST API:

GET /api/now/table/samp_sw_install?sysparm_query=norm_product=[PRODUCT_SYS_ID]^is_reconciled=true&sysparm_fields=sys_id,display_name,installed_on,install_date,discovery_source,is_reconciled,last_scanned&sysparm_limit=100&sysparm_display_value=true
步骤 5:检索授权分配情况

检查许可证授权的分配方式。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: samp_entitlement_result
  query: software_product=[PRODUCT_SYS_ID]^ORDERBYDESCsys_updated_on
  fields: sys_id,software_product,license,allocated_rights,consumed_rights,remaining_rights,metric_group,allocation_type
  limit: 20

使用 REST API:

GET /api/now/table/samp_entitlement_result?sysparm_query=software_product=[PRODUCT_SYS_ID]^ORDERBYDESCsys_updated_on&sysparm_fields=sys_id,software_product,license,allocated_rights,consumed_rights,remaining_rights,metric_group,allocation_type&sysparm_limit=20&sysparm_display_value=true
步骤 6:识别合规差距和风险

分析合规差距并确定整改需求。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: samp_compliance_result
  query: compliance_status=non_compliant^ORDERBYcompliance_gap
  fields: sys_id,software_product,publisher,compliance_status,rights_count,install_count,compliance_gap,license_metric,last_compliance_run
  limit: 20

使用 REST API:

GET /api/now/table/samp_compliance_result?sysparm_query=compliance_status=non_compliant^ORDERBYcompliance_gap&sysparm_fields=sys_id,software_product,publisher,compliance_status,rights_count,install_count,compliance_gap,license_metric&sysparm_limit=20&sysparm_display_value=true
步骤 7:编制合规摘要

将收集的数据整理为结构化合规报告:

=== SOFTWARE COMPLIANCE SUMMARY ===
Product: [product_name]
Publisher: [manufacturer] | Version: [version]
Lifecycle: [lifecycle_stage] | EOL: [lifecycle_end_date]
Last Compliance Run: [last_compliance_run]

COMPLIANCE STATUS: [COMPLIANT / NON-COMPLIANT / OVER-LICENSED]

LICENSE POSITION:
Total Entitlements (Rights): [rights_count]
Total Installations: [install_count]
Actual Usage: [usage_count]
Compliance Gap: [compliance_gap] ([positive = over-licensed, negative = under-licensed])

LICENSE INVENTORY:
| License | Type | Metric | Rights | Used | Available | Expiry |
|---------|------|--------|--------|------|-----------|--------|
| [name]  | [type] | [metric] | [rights] | [used] | [avail] | [end_date] |

INSTALLATION DISTRIBUTION:
| Location | Install Count | % of Total |
|----------|--------------|------------|
| [location] | [count] | [pct]% |

RISK ASSESSMENT:
- Compliance Gap: [gap_description]
- Expiring Licenses: [count] licenses expiring within 90 days
- Unreconciled Installs: [count] installations not matched to entitlements
- Lifecycle Risk: [EOL/EOS warnings]

REMEDIATION ACTIONS:
1. [action_description] - Priority: [High/Medium/Low]
2. [action_description] - Priority: [High/Medium/Low]

COST OPTIMIZATION:
- Over-licensed savings potential: $[amount]
- License consolidation opportunities: [description]

工具使用

MCP 工具参考
工具使用场景
SN-Natural-Language-Search使用自然语言搜索产品(例如,“查找不合规的 Adobe 产品”)
SN-Query-Table对合规、许可证和安装数据执行结构化查询
SN-Get-Record通过 sys_id 检索特定产品、许可证或合规记录
REST API 参考
端点方法用途
/api/now/table/samp_sw_productGET查询软件产品目录
/api/now/table/samp_compliance_resultGET查询合规计算结果
/api/now/table/samp_licenseGET查询许可证授权记录
/api/now/table/samp_sw_installGET查询软件安装记录
/api/now/table/samp_entitlement_resultGET查询授权分配详情
/api/now/table/cmdb_sam_sw_discovery_modelGET查询发现模型映射

最佳实践

  • 首先运行合规性计算: 生成报告前,确保最近一次合规性作业已完成
  • 使用标准化产品: 始终引用 samp_sw_product(标准化后的产品),而不是原始发现记录
  • 检查许可证到期时间: 标记将在 90 天内到期的许可证,因为它们会影响未来的合规性
  • 区分使用量与安装量: 对于按使用量计费的产品,安装数量与实际使用数量可能有显著差异
  • 考虑许可证指标: 不同指标(按设备、按用户、按核心)需要采用不同的比较方法
  • 验证发现数据: 过时的发现记录会抬高安装数量;请检查 last_scanned 日期
  • 记录补救措施: 始终为合规性差距配套具体、可执行的补救步骤
  • 考虑许可证流动性: 某些许可证允许重新分配;评估合规性时应考虑流动规则

故障排除

“合规性结果显示权利数量和安装数量均为零”

原因: 尚未运行合规性计算,或者该产品未映射到任何发现模型。 解决方案: 确认该产品在 cmdb_sam_sw_discovery_model 中关联了发现模型。在 SAM Workspace 中触发合规性计算。

“安装数量异常偏高”

原因: 多个发现源可能报告了重复安装,或者标准化规则范围过宽。 解决方案: 检查是否存在重复的 samp_sw_install 记录。检查将发现模型映射到产品的标准化规则。按 is_reconciled=true 筛选。

“许可证记录未关联到产品”

原因: 许可证记录可能引用了不同的产品版本,或者使用了不同的产品引用字段。 解决方案: 检查许可证上的 software_product 和 software_model 字段。确认产品标准化涵盖所有相关版本。

“合规性状态显示合规,但差额为负数”

原因: 合规性计算可能使用了与预期不同的指标,或者适用了分容量规则。 解决方案: 检查合规性结果中的 license_metric 字段。确认该产品是否使用处理器价值单位(PVU)或其他分容量指标。

示例

示例 1:Microsoft Office 365 合规性审查

场景: SAM 分析师为即将到来的 Microsoft 审计准备合规性摘要。

步骤 1 - 查找产品:

Tool: SN-Query-Table
Parameters:
  table_name: samp_sw_product
  query: display_nameLIKEOffice 365^manufacturer.nameLIKEMicrosoft
  fields: sys_id,display_name,manufacturer,version,is_licensable
  limit: 5

步骤 2 - 获取合规性数据:

Tool: SN-Query-Table
Parameters:
  table_name: samp_compliance_result
  query: software_product=<sys_id>
  fields: compliance_status,rights_count,install_count,usage_count,compliance_gap,last_compliance_run
  limit: 1

输出摘要:

COMPLIANCE SUMMARY - Microsoft Office 365 E3
Publisher: Microsoft | Metric: Per User
Last Run: Mar 18, 2026

STATUS: NON-COMPLIANT

Rights: 2,500 licenses | Installs: 2,847 | Active Users: 2,712
Gap: -212 licenses (under-licensed)

LICENSES:
- EA Agreement EA-2024-001: 2,000 rights (exp Dec 2026)
- CSP Monthly: 500 rights (active, monthly)

REMEDIATION:
1. Purchase 212 additional E3 licenses - Priority: High
2. Review 135 installed but inactive users for removal - Priority: Medium
3. Evaluate E3 to E1 downgrade for 340 light users - Priority: Medium

ESTIMATED COST: $212 x $23/user/mo = $4,876/mo additional
SAVINGS OPPORTUNITY: Downgrade 340 users = $5,440/mo savings
示例 2:发布商范围的合规性仪表板

场景: SAM 经理需要了解所有 Adobe 产品的合规性概况。

Tool: SN-Query-Table
Parameters:
  table_name: samp_compliance_result
  query: publisher.nameLIKEAdobe^ORDERBYcompliance_status
  fields: software_product,compliance_status,rights_count,install_count,compliance_gap,license_metric
  limit: 20

输出:

ADOBE COMPLIANCE OVERVIEW
Total Products: 8 | Compliant: 5 | Non-Compliant: 2 | Over-Licensed: 1

NON-COMPLIANT:
1. Adobe Acrobat Pro DC
   Rights: 450 | Installs: 623 | Gap: -173
   Action: Harvest unused installs, purchase delta

2. Adobe Illustrator CC
   Rights: 50 | Installs: 78 | Gap: -28
   Action: Verify business need for 28 excess installs

OVER-LICENSED:
1. Adobe Photoshop CC
   Rights: 200 | Installs: 89 | Gap: +111
   Action: Reduce licenses at next renewal (-$6,660/yr)

TOTAL RISK EXPOSURE: ~$48,000 (est. true-up cost)
SAVINGS OPPORTUNITY: ~$6,660/yr (Photoshop right-sizing)

相关技能

  • sam/saas-user-resolution - 解决 SaaS 用户差异并优化许可证
  • procurement/invoice-management - 跟踪许可证采购和开票
  • admin/configuration-validation - 验证 SAM 插件配置
  • reporting/executive-dashboard - 生成高管合规性仪表板

评论

支持 Markdown