Serenaを入れてみたい。
巷の流行にのって、Claude CodeとSerenaを連携してみました。
導入手順を誤り、Serenaが起動してくれなかったのと、
初回は接続できるのに次からはTIMEOUTになって接続できなくなったりしたので、
四苦八苦の結果を備忘録としてまとめています。
前提
- Windows11でWSL2が有効化されている
- WSL2上でUbuntuまたはDebian系Linuxが動作している
→私はUbuntuを使っているので、以降はUbuntu前提です。 - VSCodeがインストールされている
- Claude Codeがインストールされている
手順1:uvパッケージマネージャーのインストール
1.1 uvのインストール
curl -LsSf https://astral.sh/uv/install.sh | sh
当初、どういうわけか
pip install uvx
でuvxを入れていたのですが、うまくいかずでした・・・。
1.2 環境変数の設定
# PATHに~/.local/binを追加
source $HOME/.local/bin/env
# 永続的に設定するため.bashrcまたは.zshrcに追加
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
1.3 インストール確認
which uvx
# 出力例: /home/username/.local/bin/uvx
手順2: 既存のSerena MCP設定のクリーンアップ(必要に応じて)
2.1 既存設定の確認
claude mcp list
2.2 既存のSerena設定がある場合は削除
claude mcp remove serena
手順3: Serena MCPサーバーの設定
3.1 プロジェクトディレクトリに移動
cd /path/to/your/project
3.2 Serena MCPの追加
ネットを検索すると、いくつかパターンがあるようなのですが以下に落ち着きました。
export PATH="$HOME/.local/bin:$PATH"
claude mcp add serena -s project -- uvx --from git+https://github.com/oraios/serena serena-mcp-server --context ide-assistant --project $(pwd)
-s projcet
プロジェクトルートに.mcp.json
を配置するようになります。
これを入れない場合は~/.claude.jsonの"mcpServers": {}
に設定が記述されます。
手順4: Claude Codeの起動
4.1 現在のClaude Codeセッションを終了(必要に応じて)
/exit
4.2 新しいセッションでClaude Codeを起動
VSCodeのアイコンから起動します。
4.3 MCP起動状況の確認
新しいセッション開始時に、MCPサーバーが起動されます。
こんな感じ。
ps aux | grep mcp
{user} 227767 0.7 2.2 1801700 135612 pts/12 Sl+ 21:49 0:00 /home/{user}/.local/bin/uv tool uvx --from git+https://github.com/oraios/serena serena start-mcp-server --context ide-assistant --project {プロジェクトディレクトリ}
{user} 227890 7.4 1.5 619216 91936 pts/12 Sl+ 21:49 0:06 /home/{user}/.cache/uv/archive-v0/nb7l1W1oOcQdtO3ob2blP/bin/python /home/{user}/.cache/uv/archive-v0/nb7l1W1oOcQdtO3ob2blP/bin/serena start-mcp-server --context ide-assistant --project {プロジェクトディレクトリ}
{user} 229364 0.0 0.0 4028 1940 pts/4 S+ 21:50 0:00 grep --color=auto mcp
4.4 MCP接続状況の確認
claude codeのプロンプトで/mcp
を入力
以下のような結果になっていれば接続済です。
│ Manage MCP servers │
│ │
│ ❯ 1. serena ✔ connected · Enter to view details │
│ │
│ MCP Config locations (by scope): │
│ • User config (available in all your projects): │
│ • /home/{user}/.claude.json │
│ • Project config (shared via .mcp.json): │
│ • {プロジェクトルート}/.mcp.json │
│ • Local config (private to you in this project): │
│ • /home/{user}/.claude.json [project: {プロジェクトルート}] │
│ │
│ For help configuring MCP servers, see: https://docs.anthropic.com/en/docs/claude-code/mcp
4.5 初期化
Claude Codeのプロンプトで以下を実行すると、Serenaがいろいろやってくれます。
/mcp__serena__initial_instructions
こちらでもいけるらしい(試してない)
Serena のオンボーディングを開始して
トラブル
SerenaMCPに接続できない
初回は接続できるのだけど、2回目以降、接続がFailedする。
claude debug
デバッグモードで起動すると、TIMEOUT(30秒)してました。
最終的な結論としてはsettings.local.json(settings.jsonでも大丈夫)
に以下の設定を入れました。
"env":{
"MCP_TIMEOUT": "60000"
}
Serena起動からプロジェクトのロードまで40秒以上経過していました。
もともと、プロジェクトファイルが/mnt/c配下に置いてあるので、
その場所だと読込みが遅いからWSL内に置いた方が良いとネット上でもよく書かれているようです。
個人的には開発に支障が出るほどではなかったので、気にしていませんでした。
Claudeに相談すると、/mnt/c配下に置いてあるから遅いんだ!と怒られました。
MCP_TIMEOUTの設定追加でプロジェクトディレクトリの移動を回避できたので
ひとまずよかったです。
(/mnt/cからWSL内に移動してからの起動は試してないです)