🤖

Claude Desktopをインストールしてブラウザを自動操作させるまで

2025/01/19に公開

Claude, Dify, DevinなどLLMをエージェント化するツールが雨後の筍の如くリリースされています。
どれがデファクトと呼べるレベルで定着するのか読むことが難しいため、触るモチベーションは低いものの、一切触らないのもいかがなものか。
という事でClaude Desktopをインストールし、MCPと呼ばれるものを試してみました。

Claude Desktopのインストール

https://claude.ai/download
こちらでインストール可能です。
Webサイトではなくデスクトップアプリケーションとしてインストールする事で、後述するMCPを活用したプラグインが活躍する、というものです。

インストールすると概ねChat GPTなアプリケーションが使えるようになります。

MCPとは

Model Context Protocolの略です。
LLM Modelに対し既定のインターフェースを提供する事で、様々な追加機能をチャットUIを通じて動作するようにしよう、というものです。
この仕組みにより、Claudeが最新情報を検索できるようになったり、PC上のファイル操作を可能になったり、Slackの情報を読み書きできるようになります。

上記画像のような説明が公式ドキュメントから確認可能です。

Configファイルの設定

設定用のjsonファイルにプラグイン設定を書き込むことで、MCPで動くプラグインを利用できます。
設定ファイルのパスをなんらかのブログ記事に従い捜索しても良いですが、初回は設定ファイルが存在しない、ファイル名が間違っているなど罠があるので、アプリケーションのSettings...から
Developerタブを開き、GetStartedボタンを押しましょう。

設定ファイルclaude_desktop_config.jsonとして空のjsonファイルがが生成されます。
ここに任意の項目を追加していきます。
今回は例としてpuppeteerによるブラウザの自動操作を試してみました。
参考: https://qiita.com/okikusan-public/items/d5334c9a4018d963669c
AIと自分が実際に同じコンテンツを眺めながら指示を出す体験は、AIがググった結果をテキストで表示されるものとは一味違ったものになります。

claude_desktop_config.jsonの内容を下記の内容に更新します。

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
    }
  }
}

jsonファイルを更新後、Claude Desktopアプリケーションをタスクキルし、再起動すると設定が反映されます。
設定が反映されると、有効なプラグイン一覧として設定画面に表示されるようになります。

端的に説明するとアプリケーション起動時に設定した通りのコマンドが実行され、node製アプリケーションがnpxコマンドを通じて実行される(Python製のものもあるかも)、という形でプラグインが配布されているようです。
今回の例でnpxコマンドを通じて起動する@modelcontextprotocol/server-puppeteerがMCP Serverとして振る舞うものとして、ローカル環境上で動いています。
npxで動くタイプのMCPプラグインを利用するにはnodejsがPCにインストールされている必要があります。
このあたりの説明は既に多数の記事が出ているため割愛し、体験記的な記事を記載します。

MCPの機能を使ってみた

追加した機能を使うかどうかはAIが良い感じに判断します。
「このURLにアクセスして」のような命令をすると@modelcontextprotocol/server-puppeteerが利用される、という挙動になります。

実際に参考記事のようにAlertを実行する事ができました。

同様に様々なMCP Serverプラグインを探しては設定に追記していくと、Slack投稿など適宜機能が追加されます。

Claudeにはまだ音声入力機能がありませんが、ゆくゆくは作業をしながらPCに話しかけるだけでアシスタント的な動きをしてくれるのでは、と期待しています。

余談ですがClaudeは無課金では本当に僅かな試行回数しか動かせず、5~6時間後まで利用不能になります。
どれか本腰を入れて課金したくなる機能が産まれるまでは使う事はないかなと感じました。

MCP自体はオープンソースとして開発可能なものなので、後々公式ドキュメントを読み込んで自分でプラグインを作れるくらいの知見を持ってみたいですね。

Discussion