name: Rspec test
on:push:branches:-"master"jobs:rspec:runs-on: ubuntu-latest
env:PASS_SUPPORT:trueMODE: dev
steps:-name: Checkout repository
uses: actions/checkout@v3
-name: Set up Ruby
uses: ruby/setup-ruby@v1
with:bundler-cache:true-name: Run Rspec
run: bundle exec rspec -f d spec/
で結果を確認すると勝手にブラウザが起動しかつ selector で DOM 検索がない場合などに自動で再帰的に検索をかけ直し正しい DOM を見つけたりしてくれました
ここまでやってくれると(時間はかかりますが)かなり便利な感じはします
最後に
Windows + mcpo では puppetter のインストールやらいろいろしなければいけなかったのですが Mac 上では特に設定は不要でした
また Chrome の立ち上げも Windows だと詳細な命令が必要だったのですが Mac + Claude では不要でした
この挙動の原因として考えられるのは
LLM が異なることによる mcp への命令の精度の違い
mcpo が悪さしている
あたりかなと思います
Windows でも Claude クライアントを使えば同じような結果が得られるかもしれません
# frozen_string_literal: true
emacs_binary ='/usr/local/bin/emacs'
control 'emacs-install'do
impact 1.0
title 'Check Emacs installation'
describe file(emacs_binary)do
it { should exist }
it { should be_executable }end
describe command("#{emacs_binary} --version")doits('exit_status'){ should eq 0}
expect =/GNU Emacs/its('stdout'){ should match expect }endend
最初に kitchen でテストするようのイメージをビルドします
そしてそのイメージを元に chef を実行するコンテナが起動します
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fe474147bd7b 3d1e259aa0fe "/usr/sbin/sshd -D -…" 36 minutes ago Exited (0) 27 minutes ago defaultubuntu2204-username-machinename-6n9j5hv9
% docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 3d1e259aa0fe About an hour ago 241MB
おまけ: Github Action で実行する
vim .github/workflows/kitchen.yml
name: Kitchen test
on:push:branches:-"master"jobs:test:runs-on: ubuntu-latest
steps:-name: Checkout code
uses: actions/checkout@v4
-name: Set up Ruby
uses: ruby/setup-ruby@v1
with:bundler-cache:true-name: Install dependencies
run: bundle install
-name: Set up Docker
uses: docker/setup-docker-action@v3
-name: Run Test Kitchen
run:|
bundle exec kitchen testenv:CHEF_LICENSE: accept
CHEF_LICENSE: accept を忘れずに設定しましょう
トラブルシューティング
[2025-05-18T10:28:25+09:00] ERROR: Chef InSpec cannot execute without valid licenses.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
385829c1f469 mcp/time "mcp-server-time" About a minute ago Up About a minute beautiful_bassi
26cb3f21bde5 ghcr.io/open-webui/open-webui:main "bash start.sh" 22 minutes ago Up 22 minutes (healthy) 0.0.0.0:3000->8080/tcp, [::]:3000->8080/tcp open-webui
e38fe5175159 ghcr.io/berriai/litellm:main-latest "docker/prod_entrypo…" 22 minutes ago Up 22 minutes 0.0.0.0:4000->4000/tcp, :::4000->4000/tcp litellm
OpenWebUI 上で MCPO サーバと接続設定をする
あとは open-webui 上から MCPO サーバに接続する設定をすれば OK です
設定からツールで MCPO を新規ツールとして接続します
ブラウザから直接アクセスするので localhost や local IP ではなくブラウザからアクセスできる IP アドレスを指定しましょう
また Bearer トークンに先ほど設定したシークレット情報を入力します
くるくるマークを押すと接続テストができるのでここでちゃんと接続できるか確認しておきましょう
動作確認
あとはチャットに戻り MCPO 経由で質問できるか確認します
まずチャット画面上でツールが有効になっているか確認します
ツールの数が 1 になっていれば OK です
また詳細を確認すると実際に MCPO で使えるコマンドが表示されます
あとは質問してみましょう
こんな感じでちゃんと MCPO 経由で回答が来ていることが確認できます
MCPO 側にも以下のようなログがあることが確認できると思います
INFO: 192.168.100.2:30848 - "POST /time/get_current_time HTTP/1.1" 200 OK