Claude CodeにSerena MCPを導入した話

皆様こんにちは。松尾です。最近料理にハマっています。5割の確率で失敗するのでドキドキしながら食べています。

簡単にSerenaとは

コーディング支援MCPサーバのことです。
Serenaはセットアップ時にプロジェクトのソースや仕様書をインデックスして参照しやすくします。コーディング時は、こちらの指示を翻訳して関連するコードをインデックスから検索し、必要な部分のソースだけを切り出してLLMに送信します。 使用感は前回ブログ (Claude Code依存症になった話)のSerenaの部分を参照してください。
要するにソースコードのRAGみたいなものです。

流れ

  1. uvをインストールする
  2. Serenaをインストールする
  3. Claude Codeを起動させる
  4. オンボーディングする

1. uvをインストールする

uvはPythonのパッケージ管理ツールです。Pythonが入ってなくても使えます。
uvのインストール先はOSです。
winget等は最初からOSに入っているので何か特別にインストールする必要はありません。

  • Windows
winget install astral-sh.uv 
# 以下でもできるらしいです(未検証)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
  • Linux(WSL)
curl -LsSf https://astral.sh/uv/install.sh | sh

参考サイト ( https://note.com/npaka/n/n44c54312fb04 )

2. Serenaをインストールする

以下コマンドを流すと今いるプロジェクト(ディレクトリ)にSerenaをインストールできます。

claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena-mcp-server

3. Claude Codeを起動させる

Claude Codeを起動しましょう

claude

Claude Code内で/mcpコマンドを流して、Serenaが追加されていることを確認しましょう

4. オンボーディングする

これはSerenaにプロジェクトを覚えさせる(インデックスする)作業です。
これは重要な作業なので絶対やりましょう。これをやらないとSerenaがバリバリ動きません。

Claude Codeを呼び出してから以下のプロンプトを流しましょう。

serena check_onboarding_performed

下記が出てきます。

● I'll check if onboarding has been performed for the serena MCP server.

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Tool use                                                                                                             │
│                                                                                                                      │
│   serena - check_onboarding_performed() (MCP)                                                                        │
│   Checks whether project onboarding was already performed.                                                           │
│   You should always call this tool before beginning to actually work on the project/after activating a project,      │
│   but after calling the initial instructions tool.                                                                   │
│                                                                                                                      │
│ Do you want to proceed?                                                                                              │
│ ❯ 1. Yes                                                                                                             │
│   2. Yes, and don't ask again for serena - check_onboarding_performed commands in                                    │
│   <プロジェクトのパス>                                                                                                 │
│   3. No, and tell Claude what to do differently (esc)                                                                │
│                                                                                                                      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

以降は基本的にYesを選択します。色々ファイルを読んでくれてSerenaにインデックスされます。
オンボーディング完了です。開発作業をやってみましょう。

参考サイト ( https://zenn.dev/mixi/articles/4b77baf024d8fc )

最後に

Serenaの導入やMCPについての情報や記事は情報量が多く、理解が難しかったので一生懸命インターネット検索したりAIに訊いたり集めた情報をNotebookLMに突っ込んだりしてなんとか理解しました。 この記事が少しでも参考になったら嬉しいです。