1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OutSystems 11のMCPとmablで、AIエージェントにE2Eテストを任せる(2) 環境構築編

1
Last updated at Posted at 2026-10-26

はじめに

第1回(概要編)では、「操作の手がかりはモデルから、期待値は仕様から」という考え方と、全体の構成を紹介しました。

第2回の今回は、その構成を実際に組み立てます。Service Studio の MCP サーバーと mabl MCP を Claude Code につなぎ、O11 と mabl のスキルを入れ、作業の土台になる Git リポジトリを用意するところまでです。

回 内容
1. 概要編 なぜ独立した検証が必要か、考え方の核、全体の構成
2. 環境構築編(この記事) Service Studio の MCP と mabl MCP を Claude Code につなぐ
3. 仕様とモデルの突き合わせ編 AIに仕様と実装の食い違いを見つけさせる
4. テスト作成・実行編 仕様どおりの期待値で mabl のテストを作る
5. 修正ループ編 AIが直し、人が Compare and Merge で取り込む
6. メンテナンス編 同期コマンドとバージョン管理で回し続ける

構成のおさらい

Service Studio(O11 MCP)、Claude Code、mabl(mabl MCP)、Gitリポジトリ、経費申請アプリの構成図

今回つなぐのは次の3つです。

部品 動く場所 接続先
Service Studio の MCP サーバー 手元のPC http://127.0.0.1:41820/mcp
mabl MCP クラウド https://mcp.mabl.com/mcp
Claude Code 手元のPC 上の2つに MCP クライアントとして接続

アプリ本体は O11 の個人環境で動かし、mabl はそのアプリをブラウザで操作してテストします。

O11 側の準備

個人環境と Service Studio

検証には、OutSystems が提供する O11 の個人環境(Personal Environment)を使いました。デモアプリはここに公開しています。

Service Studio は、11.55.91 以降で MCP サーバーに対応しています。Mac 版もあります。今回は 11.55.93 を使いました。

個人環境のサーバーは UTC で動いています。日本時間の0時〜9時は、サーバー側の「今日」が日本の前日になります。日付を扱う業務ルールをテストするときは注意してください(第4回でも触れます)。

MCP サーバーを起動する

Service Studio で対象のモジュールを開き、MCP Server の設定画面からサーバーを起動します。状態が Running になれば準備完了です。

Service Studio の MCP Server 設定画面。Running の表示と、Write permissions の Manual review の選択

設定画面で確認するのは次の3点です。

項目 設定 理由
Port / URL 41820 / http://127.0.0.1:41820/mcp Claude Code の接続先として使う
Start when Service Studio opens オン 毎回起動し忘れないように
Write permissions (Beta) Manual review changes in compare and merge AIの変更を、人が差分で確認してから取り込むため

Write permissions のもう一方の選択肢(Allow automatically merge and publish)を選ぶと、AIの変更がそのまま公開まで進みます。今回の構成では「取り込むかどうかは人が決める」ことを大事にしているので、手動レビューを選びました。なお、書き込みの機能は執筆時点では Beta です。

O11 のスキルを入れる

OutSystems が、O11 の MCP をエージェントから使うためのスキルを GitHub で公開しています。Claude Code の場合は、次の手順で入ります。

git clone https://github.com/OutSystems/outsystems11-mcp.git
cd outsystems11-mcp
bash scripts/install.sh

スキルには、モデルの読み方や変更の進め方など、O11 の MCP ツールを使うときの手順がまとまっています。

mabl 側の準備

mabl では、テスト対象のアプリに合わせて、ワークスペースに次のものを用意しました。いずれも mabl の画面から設定できます。

用意したもの 内容
アプリケーションと環境 経費申請アプリと、O11 個人環境の URL
クレデンシャル 申請者2人、承認者1人のテストユーザー
共有フロー ログインとログアウト。各テストから呼び出す

テストユーザーを3人に分けたのは、「自分の申請は承認できない」のような、ユーザーの組み合わせで決まる業務ルールを確かめるためです。

mabl のエージェントへの指示(Agent instructions)も設定しますが、これは第4回で詳しく紹介します。

mabl のスキルを入れる

mabl も、コーディングエージェント向けのスキルを mablhq/skills で公開しています。Claude Code のプラグインとして入れると、スキルと MCP サーバーの設定がまとめて入ります。

前提として、次の2つを用意しておきます。

  • mabl CLI のインストールとログイン(Node.js 20 以上が必要)
  • ターミナルで動く Claude Code 本体(VS Code の拡張機能ではないもの)
npm install -g @mablhq/mabl-cli
mabl auth login --auto

続いて、ターミナルで Claude Code を起動し、プラグインを入れます。

claude
/plugin marketplace add mablhq/skills
/plugin install mabl@mabl

VS Code の Claude Code 拡張機能では、/plugin コマンドによるプラグインのインストールに対応していません。そのため、プラグインはターミナルの Claude Code から入れました。O11 のスキルもターミナルから入れているので、スキルの準備はどちらもターミナルで済ませ、普段の作業は VS Code の拡張機能から行う、という分担です。

入るスキルは次の5つです。

スキル 内容
mabl-init プロジェクトの初期設定。ワークスペース、アプリケーション、環境、クレデンシャルを調べ、CLAUDE.md などに書き込む
mabl-test-authoring 対話しながらテストの計画を立て、mabl のクラウドでテストを作る
mabl-test-coverage-design 機能単位で、必要なテストの一式を設計して作る
mabl-test-edit 既存のテストを変更する
mabl-debug 失敗したテストの原因を調べて直す

