おはようございます!マネジメントオフィスいまむらの今村敦剛です。
本職がエンジニアではないので、Calude Codeのコーディングはproプランという最も安いプランでやってます。しかしすぐに利用制限が来てしまう上、モデルがsonnet4なので、コーディング力もぼちぼちです。これをSerenaという無料のMCPサーバーを使うことでなんとかしてみたいと思います。
前回の記事はこちら
Serenaをセットアップする
ここでは、ぼくの利用環境(WSL環境)に基づいて、claude codeと連携させる手順を解説します。
前提ツールであるuvのインストール
Serenaはuvというツールで管理されています。まず、ターミナルでuvをインストールし、ターミナルを再起動してください。
curl -LsSf https://astral.sh/uv/install.sh | sh
claude codeへの登録
次に、プロジェクトディレクトリに移動し、、以下のコマンドを実行して、Serenaをclaude codeに登録します。
claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena-mcp-server --context ide-assistant --project $(pwd)
初回の手動起動(最重要)
claude code経由での初回起動する時は、Serenaが裏側で行う言語サーバーのインストールや、大規模なプロジェクトのファイルスキャン(インデックス作成)に時間がかかり、タイムアウトで失敗することがあるそうです。これを解決するため、一度だけサーバーを手動で起動します。
uvx --from git+https://github.com/oraios/serena serena-mcp-server --context ide-assistant --project $(pwd)
するとログが流れ、「Indexing ended.」などの表示の後に新しいログが出なくなったら、サーバーの準備は完了です。Ctrl + Cでサーバーを停止してください。
通常利用へ
この初回セットアップさえ完了すれば、あとは通常通りclaude codeを起動するだけで、Serenaはバックグラウンドで自動的に接続されるようになります。
Serenaを利用する
Calude CodeでSerenaを利用する際は、特に何も考えなくてよいです。プロンプトで「Serenaを使ってコードをレビューして」みたいにわざわざ言う必要もないです。必要なシーンで、自動的に以下のようにserenaを使って作業をしてくれます。

ただ、何も言わないとSerenaを使わない局面もあったので、プロンプトに「積極的にSerenaを使って」などと含めても良いと思います。
Serena MCPサーバー接続失敗時のトラブルシューティング
claude code を起動すると、Serena MCPサーバーのステータスがConnectedにならず、Failed to connectと表示される問題が、一度は正常に接続できた後でも、断続的に再発しました。
トラブルシューティングの過程で、以下の点が明らかになりました。
サーバー起動コマンドをターミナルで直接実行した結果、pydantic_core._pydantic_core.ValidationError というエラーが確認されました。これは、Serena本体がアップデートされたことで、ローカルに保存されていた古い設定ファイル (serena_config.yml) との間に互換性がなくなり、サーバーが起動時にクラッシュしていたことを示していました。
当初採用していた uvx –from git+… というコマンドは、実行のたびにインターネット上のリポジトリから最新版のSerenaを取得する方法です。この方法は手軽ですが、以下の要因により、特定の環境(今回のWSL環境など)では動作が不安定になる可能性がありました。
- Serena本体が更新されると、ローカルの古い設定ファイルと互換性がなくなり、エラーを引き起こす。
- uv のキャッシュが意図せず古い情報を保持してしまい、問題が再発する。
- 実行時のネットワーク状況に影響される。
設定ファイルやキャッシュを削除しても問題が再発したことから、この**uvxを使ったリモート実行方式そのもの**が、今回の環境では安定性に欠けていた可能性があります。
そこで不安定なリモート実行方式をやめ、より確実で安定した「ローカルインストール方式」に切り替えることで、問題は恒久的に解決しました。これは、Serenaのプログラムを一度PC(WSL環境)にダウンロードし、常にそのローカルのファイルからサーバーを起動する方法です。
1.既存のSerena登録を削除
claude code から、失敗していた古い設定を完全に削除します。
claude mcp remove serena
2.Serenaのソースコードをローカルにダウンロード
gitを使い、ホームディレクトリなどにSerenaのプログラム本体をダウンロード(クローン)します。この作業は一度だけでOKです。
# ホームディレクトリに移動
cd ~
# プログラムをダウンロード
git clone https://github.com/oraios/serena.git
3.新しいコマンドでSerenaを再登録
プロジェクトディレクトリに戻り、ダウンロードしたローカルのSerenaを指定する新しいコマンドで claude code に再登録します。
# プロジェクトディレクトリに移動
cd /home/moi/site_renewal
# 新しいコマンドで登録
claude mcp add serena -- uv run --directory /home/moi/serena serena-mcp-server --context ide-assistant --project $(pwd)
次に、claudeを起動して、初期指示を読み込ませます。
/mcp__serena__initial_instructions
もしくは自然な言葉で「Serenaの初期指示を読み込んで」と指示してもOKです。
ClaudeがSerenaのツールを正しく認識しているか確認するために「Serenaが使えるツールを一覧で教えて」とプロンプトを投げかけると、ツールの一覧を以下のように示すはずです。

ここまでやれば大丈夫だと思います。
この方法だと、uvx –from git+https://github.com/oraios/serena serena-mcp-server –context ide-assistant –project $(pwd)でサーバーの手動起動をする必要はありません。通常通りclaude codeを起動して/mcpで状態を確認すると、connectedになっているはずです。

