Serenaは、AIコーディングエージェントにIDE相当のセマンティックなコード検索・編集・リファクタリング機能を与えるMCPサーバーです。Claude CodeやCodexなど任意のMCP対応クライアントから、シンボル単位でコードを理解し操作できるようになります。裏側の解析エンジンには言語サーバー(LSP)またはJetBrainsプラグインを選べます。
src/serena/agent.py、mcp.py、project.py、ls_manager.pyという構成から、MCPプロトコル経由でクライアントがSerenaサーバーを起動し、ツール呼び出しでシンボル定義・参照検索・編集を依頼する流れが読み取れます。実際の解析はsolidlsp(microsoft/multilspyのフォーク)が担い、各言語のLSPサーバーと同期通信します。src/serena/resources/config/contexts配下にはclaude-code、codex、vscodeなどクライアントごとのYAML設定があり、contextとmodeの組み合わせでツール構成やプロンプトを切り替えます。.serena/memoriesにはプロジェクトのオンボーディング情報が蓄積され、以降のセッションで再利用されます。dashboard.pyとsrc/serena/resources/dashboardはログ監視用のWebダッシュボードを提供します。
- STEP 01
uvx経由でserena-agentをインストールし、serena start-mcp-serverコマンドでMCPサーバーを起動する体験をします。
- STEP 02
Claude CodeやCodexの設定ファイルにSerenaの起動コマンドを追加し、contextオプション(claude-codeやcodexなど)を指定して接続します。
- STEP 03
プロジェクトを初めて開くとオンボーディング処理が走り、.serena/memoriesにプロジェクト構造の要約が生成される様子を確認できます。
- STEP 04
find_symbolやfind_referencing_symbolといったツールをエージェント経由で呼び出し、行番号ではなくシンボル名でコードを探せることを体験します。
- STEP 05
対象言語によってはrust-analyzerやtypescriptなど外部の言語サーバーの追加インストールが必要になる場面に遭遇します。
- STEP 06
web_dashboard機能を有効にすると、ブラウザ上でエージェントのツール呼び出しログをリアルタイムに確認できます。
手元には、MCP経由でシンボル単位のコード検索・編集ができるエージェント環境と、.serena/memoriesに蓄積されたプロジェクト知識が残ります。ダッシュボードでツール呼び出しの履歴を後から確認できる点も実利用上の成果です。加えてserena.ymlなどの設定ファイル一式が生成され、次回以降の起動設定として再利用できます。
Dockerfileを見る限り、Node.js・Rust(rust-analyzer)・uvなど複数の実行環境を要求する言語サーバーが多く、フル機能を使うには環境構築の負荷があります。
JetBrainsプラグインバックエンドは有料(トライアルあり)で、無料利用は基本的に言語サーバー方式に限られます。
対応言語ごとに個別のLSPバイナリのダウンロードや初期化が必要になり、大規模リポジトリでは初回インデックス構築に時間がかかる可能性があります。
README冒頭に記載の通り、MCPマーケットプレイス経由のインストール手順は非推奨とされており、公式のQuick Startに従う必要があります。
複数言語・大規模なコードベースで、行番号ベースの検索ではなくシンボル単位の正確なリファクタリングをエージェントにさせたい開発者に向いています。pyproject.tomlの依存関係固定やCI構成(pytest、codeql、docker等)、そしてsolidlsp・interpromptという自社製ライブラリを土台にした設計から、実運用を意識した継続的なメンテナンス体制がうかがえます。README記載の評価手法やcontexts/modesの豊富な設定ファイル群も含め、実際に動かさなくても構造から機能と限界を判断できるだけの根拠がそろっています。