mcpField
A
app-summary

app-summary

github.com/happy-technologies-llc開発4141 回インストール2 日前に更新
リポジトリ

app-summary について

既存の ServiceNow アプリケーションを構造化して要約するスキルです。開発者や管理者がデータモデル、スクリプト、アクセス制御、依存関係、健全性を整理し、レビューやアップグレード、オンボーディングに活用できます。

主な機能

  1. 01アプリケーションのメタデータとスコープの確認
  2. 02テーブル、フィールド、スクリプトの棚卸し
  3. 03ACLとアプリケーションロールの確認
  4. 04依存関係と連携の整理
  5. 05複雑さと健全性の評価

活用シーン

  1. 01アップグレードに向けたアプリの調査
  2. 02オンボーディング用のアプリ文書作成
  3. 03技術的負債や統合候補の評価

MCP 対応

SN-Query-Table や SN-Get-Record などの ServiceNow MCP ツールでアプリケーションのメタデータや成果物を取得します。

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/app-summaryを入力して読み込まれたか確認します。

詳細

ServiceNow アプリケーションの概要

概要

このスキルでは、既存の ServiceNow アプリケーションについて、以下を含む包括的な概要を生成します。

  • アプリケーションのスコープとメタデータの分析
  • テーブル構造とデータモデルのドキュメント化
  • スクリプトの一覧(ビジネスルール、クライアントスクリプト、スクリプトインクルード、UI アクション)
  • ACL とロールの分析
  • 依存関係と統合のマッピング
  • 構成アーティファクトの一覧
  • アプリケーションの健全性と複雑さの評価

使用する場面: アプリケーションポートフォリオのレビュー中、アップグレードや移行の前、開発者のオンボーディング時、ドキュメントの生成、技術的負債の評価、またはアプリケーションの統合を検討する際に使用します。

前提条件

  • ロール: admin、application_developer、または sys_scope と sys_metadata への読み取りアクセス権
  • アクセス: sys_scope、sys_app、sys_metadata、sys_db_object、sys_dictionary、sys_script テーブル
  • 知識: ServiceNow のアプリケーションモデル、スコープ付きアプリケーションの構造
  • 関連スキル: アプリケーション構造について理解するため、genai/app-generation を完了してください

手順

ステップ 1:アプリケーションを特定する

名前でアプリケーションを検索する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_scope
  query: nameLIKE[app_name]^active=true
  fields: sys_id,name,scope,short_description,version,vendor,vendor_prefix,sys_created_on,sys_updated_on
  limit: 10

REST の代替方法:

curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/sys_scope?sysparm_query=nameLIKE[app_name]^active=true&sysparm_fields=sys_id,name,scope,short_description,version,vendor&sysparm_limit=10" \
  -H "Accept: application/json"

すべてのカスタムスコープ付きアプリケーションを一覧表示する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_scope
  query: scopeSTARTSWITHx_^active=true
  fields: sys_id,name,scope,version,vendor,sys_created_on
  limit: 100
ステップ 2:アプリケーションのメタデータを取得する

アプリケーションの詳細情報をすべて取得する:

MCP の方法:

Tool: SN-Get-Record
Parameters:
  table_name: sys_scope
  sys_id: [scope_sys_id]

REST の代替方法:

curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/sys_scope/[scope_sys_id]" \
  -H "Accept: application/json"

sys_app で追加のメタデータを確認する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_app
  query: scope=[scope_name]
  fields: sys_id,name,version,short_description,template,active
  limit: 1
ステップ 3:アプリケーションのすべてのアーティファクトを一覧表示する

種類別にアーティファクト数を取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_metadata
  query: sys_scope=[scope_sys_id]
  fields: sys_id,sys_class_name,sys_name,sys_created_on
  limit: 500

REST の代替方法:

curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/sys_metadata?sysparm_query=sys_scope=[scope_sys_id]&sysparm_fields=sys_id,sys_class_name,sys_name&sysparm_limit=500" \
  -H "Accept: application/json"

