はじめに
2025年に入ってから、MCPの魅力にすっかり虜になってしまい、
色々プロトコルを追加しては遊んでいる日々を過ごしています。
さて、そんな中で、WordPressをローカル環境に移してClaude4さんに開発を~丸投げ~協力してもらいながら、進めていました。
ふと、ローカル環境で立ち上げたURLにPlayWright MCP
を潜り込ませれば、
UIデザインもClaudeさんに任せられるのでは?と思ったので、さっそく仕込んでみました。
するとさっそく、デザイン分析まで進めてくれてそれをもとにfilesystemの編集とe2eテストも完全自動で行ってくれて大変ありがたかったのですが、あるタイミングで完全にアクセスできなくなりました。
そのとき、Claudeからこのように言われました。
.localにアクセスしようとしましたが、robots.txtによってアクセスが制限されているようです。
ローカルドメイン(.local)なので、おそらくあなたのローカルネットワーク内のサーバーだと思います。MCPツールは外部のWebサイトへのアクセス用に設計されているため、
ローカルネットワーク内のリソースへのアクセスには制限があるかもしれません。
robots.txt
・・・?
良くわからなかったので、分からないことは記事としてまとめる精神に則り、調査してみることにしました。
robots.txtとは
robots.txt
とは、公開WEBサイトが検索エンジンのクローリングを制御するために使用する、アクセスを制御をするテキストファイルです。
通常はウェブサイトのルートディレクトリに置かれていて、検索エンジンのクローラー(Webサイトを巡回して情報を収集するプログラム)に対して、「どのページにアクセスしてOKかダメか」を伝えるためのものです。
ポイント1 あくまでも「お願い」である
robots.txt
は、アクセスを制限するいった「命令」的拘束ではなく、「従ってください」というお願いベースの拘束です。
ですので、セキュリティレベルはそこまで高くなく、悪意あるボットからは普通に無視されます。
また、robots.txt
は公開ファイルなので、検索すれば普通に見ることができます。
WordPressではURLに/robots.txt
をつけるとみることができます。
こんな感じです。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
ポイント2 検索エンジン別の対応
Google(chrome)はrobots.txtを厳格に守っているようです。
これは、ブラウザごとに異なっているそうですが、主要ブラウザは基本的に同じスタンスのようです。
ポイント3 結局なんのためにあるのか
これはWebの歴史にも関わる箇所です。
web黎明期の頃検索エンジンのボットが大量発生し、アクセス数が激増したためサーバー負荷が異常なくらいかかりました。
そこで当時の開発者たちが紳士協定的意味合いで、robots.txt
を提案したそうです。
これにより、
・不要なページのクロールを避ける
・アクセス頻度をコントロール
・個人情報を含むページを保護
という意図で使われるようになったそうです。
MCPではアクセスできないのか
今回はPlayWright MCP
でアクセスブロックが発生しました。
このMCPの中身はわかりませんが、少なくともいえることは、MCP(そのweb_fetchは)はアクセス時にクローラーのような形ではなく、きちんとrobots.txtを尊重してアクセスしていることが制限によりわかりました。
この制限を乗り越えるには、外部連携元のPlayWrightのアクセス方法を覗かないと分からないです。
また、robots.txtを一時的にリネームして解除することもできるそうです。
しかし、現時点で一番有力な方法として、Filesystem MCP
+ 手動確認が最も効率的で、時間的な負荷もかからないと考えてます。
終わりに
PlayWright MCPを活用して新たにこんな知見まで得られるとは、思わぬ発見でした。
MCPのソースコードも覗いてみて、どんな風にアクセスされているのか検証するのもいいかもしれませんね。(というより、いつかやりたい)。