
GitHub Copilot × Serena MCP でどんな分析ができるのか試してみた
はじめに
生成AIアシスタントを開発に活用する流れは加速していますが、実際のところ
- プロジェクト全体をどの程度理解させられるのか
- モジュール間の依存関係をどこまで自動で可視化できるのか
- 設計資料の作成をどの程度支援できるのか
といった点は、実際に動かしてみないと分かりません。
そこで今回は、Serena MCP を導入し、GitHub Copilot と組み合わせて検証しました。
Serena MCP とは?
Serena MCP は、Model Context Protocol (MCP) に対応した開発支援用のサーバーです。
MCP は「AIエージェントと外部ツールをつなぐ共通プロトコル」で、GitHub Copilot や Cursor などのエディタから利用できます。
Serena MCP を導入することで、AI は単に自然言語を処理するだけでなく、以下のような 開発者向けの“道具” にアクセスできるようになります。
- プロジェクト全体のファイル・モジュール構造を解析
- 関数やクラスのシンボル情報を抽出
- モジュール間の依存関係を可視化
- 設計資料のたたき台を生成
つまり 「Copilot がプロジェクトの内部を理解するための眼と手を与える仕組み」 が Serena MCP です。
今回は VS Code での利用を前提に検証を行いました。
検証環境
- OS: Windows 10
- エディタ: VS Code
- GitHub Copilot 有効化済み
- Python / pip 導入済み
- uv / uvx 導入済み
動作確認コマンド
環境が正しく整っているかを確認するため、以下のコマンドでバージョンが表示されることをチェックしました。
python --version
pip --version
uv --version
uvx --version下記のように、それぞれバージョンが表示されればOKです。
C:\Users\user>python --version
Python 3.13.7
C:\Users\user>pip --version
pip 25.2 from C:\Users\user\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip (python 3.13)
C:\Users\user>uv --version
uv 0.8.12 (36151df0e 2025-08-18)
C:\Users\user>uvx --version
uvx 0.8.12 (36151df0e 2025-08-18)補足: python --version が「Python」とだけ表示される場合
Windows 10 では、Microsoft Store のプレースホルダが先に呼ばれてしまい、バージョンが表示されないことがあります。
その場合、Copilot でエラーとなる可能性があるため、下記を試してください。
py --versionを試す(Windows 標準ランチャーで確認できることが多い)where pythonで実際に呼ばれているパスを確認- PATH に正しい Python 実行ファイル(例:
C:\Users\<ユーザー名>\AppData\Local\Programs\Python\Python313\)が含まれているかをチェック - Microsoft Store 版のエイリアスが競合している場合は、「アプリ実行エイリアスの管理」から python.exe / python3.exe を無効化すると解決できるケースがあります
Serena MCP の導入
1. 起動テスト
GitHub リポジトリから直接取得してローカルで MCP サーバーを起動します。
uvx --from git+https://github.com/oraios/serena serena start-mcp-server
実行するとブラウザに Serena MCP のダッシュボードが開き、提供されている MCP ツール一覧やログを確認できます。
これはあくまで確認用ビューなので、ブラウザを閉じてもサーバープロセス自体は動作を続けます。
2. VS Code / Copilot との連携
VS Code と GitHub Copilot から Serena MCP を使えるようにするため、MCPサーバの設定ファイルを作成します。ワークスペース直下の .vscode/mcp.json に以下の設定を追加します。
{
"servers": {
"serena": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/oraios/serena",
"serena-mcp-server",
"--context",
"ide-assistant"
],
"env": {
"SERENA_LOG_LEVEL": "info"
}
}
}
}全体構造
servers: MCP サーバーの一覧を定義するキー。serena: サーバー名。任意に決められますが、ここでは「serena」としておくことで、Copilot Chat からserenaを指定して利用できます。
コマンド
"command": "uvx"
- 実際に MCP サーバーを起動するコマンド。
uvxは Python 用のパッケージ実行ツールで、Node.js のnpxと同じように「一時的にパッケージを取得して実行」できます。- つまり「
uvxを使って Serena を起動しなさい」という指定。
- つまり「
args
"args": [
"--from",
"git+https://github.com/oraios/serena",
"serena-mcp-server",
"--context",
"ide-assistant"
]--from: どこからパッケージを取ってくるかを指定。git+https://github.com/oraios/serena: Serena を GitHub リポジトリから直接取得。serena-mcp-server: 実行するエントリーポイント。Serena を MCP サーバーモードで起動します。--context ide-assistant: 起動時のコンテキスト指定。IDE(VS Code)向けのアシスタントモードで動かすオプションです。
env
"env": {
"SERENA_LOG_LEVEL": "info"
}- 環境変数を設定するセクション。
SERENA_LOG_LEVEL=infoにより、ログ出力を「info レベル」に設定しています。- より詳細に見たい場合は
debug - 必要最低限だけにしたい場合は
error
- より詳細に見たい場合は
VS Code を再起動し、Copilot Chat にて
@workspace show mcp serversと入力すると、serena が表示されることを確認できます。