結果を sys_class_name ごとにグループ化して、アーティファクトの概要を作成します。

Artifact Inventory:
  sys_db_object (Tables): X
  sys_dictionary (Fields): X
  sys_script (Business Rules): X
  sys_script_client (Client Scripts): X
  sys_script_include (Script Includes): X
  sys_ui_action (UI Actions): X
  sys_ui_page (UI Pages): X
  sys_security_acl (ACLs): X
  sys_properties (Properties): X
  sys_ui_form_section (Form Sections): X
  ...
ステップ 4:テーブル構造を分析する

アプリケーション内のすべてのテーブルを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_db_object
  query: sys_scope=[scope_sys_id]
  fields: sys_id,name,label,super_class,is_extendable,number_ref,sys_created_on
  limit: 50

各テーブルのフィールド定義を取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_dictionary
  query: name=[table_name]^sys_scope=[scope_sys_id]^elementISNOTEMPTY
  fields: element,column_label,internal_type,max_length,mandatory,reference,unique,active
  limit: 100

REST の代替方法:

curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/sys_dictionary?sysparm_query=name=[table_name]^sys_scope=[scope_sys_id]^elementISNOTEMPTY&sysparm_fields=element,column_label,internal_type,max_length,mandatory,reference&sysparm_limit=100" \
  -H "Accept: application/json"

テーブルのレコード数を取得する(データ量を評価):

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_table_rotation
  query: name=[table_name]
  fields: name,max_size,size
  limit: 1
ステップ 5:スクリプトを一覧表示する

ビジネスルールを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_script
  query: sys_scope=[scope_sys_id]
  fields: sys_id,name,collection,when,order,active,action_insert,action_update,action_delete
  limit: 100

クライアントスクリプトを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_script_client
  query: sys_scope=[scope_sys_id]
  fields: sys_id,name,table,type,fieldname,active,ui_type
  limit: 100

スクリプトインクルードを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_script_include
  query: sys_scope=[scope_sys_id]
  fields: sys_id,name,api_name,client_callable,active,access
  limit: 100

UI スクリプトを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_ui_script
  query: sys_scope=[scope_sys_id]
  fields: sys_id,name,global,active,ui_type
  limit: 50
ステップ 6:ACL とロールを分析する

アプリケーションのロールを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_user_role
  query: sys_scope=[scope_sys_id]
  fields: sys_id,name,description,assignable_by
  limit: 50

ACL ルールを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_security_acl
  query: sys_scope=[scope_sys_id]^active=true
  fields: sys_id,name,operation,type,admin_overrides,condition,advanced
  limit: 100

REST の代替方法:

curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/sys_security_acl?sysparm_query=sys_scope=[scope_sys_id]^active=true&sysparm_fields=sys_id,name,operation,type,admin_overrides&sysparm_limit=100" \
  -H "Accept: application/json"
ステップ 7:依存関係をマッピングする

スクリプト内のスコープをまたぐ参照を確認する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_scope_privilege
  query: source_scope=[scope_sys_id]^ORtarget_scope=[scope_sys_id]
  fields: sys_id,source_scope,target_scope,type,operation,status
  limit: 50

統合(REST メッセージ、SOAP など)を確認する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_rest_message
  query: sys_scope=[scope_sys_id]
  fields: sys_id,name,rest_endpoint,authentication_type
  limit: 20

スケジュール済みジョブを確認する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sysauto_script
  query: sys_scope=[scope_sys_id]
  fields: sys_id,name,active,run_type,run_period
  limit: 20
ステップ 8:UI 構成を分析する

UI アクションを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_ui_action
  query: sys_scope=[scope_sys_id]^active=true
  fields: sys_id,name,table,action_name,client,form_button,list_button
  limit: 50

