5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude DesktopからServiceNow Build Agentを操作してGitHubにコミットまで自動化してみた

5
Last updated at Posted at 2026-02-11

Claude DesktopからServiceNow Build Agentを操作してGitHubにコミットまで自動化してみた

はじめに

この記事では、Claude Desktop(AI アシスタント)を使って ServiceNow の Build Agent を操作し、アプリケーションを自動生成して GitHub にコミットするまでの一連のフローを実装した記録です。

⚠️ 重要:

  • 本記事で作成したアプリケーションは概念実証(PoC)レベルであり、本番環境での使用を想定していません
  • Build Agent で基本的なテーブル構造を生成したのみで、Business Rules やワークフローなどの実装は含まれていません
  • あくまで「AI による自動化の可能性」を探る実験的な取り組みです

目次

  1. 実現したこと
  2. アーキテクチャ
  3. 環境準備
  4. 実装手順
  5. 詰まったポイント
  6. 実行結果
  7. 次回への改善策
  8. まとめ

実現したこと

以下の一連のフローを Claude Desktop 経由でほぼ自動化しました:

成果物:

  • 生成ファイル: 8個
  • コード行数: 300+行
  • Git コミット: 2回
  • 総実働時間: 2時間8分

アーキテクチャ

システム構成図

┌─────────────────────────────────────────┐
│         Claude Desktop                  │
│  ┌─────────────────────────────────┐    │
│  │   MCP Servers                   │    │
│  │  - ServiceNow MCP               │    │
│  │  - GitHub MCP                   │    │
│  └─────────────────────────────────┘    │
└─────────────────────────────────────────┘
              │
              ├──────────────────┐
              │                  │
              ▼                  ▼
    ┌──────────────────-┐  ┌──────────────┐
    │ ServiceNow IDE    │  │   GitHub     │
    │  - Build Agent    │  │  Repository  │
    │  - Git Integration│  └──────────────┘
    └──────────────────-┘

使用技術

技術 用途
Claude Desktop AI アシスタント・オーケストレーション
Claude in Chrome ブラウザ自動操作
MCP (Model Context Protocol) Claude と外部システムの連携
ServiceNow Build Agent アプリケーション自動生成
ServiceNow IDE コード編集・Git 統合
GitHub ソースコード管理

環境準備

1. 必要なアカウント

  • Claude Pro アカウント(Claude Desktop 利用)
  • ServiceNow Developer Instance
  • GitHub アカウント

2. ServiceNow MCP Server のセットアップ

Python 環境の準備

# プロジェクトディレクトリ作成
mkdir mcp_now
cd mcp_now

# 仮想環境作成
python -m venv venv

# 仮想環境を有効化
# Mac/Linux:
source venv/bin/activate
# Windows:
venv\Scripts\activate

# 必要なライブラリをインストール
pip install httpx fastmcp

MCP Server コードの作成

参考実装: ServiceNowMCPServer by anilvaranasi

servicenow_mcp_server.py を作成:

  • 下記2点の変更が必要です。
    • password, idの変更
    • Instance URLの変更

Claude Desktop への設定

~/Library/Application Support/Claude/claude_desktop_config.json を編集:

{
  "mcpServers": {
    "servicenow": {
      "command": "/opt/anaconda3/bin/python",
      "args": [
        "/Users/username/mcp_now/servicenow_mcp_server.py"
      ],
      "env": {},
      "disabled": false
    }
  }
}

3. GitHub MCP Server のセットアップ

  • tokenを作成し、Claude Desktopに設定を追加します。

Claude Desktop への設定追加

