Claude DesktopからServiceNow Build Agentを操作してGitHubにコミットまで自動化してみた
はじめに
この記事では、Claude Desktop(AI アシスタント)を使って ServiceNow の Build Agent を操作し、アプリケーションを自動生成して GitHub にコミットするまでの一連のフローを実装した記録です。
⚠️ 重要:
- 本記事で作成したアプリケーションは概念実証(PoC)レベルであり、本番環境での使用を想定していません
- Build Agent で基本的なテーブル構造を生成したのみで、Business Rules やワークフローなどの実装は含まれていません
- あくまで「AI による自動化の可能性」を探る実験的な取り組みです
目次
実現したこと
以下の一連のフローを 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 へのアクセス
- ブラウザで ServiceNow インスタンスにログイン
- 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分)。
インストール
- 右下の「インストール」ボタンをクリック
- 「承認」ボタンをクリック
- インストール完了を待つ(約10秒)
Phase 4: Git 初期化とコミット
Git リポジトリの初期化
ServiceNow IDE で:
- 左サイドバーの「ソース管理」タブを開く
- 「リポジトリを初期化」ボタンをクリック
- ブランチ名:
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+行
- URL:
生成されたファイル構造:
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 競合の手動解決が必要
- 認証情報の手動入力が必要
参考リンク
- Claude Desktop
- Model Context Protocol (MCP)
- ServiceNow MCP Server (参考実装)
- ServiceNow Build Agent ドキュメント
おわりに
今回の実験では、AI(Claude Desktop)を活用して ServiceNow アプリケーションの開発フローをほぼ自動化できることを確認しました。
ただし、本記事で作成したアプリケーションは PoC レベルであり、以下の点に注意が必要です:
- ビジネスロジック(Business Rules)は未実装
- ワークフロー・承認プロセスは未実装
- セキュリティ設定(ACL)は未設定
- エラーハンドリングは未実装
実務で使用する場合は、技術設計段階でこれらの実装を追加し、十分なテストを行う必要があります。
とはいえ、テーブル定義や基本構造の自動生成という点では、開発時間の大幅な短縮が期待できます。特に、プロトタイプ作成や PoC フェーズでは非常に有用なアプローチだと感じました。
今後、Build Agent の機能がさらに拡充され、より複雑なロジックの自動生成が可能になることを期待しています。
この記事が、ServiceNow 開発者の皆さんの参考になれば幸いです!