SerenaでClaudeのトークンを節約してコーディングの質を上げる(2)

おはようございます!マネジメントオフィスいまむらの今村敦剛です。

本職がエンジニアではないので、Calude Codeのコーディングはproプランという最も安いプランでやってます。しかしすぐに利用制限が来てしまう上、モデルがsonnet4なので、コーディング力もぼちぼちです。これをSerenaという無料のMCPサーバーを使うことでなんとかしてみたいと思います。

Loading table of contents...

前回の記事はこちら

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になっているはずです。

この記事を書いた人
代表取締役 今村 敦剛

中小企業診断士/審査員(ISO9001, 14001, 45001)/日本心理学会認定心理士