今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

oraios/serena

AIコーディングエージェント向けの、シンボルレベルのコード理解とIDE機能を提供するMCPサーバーです。

Claude Codeに serena をつなぐと、AIエージェントが行番号や正規表現ではなく、シンボル単位でコードを探し始めます。大規模なモノレポで「この関数を安全に名前変更して」と頼めば、関連ファイルを横断しながら参照箇所を追跡し、リファクタリングを実行する様子を実際に確認できます。40以上の言語に対応したLSP統合なので、普段使っている言語のプロジェクトでそのまま試して、エージェントの修正精度がどこまで上がるか手元で見てみたくなります。

01 / 概要
何をするものか一文で言うと
ひとことでAIコーディングエージェント向けの、シンボルレベルのコード理解とIDE機能を提供するMCPサーバーです。

Serenaは、AIコーディングエージェントにIDE相当のセマンティックなコード検索・編集・リファクタリング機能を与えるMCPサーバーです。Claude CodeやCodexなど任意のMCP対応クライアントから、シンボル単位でコードを理解し操作できるようになります。裏側の解析エンジンには言語サーバー(LSP)またはJetBrainsプラグインを選べます。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

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ダッシュボードを提供します。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    uvx経由でserena-agentをインストールし、serena start-mcp-serverコマンドでMCPサーバーを起動する体験をします。

  2. STEP 02

    Claude CodeやCodexの設定ファイルにSerenaの起動コマンドを追加し、contextオプション(claude-codeやcodexなど)を指定して接続します。

  3. STEP 03

    プロジェクトを初めて開くとオンボーディング処理が走り、.serena/memoriesにプロジェクト構造の要約が生成される様子を確認できます。

  4. STEP 04

    find_symbolやfind_referencing_symbolといったツールをエージェント経由で呼び出し、行番号ではなくシンボル名でコードを探せることを体験します。

  5. STEP 05

    対象言語によってはrust-analyzerやtypescriptなど外部の言語サーバーの追加インストールが必要になる場面に遭遇します。

  6. STEP 06

    web_dashboard機能を有効にすると、ブラウザ上でエージェントのツール呼び出しログをリアルタイムに確認できます。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

手元には、MCP経由でシンボル単位のコード検索・編集ができるエージェント環境と、.serena/memoriesに蓄積されたプロジェクト知識が残ります。ダッシュボードでツール呼び出しの履歴を後から確認できる点も実利用上の成果です。加えてserena.ymlなどの設定ファイル一式が生成され、次回以降の起動設定として再利用できます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

Dockerfileを見る限り、Node.js・Rust(rust-analyzer)・uvなど複数の実行環境を要求する言語サーバーが多く、フル機能を使うには環境構築の負荷があります。

02

JetBrainsプラグインバックエンドは有料(トライアルあり)で、無料利用は基本的に言語サーバー方式に限られます。

03

対応言語ごとに個別のLSPバイナリのダウンロードや初期化が必要になり、大規模リポジトリでは初回インデックス構築に時間がかかる可能性があります。

04

README冒頭に記載の通り、MCPマーケットプレイス経由のインストール手順は非推奨とされており、公式のQuick Startに従う必要があります。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

複数言語・大規模なコードベースで、行番号ベースの検索ではなくシンボル単位の正確なリファクタリングをエージェントにさせたい開発者に向いています。pyproject.tomlの依存関係固定やCI構成(pytest、codeql、docker等)、そしてsolidlsp・interpromptという自社製ライブラリを土台にした設計から、実運用を意識した継続的なメンテナンス体制がうかがえます。README記載の評価手法やcontexts/modesの豊富な設定ファイル群も含め、実際に動かさなくても構造から機能と限界を判断できるだけの根拠がそろっています。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する