あわせて、mabl MCP(https://mcp.mabl.com/mcp)と、ブラウザを操作するための2つの MCP サーバー(chrome-for-mabl、chrome-devtools)も設定されます。

Cursor、GitHub Copilot、OpenAI Codex 向けの入れ方も、リポジトリの README にまとまっています。

mabl-init は、調べたワークスペースの情報を CLAUDE.md に書き込みます。すでに独自のルールを書いた CLAUDE.md がある場合は、書き込まれた内容がリポジトリのルールと食い違っていないかを確認してください(後述の「スキルとルールの食い違いを洗い出す」も参照)。

Claude Code に2つの MCP をつなぐ

リポジトリの直下に .mcp.json を置き、2つの MCP サーバーを登録します。mabl のプラグインを入れた場合、mabl MCP はプラグイン側でも設定されますが、どの接続先を使うかをリポジトリで明示しておくため、ここにも書いています。

.mcp.json
{
  "mcpServers": {
    "servicestudio": {
      "type": "http",
      "url": "http://127.0.0.1:41820/mcp"
    },
    "mabl": {
      "type": "http",
      "url": "https://mcp.mabl.com/mcp"
    }
  }
}

mabl MCP は OAuth で認証します。初回に使うときに、ブラウザで認可を求められます。

タイムアウトを延ばしておく

O11 のモデルを変更するツールは、Service Studio 側で取り込みや検証が走るため、完了までに時間がかかることがあります。Claude Code の MCP ツールのタイムアウトを長めにしておきます。

export MCP_TOOL_TIMEOUT=1800000  # ミリ秒、30分
claude

servicestudio のツールは並列で呼ばない

検証中にいちばんつまずいたのがこれです。Claude Code は、複数のツールを並列で呼び出して作業を速めようとすることがあります。servicestudio のツールを並列で呼ぶと、OML not found のエラーになりました。

後で紹介する CLAUDE.md に「servicestudio のツールは1つずつ呼ぶ」と書いておくと、エージェントが守ってくれます。

作業の土台になる Git リポジトリ

O11 のモデルは Service Studio とサーバーに、mabl のテストは mabl のクラウドにあります。リポジトリに置くのは、そのどちらにもない情報です。

リポジトリの構成。business-rules.md、prompts、workspace、CLAUDE.md の役割

置いたもの 役割
apps/ExpenseApp/business-rules.md 業務ルール。テストの期待値の正本
apps/ExpenseApp/ のその他 画面の一覧、エンティティ、テストのカタログなど、モデルから同期した事実
prompts/ 繰り返し使う依頼。誰が実行しても同じ結果になるように
workspace/ mabl のアプリ、環境、クレデンシャル、プランの ID の対応表
results/ テストの実行結果の要約
CLAUDE.md エージェントへのルール
.mcp.json MCP サーバーの接続先

エージェントに mabl の ID を推測させず、workspace/ の対応表から取らせるようにしたことで、間違ったテストやプランを操作する事故がなくなりました。

CLAUDE.md に書いたルール

CLAUDE.md には、毎回プロンプトで言わなくてもエージェントが守るべきルールを書きます。今回の要点は次のとおりです(実際の文面を要約したものです)。

CLAUDE.md(要約)
## 仕様とO11モデルの関係
- 業務ルールの正本は apps/ExpenseApp/business-rules.md と、O11モデルの Description。
- O11の実装ロジック(Ifの条件など)を、期待値の答えとして使わない。
- 仕様と実装が食い違っていたら、どちらかを書き換えずに報告する。

## servicestudio のツール
- 並列で呼ばない。1つずつ呼ぶ。
- O11モデルを変更する前に、変更内容を日本語で説明する。
- omlMerge が待ち時間切れでエラーになっても、再実行せずにユーザーに確認する。

## ユーザーの確認が必要な操作
- コミット、push、mablでの削除、O11モデルの変更。

1つ目のブロックが、第1回で紹介した「期待値は仕様から」を、エージェントのルールとして書いたものです。

スキルとルールの食い違いを洗い出す

O11 と mabl のスキルを入れた後、スキルの手順と CLAUDE.md のルールが食い違う箇所を、エージェント自身に洗い出させました。今回は5つ見つかりました。

スキルは汎用的に書かれているので、「このリポジトリではこうする」というルールとぶつかることがあります。スキルを入れたら一度、食い違いを確認しておくと、後で思わぬ動きをされずに済みます。

動作確認

準備ができたら、Service Studio でモジュールを開いて MCP サーバーが Running になっていることを確認し、Claude Code を起動します。servicestudio と mabl の両方のツールが使える状態になっていれば完了です。

最初に servicestudio のツールを呼ぶと、Service Studio 側にアクセスを許可するかどうかの確認が表示されます。Service Studio のウィンドウが Claude Code の後ろに隠れていると、エージェントが待ち状態のまま止まって見えるので注意してください。

まとめ

やったこと ポイント
Service Studio の MCP サーバーを起動 書き込みは「Compare and Merge で手動レビュー」
O11 と mabl のスキルを導入 入れた後に CLAUDE.md との食い違いを確認
mabl のワークスペースを準備 テストユーザーは業務ルールに合わせて複数用意
.mcp.json で2つの MCP を登録 タイムアウトを延ばし、servicestudio は並列で呼ばない
Git リポジトリを用意 仕様、ID の対応表、プロンプト、ルールを置く

次回は、この環境を使って、O11 のモデルと業務ルールを突き合わせ、仕様と実装の食い違いを AI に見つけさせます。

この記事は個人の検証結果をまとめたものです。所属する組織の公式な見解ではありません。mabl に関する記述は、公開されている製品情報とドキュメントにもとづいています。

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?