{
  "mcpServers": {
    "servicenow": {
      "command": "/opt/anaconda3/bin/python",
      "args": [
        "/Users/username/mcp_now/servicenow_mcp_server.py"
      ],
      "env": {},
      "disabled": false
    },
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

4. Claude Desktop の再起動

設定ファイルを保存後、Claude Desktop を完全に再起動します。

実装手順

Phase 1: 技術設計書の作成

Claude Desktop で以下のプロンプトを実行:

以下の仕様でServiceNowアプリケーションの技術設計書を作成してください:

【アプリケーション概要】
- 名称: On-Site Work Request(オンサイト業務設備申請)
- 目的: ホテル内設備対応依頼の管理

【主要機能】
1. 申請フォーム(Hotel Cubeまたは会議室)
2. 自動振り分け(客室/共有設備)
3. 承認フロー(会議室の場合)
4. メール通知
5. ステータス管理

【データモデル】
テーブル名: On-Site Work Request
主要フィールド: 申請者、予約日、設備種類、優先度、ステータス等

Claude が技術設計書(Markdown)を生成します。

Phase 2: GitHub リポジトリの作成

GitHubに新しいリポジトリを作成してください:

リポジトリ名: test4ba-claude
説明: ServiceNow application for on-site work request management
公開設定: パブリック
README: なし(重要!)
.gitignore: なし(重要!)
License: なし(重要!)

⚠️ 重要:

空のリポジトリを作成することで、後の Git マージ競合を回避できます。

Phase 3: ServiceNow Build Agent での自動生成

ServiceNow IDE へのアクセス

  1. ブラウザで ServiceNow インスタンスにログイン
  2. URL: https://your-instance.service-now.com/sn_glider_app/ide.do?sysparm_nostack=true

ワークスペースの作成

  • ワークスペース名: OnsiteWorkRequest(スペースなし、英数字のみ)

Build Agent へのプロンプト入力

Claude Desktop で以下を実行:

ServiceNow Build Agentのチャット入力欄(右下)に以下のプロンプトを入力してください:

---
ホテルの設備申請を管理するアプリケーションを作成してください。

テーブル名: On-Site Work Request

以下のフィールドを持つテーブルを作成してください:

フィールド:
- number: 自動採番(ONSITEREQ0000001形式)
- short_description: 文字列、必須、ラベル「概要」
- requested_on_site_date: 日付、必須、ラベル「予約日」
- requester: ユーザー参照、必須、ラベル「申請者」
- location_type: 選択、必須、ラベル「設備種類」
  選択肢: room=客室, conference=会議室
- hotel_cube: 選択、ラベル「Hotel Cube」
  選択肢: cube_a=Cube A, cube_b=Cube B, cube_c=Cube C
- conference_room: 選択、ラベル「会議室」
  選択肢: room_101=会議室101, room_102=会議室102, room_201=会議室201
- whiteboards: ブール値、ラベル「ホワイトボード」
- projector: ブール値、ラベル「プロジェクター」
- special_notes: 長いテキスト、ラベル「特記事項」
- state: 選択、必須、デフォルト=draft、ラベル「ステータス」
  選択肢: draft=下書き, submitted=提出済み, pending_approval=承認待ち,
         in_progress=処理中, completed=完了, cancelled=キャンセル
- assigned_to: ユーザー参照、ラベル「担当者」
- assignment_group: グループ参照、ラベル「担当グループ」
- priority: 選択、必須、デフォルト=2、ラベル「優先度」
  選択肢: 1=Low, 2=Medium, 3=High, 4=Critical
- work_notes: ジャーナル、ラベル「作業メモ」
- closed_at: 日時、ラベル「完了日時」
---

Build Agent が自動でコードを生成します(約25分)。

インストール

  1. 右下の「インストール」ボタンをクリック
  2. 「承認」ボタンをクリック
  3. インストール完了を待つ(約10秒)

Phase 4: Git 初期化とコミット

Git リポジトリの初期化

ServiceNow IDE で:

  1. 左サイドバーの「ソース管理」タブを開く
  2. 「リポジトリを初期化」ボタンをクリック
  3. ブランチ名: main を入力して確定

ファイルのステージングとコミット

# 未追跡ファイルをすべてステージング
「未追跡の変更」セクションの「+」アイコンをクリック

# コミットメッセージを入力
"Initial commit: Hotel Equipment Request Management app created by Build Agent"

# コミット実行
チェックマークアイコンをクリック

Phase 5: GitHub へのプッシュ

リモートリポジトリの設定

# ソース管理メニューを開く
「...」→「プッシュ」をクリック

# リモートリポジトリURLを入力
https://github.com/your-username/test4ba-claude.git

# 認証情報を設定
「構成」ボタンをクリック
- Git ユーザー名: your-github-username
- 個人アクセストークン: ghp_xxx...(事前に作成したトークン)

# 送信して保存
  • プッシュ実行

実行後、下部に「main に正常にプッシュされました。」と表示されます。

詰まったポイント

🔴 最大の障害: .gitignore マージ競合(時間ロス: 20分)

問題:

GitHub でリポジトリ作成時にデフォルトで .gitignore を生成すると、Build Agent が生成する .gitignore と競合します。

<<<<<<< main
# Build Agent generated
=======
# GitHub default
>>>>>>> origin/main

解決策:

競合マーカー(<<<<<<<, =======, >>>>>>>)を手動で3箇所削除しました。

予防策:

✅ リポジトリ作成時のチェックリスト
□ "Add a README file" → OFF
□ "Add .gitignore" → OFF
□ "Choose a license" → OFF

完全に空のリポジトリを作成することで、この問題を回避できます。

🟡 Build Agent チャット入力欄の特定(時間ロス: 5分)

問題:

アクセシビリティツリーに表示されない UI 要素があり、通常の要素検索が失敗しました。

解決策:

座標指定でクリック:

# 座標: [1220, 586] (右下の「チャットを開始...」)
click(1220, 586)

座標確認方法:

Chrome DevTools のコンソールで:

document.addEventListener('click', (e) => {
  console.log(`クリック位置: [${e.clientX}, ${e.clientY}]`);
});

実行結果

タイムライン

20:27 (JST) ━━━━━━ IDE起動・Build Agent探索 (15分)
20:42        ━━━━━━━━━━━ テーブル生成 (25分)
21:07        ━━ ビルド&インストール (12分)
21:19        ━━━ GitHub認証設定 (10分)
21:29        ━━━━━━━━ .gitignore競合解決 (25分)
21:54        ━━━━ GitHubプッシュ (15分)
22:09        ✅ 完了

成果物

GitHub リポジトリ:

  • 作成時の情報
    • URL: https://github.com/gozu52/test4ba-claude
    • ファイル数: 13個
    • コミット数: 2回
    • コード行数: 300+行

生成されたファイル構造:

test4ba-claude/
├── src/
│   └── on-site-work-request.now.ts
├── acl/
├── docs/
│   └── OnSiteWorkRequest_TechnicalDesign.md
├── notifications/
│   └── email_templates/
├── scripts/
│   ├── business_rules/
│   ├── client_scripts/
│   └── script_includes/
├── tables/
├── update_sets/
├── workflows/
├── .gitignore
├── README.md
└── now.config.json

効率性の評価

項目 結果
総時間 128分
準備・探索 30分 (25%)
実作業 60分 (45%)
トラブル対応 40分 (30%)
コード生成 100%自動
Git操作 80%自動
手動操作 20分のみ

次回への改善策

最適化ワークフロー

改善策を適用した場合の予想所要時間:

Phase 0: 5分   (事前準備)
Phase 1: 3分   (ワークスペース作成)
Phase 2: 30分  (Build Agent)
Phase 3: 5分   (Git初期化)
Phase 4: 10分  (GitHub連携)
Phase 5: 2分   (確認)
────────────────────
合計: 55分 (前回比: -57%短縮)

チェックリスト

実行前(10分前)

  • GitHub Personal Access Token を確認・更新
  • 完全に空のリポジトリを作成(README/gitignore/License なし)
  • 認証情報をメモ帳に準備
  • Build Agent プロンプトを準備

実行時

  • ServiceNow IDE にアクセス
  • ワークスペース名は英数字のみ
  • Build Agent に1プロンプトで完結する指示を送信
  • Git 初期化は main ブランチで
  • 認証情報は事前準備したものを使用

実行後

  • 実行時間を記録
  • 発生した問題を記録
  • UI 座標マップを更新

よく使う ServiceNow IDE 座標

# Build Agent関連
- チャット入力欄: [1220, 586]
- 送信ボタン: [1320, 586]
- インストールボタン: [1150, 750]

# Git操作関連
- ソース管理タブ: 左サイドバー3番目
- ステージング追加: ファイルの「+」アイコン
- コミット実行: チェックマークアイコン

まとめ

実現できたこと

AI によるアプリケーション自動生成

  • Build Agent が1プロンプトでテーブル定義を生成
  • 300+行のコードを手動コーディング0行で実現
  • エラーなしで1発成功

Git 統合の実用性確認

  • ServiceNow IDE の Git 機能は本番利用可能
  • Claude in Chrome との連携でほぼ自動化可能

開発フローの自動化

  • 設計 → 実装 → デプロイ → Git 管理の一連のフローを統合

できなかったこと・今後の課題

完全な自動化

  • UI 要素の座標クリックが必要
  • Git 競合の手動解決が必要
  • 認証情報の手動入力が必要

参考リンク

おわりに

今回の実験では、AI(Claude Desktop)を活用して ServiceNow アプリケーションの開発フローをほぼ自動化できることを確認しました。

ただし、本記事で作成したアプリケーションは PoC レベルであり、以下の点に注意が必要です:

  • ビジネスロジック(Business Rules)は未実装
  • ワークフロー・承認プロセスは未実装
  • セキュリティ設定(ACL)は未設定
  • エラーハンドリングは未実装

実務で使用する場合は、技術設計段階でこれらの実装を追加し、十分なテストを行う必要があります。

とはいえ、テーブル定義や基本構造の自動生成という点では、開発時間の大幅な短縮が期待できます。特に、プロトタイプ作成や PoC フェーズでは非常に有用なアプローチだと感じました。

今後、Build Agent の機能がさらに拡充され、より複雑なロジックの自動生成が可能になることを期待しています。

この記事が、ServiceNow 開発者の皆さんの参考になれば幸いです!


5
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?