ナビゲーションモジュールを取得する:

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_app_module
  query: sys_scope=[scope_sys_id]
  fields: sys_id,title,link_type,name,query,order
  limit: 30
ステップ 9:アプリケーションの概要をまとめる

構造化された概要レポートを生成します。

Application Summary: [App Name]
================================================
Scope: [scope_name]
Version: [version]
Vendor: [vendor]
Created: [date] | Last Updated: [date]
Description: [short_description]

ARTIFACT INVENTORY:
  Tables: [count]
  Fields: [count]
  Business Rules: [count] (active: X, inactive: Y)
  Client Scripts: [count]
  Script Includes: [count]
  UI Actions: [count]
  ACL Rules: [count]
  Roles: [count]
  Properties: [count]
  Scheduled Jobs: [count]
  REST Messages: [count]
  Total Artifacts: [count]

TABLE STRUCTURE:
  [Table 1 Name] ([Label])
    - Extends: [parent table]
    - Fields: [count]
    - Key Fields: [list of mandatory/unique fields]
  [Table 2 Name] ([Label])
    ...

SCRIPT INVENTORY:
  Business Rules:
    - [Rule Name] on [Table] ([when], order [N]) - [Active/Inactive]
  Client Scripts:
    - [Script Name] on [Table] ([type]) - [Active/Inactive]
  Script Includes:
    - [Include Name] (client_callable: [yes/no]) - [Active/Inactive]

SECURITY MODEL:
  Roles:
    - [Role Name]: [Description]
  ACLs:
    - [Table].[Operation]: [Conditions/Roles]

DEPENDENCIES:
  Cross-scope references: [list]
  Integrations: [list]
  Scheduled Jobs: [list]

COMPLEXITY ASSESSMENT:
  - Table Count: [Low/Medium/High]
  - Script Density: [Low/Medium/High]
  - Integration Points: [count]
  - Overall Complexity: [Low/Medium/High]

ツールの使用方法

アクションMCP ツールREST エンドポイント
アプリケーションを検索SN-Query-TableGET /api/now/table/sys_scope
アプリのメタデータを取得SN-Get-RecordGET /api/now/table/sys_scope/{sys_id}
すべてのアーティファクトを一覧表示SN-Query-TableGET /api/now/table/sys_metadata
テーブルを取得SN-Query-TableGET /api/now/table/sys_db_object
フィールドを取得SN-Query-TableGET /api/now/table/sys_dictionary
ビジネスルールを取得SN-Query-TableGET /api/now/table/sys_script
クライアントスクリプトを取得SN-Query-TableGET /api/now/table/sys_script_client
スクリプトインクルードを取得SN-Query-TableGET /api/now/table/sys_script_include
ACL を取得SN-Query-TableGET /api/now/table/sys_security_acl
ロールを取得SN-Query-TableGET /api/now/table/sys_user_role

ベストプラクティス

  • sys_metadata から始める: スコープ内のすべてのアーティファクトを最もすばやく把握できます
  • アーティファクトを種類ごとにグループ化する: sys_class_name を使うと、アーティファクトを効率的に分類して数えられます
  • 有効か無効かを確認する: 無効なアーティファクトは、技術的負債や放棄された機能を示している場合があります
  • スクリプトの複雑さを調べる: 長いスクリプトやスクリプト数の多さは、リファクタリングが必要な領域を示唆します
  • すべてのインテグレーションを把握する: スコープ間および外部とのインテグレーションは、アップグレードの影響評価に不可欠です
  • ドキュメントのないアプリを文書化する: 多くのカスタムアプリにはドキュメントがないため、概要を作成してこの不足を補います
  • バージョンを比較する: 複数のバージョンがある場合は、バージョン間でアーティファクト数を比較します
  • 孤立したアーティファクトを特定する: 存在しなくなったテーブルやフィールドを参照するスクリプトを探します
  • テストカバレッジを評価する: スコープ内に ATF(Automated Test Framework)のテストがあるか確認します
  • 更新セットを確認する: sys_update_set でデプロイ履歴を確認します

