1. 概要
目的
Windows環境でVSCodeを使用する際に、GitHub Copilotの性能を上げるべく、Context7、Playwright、SerenaのMCPサーバーを設定したので備忘録として導入手順をまとめる。
対象環境
- OS: Windows 11
- WSL2: Ubuntu 24.04
- VSCode: Windows版(WSLにリモート接続)
- Node.js: 22.16.0以降
各MCPサーバーの役割
- Context7: LLMに最新のライブラリドキュメントとコード例をリアルタイムで提供し、古い情報やAPIの幻覚を防ぐ
- Playwright: ブラウザ自動化とWebページとのインタラクションを可能にする
- Serena: LSP(Language Server Protocol)を活用した、セマンティックなコード検索・編集機能を提供する。より高度なコード解析やリファクタリング支援を行うために利用されます
MCPとは
Model Context Protocol(MCP)は、AIアシスタントとデータソースを接続するためのオープン標準プロトコル。各データソースごとに個別の実装を行う必要がなく、単一のプロトコルで多様なシステムと接続できる。
2. 前提条件の準備
2.1 基本環境
以下がインストール済みであることを確認:
- Windows 11
- WSL2 + Ubuntu 24.04
- VSCode(Windowsにインストールして、WSLではVSCodeバイナリファイルをマウントして使っています)
- Node.js 22.16.0以降(WSL内)
2.2 uv導入(Serena用)
uvは、Rustで書かれた高速なPythonパッケージマネージャー。pipの10〜100倍の速度で動作し、Python環境の管理、パッケージのインストール、仮想環境の作成を統合的に行える。
WSL内で実行:
curl -LsSf https://astral.sh/uv/install.sh | sh
インストール後、パスを確認:
which uvx
# 出力例: /home/yasutaka/.local/bin/uvx
# pythonのバージョン確認
$ uv python find --show-version
# 出力例:3.12.12
Ubuntu 24.04では、Python 3.12がデフォルトでプリインストールされています。具体的には、標準のPython3コマンドpython3 --versionを実行するとPython 3.12.3のバージョンが表示されるため、Python 3.12がデフォルト環境として組み込まれていることがわかります。python管理と仮想環境化で実行するためのuvのインストールで十分です。pythonが入ってない場合は別途インストールしてくだささい。
2.3 Context7 APIキー取得
- https://context7.com でアカウント登録
- ダッシュボードにログイン
- API Keyを発行
- 発行したKeyは安全に保管(再表示できないため注意)
2.4 playwright用のブラウザバイナリファイルをインストール(Webブラウザが動作するための実行可能なプログラムファイル)
# こちらで全ブラウザがインストールされる
npx playwright install
# Chromeブラウザだけ個別にインストールしないと動かないかったので入れてます
npx playwright install chrome
上記を実行すると/home/ユーザー名/.cache/ms-playwright/に実行ファイルが保存されるはずです。
これだけで動作するはずです。もしエラーが出る場合は、システム依存関係のインストールが必要な可能性があります:
# エラーが出た場合のみ実行
npx playwright install-deps
3. mcp.json設定
3.1 設定ファイルの配置
VSCodeはWindows側の設定を参照するため、以下のパスに配置:
C:\Users\ユーザー名\AppData\Roaming\Code\User\mcp.json
※ ユーザー名 は自分のWindowsユーザー名に置き換える
3.2 設定ファイル全体
{
"inputs": [
{
"id": "CONTEXT7_API_KEY",
"type": "promptString",
"description": "API key for authentication",
"password": true
}
],
"servers": {
"microsoft/playwright-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
},
"io.github.upstash/context7": {
"type": "stdio",
"command": "npx",
"args": [
"@upstash/context7-mcp@1.0.25"
],
"env": {
"CONTEXT7_API_KEY": "${input:CONTEXT7_API_KEY}"
}
},
"oraios/serena": {
"type": "stdio",
"command": "wsl",
"args": [
"-e",
"/home/yasutaka/.local/bin/uvx",
"--from",
"git+https://github.com/oraios/serena",
"serena",
"start-mcp-server",
"serena==latest",
"--context",
"ide-assistant"
]
}
}
}
3.3 各サーバーの設定解説
Context7
-
${input:CONTEXT7_API_KEY}: VSCode起動時にAPIキー入力を促すプロンプトを表示 - 認証後、最新のライブラリドキュメントにアクセス可能
Playwright
- 認証不要
-
@playwright/mcp@latestで常に最新版を使用 - playwrightを使うための方法はこちらにまとめています
Serena
-
command: "wsl": WindowsからWSL環境のコマンドを実行 -
/home/yasutaka/.local/bin/uvx: uvxの絶対パスを指定(ユーザー名は自分の環境に合わせる) -
-context ide-assistant: IDE統合用の設定で、VSCodeなどの組み込み機能との重複を避ける
4. 使用方法
Context7
プロンプトに use context7 を追加:
Next.jsの最新のapp routerの使い方を教えて。use context7
Context7がバージョン固有のドキュメントとコード例を取得し、古い情報や存在しないAPIへの参照を排除することができて、質問への回答も正確になります。
Playwright
ブラウザ操作やスクリーンショット取得、JavaScriptの実行などが可能。VSCodeのAI機能から自動的に利用される。Copilotのチャット欄に以下のようなプロンプトを書いて送信するとブラウザが開いて操作が行われます。
基本的な操作
◆ページを開く:
"https://example.com を開いて"
"Googleのホームページに移動して"
◆要素をクリック:
"ログインボタンをクリックして"
"検索ボタンを押して"
◆テキスト入力:
"検索ボックスに『TypeScript』と入力して"
"ユーザー名フィールドに test@example.com と入力して"
◆ページのスクリーンショット:
"現在のページのスクリーンショットを撮って"
"画面をキャプチャして"
Serena
1.プロジェクト作成・設定
プロジェクトディレクトリで以下を実行
既存プロジェクトの場合主要言語は自動検出できる
## 既存プロジェクトの場合
uvx --from git+https://github.com/oraios/serena serena project create --name "My Project"
## 新規プロジェクトの場合は主要言語を`--language`オプションで複数指定できる
uvx --from git+https://github.com/oraios/serena serena project create --language python --language typescript --name "My Project"
2. プロジェクトのインデックス化
大規模プロジェクトでは初回インデックス化推奨
uvx --from git+https://github.com/oraios/serena serena project index
これでコード構造を素早く参照可能
3. プロジェクトのアクティベート(初回のみ)
該当のプロジェクトのルートディレクトリに移動して、チャット欄以下を自然言語で入力すると”Serenaに「どのプロジェクトを操作するか」を認識させることができます
Activate the project /path/to/my_project
4. オンボーディング(プロジェクトに慣れさせる)
以下のチャットに打ち込むと中身を検査して、”memories”ディレクトリにプロジェクトの中身を説明するためのコンテキストが生成されます**
@serena onboarding
5. 動作確認
自然言語で指示するだけでエージェントがSerenaを使って動くはず
@serena list_dir
@serena read_file .githooks/pre-commit
「Foo関数の直後にテストを追加」
「BarクラスのDocstringを書き換え」
「utils.pyの主要シンボルを整理」など
5. トラブルシューティング
APIキーが要求される
Context7の初回接続時にVSCodeがプロンプトを表示。発行したAPIキーを入力。
Serenaが起動しない
uvxのパスが正しいか確認:
which uvx
mcp.jsonの/home/yasutaka/.local/bin/uvxを実際のパスに修正。
WSL連携エラー
command: "wsl"が正しく機能するには、WSL2が正常に動作している必要がある。WSLのバージョンを確認:
wsl --version
6. 参考リンク
- Context7: https://github.com/upstash/context7
- Playwright MCP: https://github.com/microsoft/playwright-mcp
- Serena: https://github.com/oraios/serena
- MCP公式: https://github.com/modelcontextprotocol
- uv: https://docs.astral.sh/uv/