Serena MCP の起動と実行
1. 起動
VSCode上で起動します。serenaのMCPサーバの歯車マークから「サーバの起動」、もしくは mcp.jsonファイル上にある「起動」から起動します。

2. 実行の流れ
初期化フェーズ
activate_project: プロジェクトをアクティベートcheck_onboarding_performed: 初回セットアップ確認read_memory: 前回解析データの読み込み
解析フェーズ
list_dir: ディレクトリ構造スキャンfind_symbol: 関数・クラス検索get_symbols_overview: 全体シンボル概要取得find_referencing_symbols: 依存関係調査
3. 正常動作の確認ポイント
- 各コマンドに緑のチェックマーク(✅)が表示される
- "serena (MCP サーバー)" の表記でサーバー接続が確認できる
- エラーメッセージが表示されない

試してみた
1. プロジェクト解析
プロンプト例
Serena MCP のツールを使って、このプロジェクト全体を解析してください。
- 出力は Markdown
- 章立ては「システム概要」「主要モジュール一覧」「依存関係図」の3つだけ
- 依存関係図は mermaid.js の graph TD 形式で描画
- 各モジュールの説明は1〜2文で簡潔に
出力イメージ
下記はVSCodeコマンドで >Chat:Export Chat をしてチャット履歴をエクスポートしたものです。

2. 特定のフォルダ配下の関数・クラスの列挙
プロンプト例
src/ 配下の公開関数とクラスを列挙してください。
役割・引数・戻り値・主な呼び出し元トップ3を表にまとめ、 参照関係の取得には find_symbol / find_referencing_symbols を利用してください。
出力イメージ
下記はVSCodeコマンドで >Chat:Export Chat をしてチャット履歴をエクスポートしたものです。

3. 詳細なプロジェクト解析 (API一覧、リスク分析含む)
プロンプト例
Serena MCP のツールを使って、このプロジェクトを解析してください。
章立て:システム概要 / モジュール構成 / データモデル / 主要フロー / 外部連携 / 非機能要件 / リスクと改善提案 公開APIは表でまとめ、依存関係は mermaid の図として出力してください。
出力イメージ
下記はVSCodeコマンドで >Chat:Export Chat をしてチャット履歴をエクスポートしたものです。

まとめ
- 今回、プロジェクト単位で Serena MCP を試運転したことで、
・設計書のたたき台生成
・モジュール間依存の可視化
・API カタログ化
といった分析が短時間で可能であることを確認できました。 - 特に印象的だったのは、ファイルを直接全部 LLM に突っ込むのではなく、
言語サーバ(LSP)経由で必要なシンボルや参照情報だけを返しているようなので、
レスポンスが驚くほど早いという点です。 - まだ試運転の段階なので、どういった使い方が最も効果的かは未知数ですが…
エージェントが使える道具として導入することで、精度向上や活用の幅が広がる気配を感じています。