Chrome MCP Server について
Chrome MCP Serverは、Chromeを操作する実験的なMCPサーバーです。Cursorでページを確認する開発者向けに、プロトコル学習用のデモとMCP Python SDKを使った堅牢な実装を備えています。
主な機能
- 01Chromeとの連携
- 02ページのスクリーンショット
- 03MCPプロトコルのデモ
- 04SDKベースの実装
活用シーン
- 01Cursorでページを撮影
- 02ページ実装の検証
- 03MCPの初期化とツールの確認
MCP 対応
MCPクライアントにChrome操作機能を提供します。機能を絞ったデモ実装と、MCP Python SDKを使った堅牢な実装があります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Chrome MCP Server
Chrome との連携に使用するサーバーを構築しています。このプロジェクトの主な目標は次の 2 つです。
- Anthropic が提供する MCP ライブラリに依存しない MCP 実装を提供すること。
- Cursor でページのスクリーンショットを撮影し、実装を検証するために使用できる Chrome MCP サーバーを作成すること。
メモ
これは MCP プロトコルのリファレンス実装ではありません。プロトコルとその仕組みをより深く理解するための学習用の取り組みです。
より堅牢な実装は app フォルダーにあります。
デモ実装
これは MCP protocol の簡易的な実装です。そのため、MCP プロトコルのすべての機能を実装しているわけではありません。機能する実装を実現するため、まずは基本的な機能の実装に重点を置きました。
次のコマンドを実行すると起動できます。
uv run uvicorn demo_implementation.main:app --reload
続いて、MCP インスペクターを実行してテストします。
npx @modelcontextprotocol/inspector node build/index.js
インスペクターで、URL http://0.0.0.0:8000 を使用してサーバーに接続できます。
仕組み
デモ実装は主に次の 2 つのコンポーネントで構成されています。
- サーバーからクライアントにメッセージを送信するためのイベントストリーム。
- クライアントからサーバーにメッセージを送信するための POST エンドポイント。
この実装では、初期化プロセスとツールの実装に重点を置いています。その他の機能の実装には取り組んでいません。 初期化プロセスは、次の 3 つの手順で行われます。
/sseエンドポイントに最初のリクエストを送信し、セッション URI を取得します。- クライアントがサーバーに
initializeメッセージを送信し、サーバーはサポートする機能を応答します。 - クライアントがサーバーに
notifications/initializedメッセージを送信し、初期化が完了したことを通知します。
この実装が完了すると、クライアントはツールを使用するためのメッセージをサーバーに送信できるようになります。
デモ実装の制限事項
デモ実装には、エラー処理がないことや、セッションが適切にクリーンアップされないことなど、いくつかの制限があります。
MCP Python SDK に依存する、より堅牢な実装を app/main.py に追加しました。
堅牢な実装
より堅牢な実装では、接続とメッセージの処理に MCP Python SDK を使用しています。
この実装は app/main.py にあります。
仕組み
ツールとして使用する 3 つの関数を定義するだけなので、はるかに簡単です。これらを定義したら、app/main.py ファイルを実行して実装をテストできます。
# Start the server
mcp run app/main.py --transport sse
続いて、別のターミナルで MCP インスペクターを起動できます。
npx @modelcontextprotocol/inspector node build/index.js
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。