🧰

Serena MCP Server 導入ガイド(Windows ARM64/Claude Code & GitHub Copilot対応)

に公開

Serena MCP Server 導入ガイド(Windows ARM64/Claude Code & GitHub Copilot対応)

TL;DR

  • まず uv / uvx を入れる
  • Windows ARM64 でビルドが落ちたら、x64 の Python 3.12 を入れて UV_PYTHON で指定
  • Claude CodeGitHub Copilot(MCP) の設定例を本文に記載
  • spawn uvx ENOENT は PATH か絶対パス、win_arm64 ビルド失敗は x64 3.12 で回避

0. Serena とは?

Serena は MCP(Model Context Protocol)サーバ。LSP を使ってコードベースを理解し、LLM(例:Claude)にシンボル単位の検索・編集を提供します。

  • 「行番号ベースの置換」ではなく、構造(シンボル)に基づく安全な編集が可能
  • Claude Code / Claude Desktop / GitHub Copilot(MCP対応) などから利用できます

1. 前提ツールのインストール

1-1. uv / uvx を入れる(PowerShell)

powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"
# 代替: winget install --id=astral-sh.uv -e

uv --version
uvx --help

1-2. (重要)x64 の Python 3.12 を用意

Windows ARM64 + 一部のネイティブ拡張は ARM64/3.13 だと wheel がなくビルド落ちしがち。
x64(win_amd64)の Python 3.12 を追加インストールして使わせるのが安定です。

  • [python.org → Windows] から “Windows installer (64-bit)”(= x86-64)を選択
  • 例:C:\Users\<YOU>\AppData\Local\Programs\Python\Python312\python.exe
  • “Add python.exe to PATH” をON、Microsoft Store のアプリ実行エイリアス(Python/Python3)をOFFにすると衝突しづらい

どこに入ったか確認

py -0p
py -3.12 -c "import sys,platform; print(sys.executable); print(platform.machine())"

2. まずはコマンドラインで起動(お試し)

2-1. そのシェルだけ x64 3.12 を使わせる

$env:UV_PYTHON = "C:\Users\<YOU>\AppData\Local\Programs\Python\Python312\python.exe"
uv cache clean

2-2. Serena をワンライナー起動

uvx --from git+https://github.com/oraios/serena `
  serena start-mcp-server --context ide-assistant --project "$PWD"

ログに cp312-win_amd64 が見えれば OK。
cp313-win_arm64 が出るなら UV_PYTHON が効いていない可能性あり(パス再確認)。


3. GitHub Copilot(MCP)設定(VS Code)

settings.json(ユーザー or ワークスペース)に mcpServers を追加します。
PATH問題を避けるため、uvx ではなく uv tool run + --python 明示が安定です。

{
  "mcpServers": {
    "serena": {
      "command": "uv",
      "args": [
        "tool", "run",
        // ★ Windows ARM64:x64 Python 3.12 を明示
        "--python", "C:\\\\Users\\\\<YOU>\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe",
        "--from", "git+https://github.com/oraios/serena",
        "serena", "start-mcp-server",
        "--context", "ide-assistant",
        "--project", "${workspaceFolder}"
      ]
    }
  }
}
  • \\ は JSON 上で 二重 にする
  • spawn uvx ENOENT が出ていた場合でも、上記の uv tool run 直叩きで回避しやすい
  • 依存が壊れたら VS Code 再起動前に uv cache clean でリトライ

4. Claude Code(CLI)設定

4-1. MCP サーバの登録(PowerShell)

# uvx が使える場合(お試し)
claude mcp add serena -- `
  uvx --from git+https://github.com/oraios/serena `
  serena start-mcp-server --context ide-assistant --project "$PWD"

uvx が見つからない/PATHが通らない場合は uv tool run に変更:

claude mcp add serena -- `
  uv tool run --python "C:\Users\<YOU>\AppData\Local\Programs\Python\Python312\python.exe" `
  --from git+https://github.com/oraios/serena `
  serena start-mcp-server --context ide-assistant --project "$PWD"

4-2. 起動・確認

claude mcp list
claude mcp start serena

以後、Claude Code から Serena のツール(シンボル検索・安全編集など)が利用可能になります。


5. 速度最適化(大規模リポ向け)

初回の理解を速くしたい場合は 事前インデックスが有効です。

uvx --from git+https://github.com/oraios/serena `
  serena project index --project "$PWD"

6. よくあるエラーと対処(Windows ARM64 編)

症状 主原因 解決策
spawn uvx ENOENT 拡張ホストから uvx が見えない commanduv にして tool run 直叩き/uvx の絶対パス指定
Unsupported platform: win_arm64 / maturin 失敗 ARM64/3.13 で wheel が無くソースビルド落ち x64 Python 3.12 を入れて UV_PYTHON or --python 指定/uv cache clean 後に再試行
依存は落ちないが遅い 初回インデックス未実施 serena project index を先に実行
Filesystem MCP と競合 Serena側のFS操作と重複 MCPクライアント設定でどちらか片方を無効化

7. 永続化と運用のコツ

  • UV_PYTHON をユーザー環境変数に保存(毎回指定が不要に)

    [Environment]::SetEnvironmentVariable(
      "UV_PYTHON",
      "C:\\Users\\<YOU>\\AppData\\Local\\Programs\\Python\\Python312\\python.exe",
      "User"
    )
    
  • バージョン固定:運用が安定したら Serena/依存のバージョンを控えておく(更新が活発なため)

  • 安全運用:危険なシェル実行は MCP クライアント側の許可設定(permissions)でブロック

  • WSL という保険:どうしても Windows ARM64 直で辛い場合、WSL2(Ubuntu ARM64)上の uv/uvx で Serena を起動すると安定


8. 片付け

uv cache clean                 # uv のキャッシュ掃除
# VS Code: settings.json の mcpServers から serena を削除
# Claude Code: claude mcp remove serena

まとめ

  • Windows ARM64 でも、x64 Python 3.12 を使わせるだけで Serena の導入はぐっと安定
  • GitHub Copilot(MCP)uv tool run + --python 明示、Claude Codeclaude mcp add で登録
  • spawn uvx ENOENTwin_arm64 系エラーを潰せば、シンボル単位の安全な編集が快適に使える

Discussion