以下の内容はhttps://blog.pokutuna.com/entry/pokutuna-mcp-chrome-tabsより取得しました。


開いているブラウザの内容を読める MCP サーバー

を作りました @pokutuna/mcp-chrome-tabs

デモ

AppleScript を使っている都合上 macOS でのみ動きます。

なぜ作ったか

既に LLM にブラウザを操作させる技術は色々ある。browser-useplaywright-mcpmcp-chrome などなど。

これらの Tool, MCP は便利だけど、様々なツールが入っていてコンテキストへの圧迫が大きく、Chrome の debugging port を開けたり、普段のユーザディレクトリは使えなかったり、ブリッジとなるブラウザ拡張入れたりなど、まあまあめんどく、普段遣いしたいかというと否である。なのでタスクに応じて MCP サーバーのセットを切り替えて暮らしている。

ただ今開いているページを LLM に読ませたい

普段はブラウザ操作をしたいわけではなく、今見ているページを LLM に読ませたいことがほとんどだなと気づいた。

いまや大抵の AI アプリケーションは URL を取得して読んでくれるし、検索エンジンを使えたり便利になっているものの、様々な煩わしさがある。

  • URL を貼っても読んでくれず「fetch して」と追加で指示
  • 取得し始めるものの robots.txt に阻まれる
  • "代わりに別のページを検索します" やめてくれ〜
  • 検索したら「これは別の話だな...」「古いの参照してるな...」と実行を停める
  • 認証情報がなく見られない、与えるのもひと手間
  • 長大なページを読んで Prompt too long エラーで死ぬ

ただ俺が今見てるページ読んでくれ!! という気持ちで作ったのが @pokutuna/mcp-chrome-tabs です。

機能・特徴

  • Apple Script 経由でタブのコンテンツを取得する
    • 追加の HTTP リクエスト送らず、ページの内容をそのまま参照
  • 本文部分を取得し Markdown に変換
    • @mozilla/readability の代替を目指す defuddle を使う
  • ツール 3 つのみ、説明も出力も短めで普段遣いできるように
    • list_tabs: 現在開いているタブの一覧を取得する
    • read_tab_content: 指定したタブの本文部分を Markdown で取得する
    • open_in_new_tab: AI 側からユーザのブラウザで URL を開けるように
  • 実験的に MCP Resources に対応
    • Claude Code の @ 補完にタブの候補が出ます

単純な MCP サーバーで似たものもいくつかあるけど、意外と満足行くものがなく1作ることにしました。 名前に chrome と入れてしまったけどオプションを指定することで Safari でも動く。

使い方

以下のような感じで MCP サーバーとして追加します:

{
  "mcpServers": {
    "chrome-tabs": {
      "command": "npx",
      "args": ["-y", "@pokutuna/mcp-chrome-tabs@latest"]
    }
  }
}

Claude Code の場合は以下のコマンドで:

$ claude mcp add -s user chrome-tabs -- npx -y @pokutuna/mcp-chrome-tabs@latest

その後、Chrome のメニューから
表示 > 開発 / 管理 > Apple Events からのJavaScript を許可
AppleScript 経由からの Chrome の操作を許可してください。2

実際の使用例

作ってからほぼ毎日使っています。こんな感じで活用中。

  • 議事録開きながら「決定事項を箇条書きにして」
  • コーディングエージェントが新しすぎて LLM 側に情報がないような作業するときに、公式ドキュメントやリファレンスを開いておいて「タブ一覧から関連する内容を確認してから作業して」
  • リポジトリにない設計ドキュメントを開いておいて 「現在のタブの内容から重要なものを CLAUDE.md に反映して」

手で丁寧に渡すなどの代替手段でできることではありますが、いきなり指示して読めるのが便利。

defuddle の本文抽出都合でうまく取れないケースもあり改善したいものの、まあ大抵はうまくいきます。本文テキストを取り出すものなので、具体的には GitHub のコードのページなんかはうまくいかないけど、URL を確認してから gh を使ってくれたり / 使うよう促したり。

MCP Resources プロトコルに対応

Tools だけでなく MCP の Resources プロトコルにも対応してみました。

Claude Code では @file で特定のファイルを参照させることができるけど、その補完候補に Resource を登場させることができます。@curtab://current の参照を補完させたり、@{ページタイトルやホスト名の一部} など引っかかるワードで補完候補から選べます

@ で補完候補に出て選べる

タブ集合の差分を検出してリソースリストの再取得を促す listChanged notification を送る実装もしていますが、まだ Claude Code 側が対応しておらず起動時のタブリストから更新されない。まあそのうち対応されるでしょう...

まとめ

使ってみてね

おまけ情報: playwright-mcp 公式のブリッジ拡張が来そう

リポジトリを見ると見つかる。まだ動きはするけど PoC かな? 再接続ができなかったり親切さゼロだったり。
でも信頼できるところがリリースしてくれると使いやすいので期待しています。
playwright-chrome-extension - pokutuna


  1. 例えば Claude Desktop の Chrome コネクタも似たような仕組みではあるものの、実装がいまいちで本文部分の切り出しがなかったり
  2. Chrome が制限厳しくしたのに横穴開けている感はあるので注意は必要



以上の内容はhttps://blog.pokutuna.com/entry/pokutuna-mcp-chrome-tabsより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14