トラブルシューティング

アプリケーションが見つからない

症状: sys_scope のクエリで結果が返されない 原因:

  1. アプリケーションはスコープ付きアプリではなく、グローバルスコープのプラグインです
  2. アプリケーション名がスコープ名と異なります
  3. アプリケーションが無効です 解決方法:
Tool: SN-Query-Table
Parameters:
  table_name: sys_scope
  query: nameLIKE[partial_name]^ORscopeLIKE[partial_name]
  fields: sys_id,name,scope,active
  limit: 20
メタデータ数が不完全

症状: sys_metadata の返すアーティファクト数が想定より少ない 原因: 一部のアーティファクトは sys_metadata を拡張していないか、クエリの上限が低すぎる可能性があります 解決方法: 上限を増やし、スコープ外のアーティファクトを確認します:

Tool: SN-Query-Table
Parameters:
  table_name: sys_metadata
  query: sys_scope=[scope_sys_id]
  fields: sys_id,sys_class_name
  limit: 1000
テーブル間の関係を特定できない

症状: 参照フィールドは存在するものの、関係が明確でない 解決方法: 参照フィールドに絞って sys_dictionary をクエリします:

Tool: SN-Query-Table
Parameters:
  table_name: sys_dictionary
  query: name=[table_name]^internal_type=reference
  fields: element,column_label,reference
  limit: 50
スコープ権限エラー

症状: 別のスコープのアーティファクトにアクセスできない 原因: スコープ間アクセスが許可されていません 解決方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_scope_privilege
  query: target_scope=[scope_sys_id]^status=allowed
  fields: source_scope,target_scope,type,operation
  limit: 20

例

例 1:カスタム HR アプリケーションの概要をまとめる
# Step 1: Find the application
Tool: SN-Query-Table
Parameters:
  table_name: sys_scope
  query: nameLIKEHR Onboarding
  fields: sys_id,name,scope,version,vendor
  limit: 5
# Result: sys_id = "scope123", scope = "x_acme_hr_onboard"

# Step 2: Get all artifacts
Tool: SN-Query-Table
Parameters:
  table_name: sys_metadata
  query: sys_scope=scope123
  fields: sys_id,sys_class_name,sys_name
  limit: 500

# Step 3: Get tables
Tool: SN-Query-Table
Parameters:
  table_name: sys_db_object
  query: sys_scope=scope123
  fields: sys_id,name,label,super_class
  limit: 20

# Step 4: Get scripts
Tool: SN-Query-Table
Parameters:
  table_name: sys_script
  query: sys_scope=scope123
  fields: sys_id,name,collection,when,active
  limit: 100
例 2:2 つのアプリケーションバージョンを比較する
# Get artifacts for version 1.0
Tool: SN-Query-Table
Parameters:
  table_name: sys_metadata
  query: sys_scope=[scope_v1_sys_id]
  fields: sys_id,sys_class_name
  limit: 500

# Get artifacts for version 2.0
Tool: SN-Query-Table
Parameters:
  table_name: sys_metadata
  query: sys_scope=[scope_v2_sys_id]
  fields: sys_id,sys_class_name
  limit: 500

# Compare artifact counts by type between versions
例 3:特定のベンダーが提供するすべてのアプリケーションを特定する
Tool: SN-Query-Table
Parameters:
  table_name: sys_scope
  query: vendor=Happy Technologies LLC^active=true
  fields: sys_id,name,scope,version,sys_created_on
  limit: 50

関連スキル

  • genai/app-generation - 要件に基づいて新しいアプリケーションを生成する
  • development/code-review - アプリケーションのスクリプトの品質をレビューする
  • development/code-assist - 既存のアプリケーション向けに新しいスクリプトを生成する
  • admin/update-set-management - アプリケーションをパッケージ化してデプロイする
  • security/acl-management - ACL を詳細に分析する

コメント