Serena MCPとは?仕組み・導入手順・Claude Code連携を実務目線で解説

Serena MCPは、ドイツのoraiosが公開するMITライセンスのオープンソースツールキットで、コードを「行番号や文字列」ではなくシンボル(関数・クラス・変数の定義と参照)単位で解析・編集できるMCPサーバーです。言語サーバープロトコル(LSP)を使い、AIエージェントに必要な箇所だけを渡すため、大規模リポジトリでの改修やリファクタリングを、少ないコンテキストで正確に進められます。無料で、Serena自体のAPIキーも不要。Claude CodeやCodex、Cursorなど任意のMCP対応クライアントに接続できます。この記事では、仕組み・主要ツール・導入コマンド・Claude Codeとの連携設定、そして「導入すべきでないケース」までを公式情報に基づいて解説します。

まとめ:Serena MCPの要点

  • 正体:oraios製のOSS(MITライセンス)。LSPでコードをシンボル単位に扱うMCPサーバー兼コーディングエージェント用ツールキット。
  • 強み:ファイル全体を読み込む方式より、参照解決や横断的なリネームを少ないコンテキストで正確に実行できる。
  • 料金:無料。前提はuvのインストールのみ。Python環境もuvが用意する。
  • 使う場面:数十万行規模のモノレポや多ファイルにまたがる改修。逆に単一ファイルや使い捨てスクリプトでは恩恵が薄い。
  • 連携:Claude Code・Codex・Cursor・JetBrains系など40以上の言語と主要クライアントに対応。

以下で、仕組みと導入手順、そして導入判断の基準を順に見ていきます。

Serena MCPとは何か(MCP×LSPのコード操作ツールキット)

Serenaは公式に「The IDE for Your Coding Agent(コーディングエージェントのためのIDE)」と位置づけられています。中核は、LSPを介してコードの構造を理解し、シンボル単位での検索・編集・リファクタリング・デバッグをAIに実行させる仕組みです。MCP(Model Context Protocol)サーバーとして動くため、Claude DesktopやClaude Code、CodexなどMCPに対応したクライアントから同じツール群を呼び出せます。Playwright MCPとは何か?その基本概念と登場の背景を解説Figma MCPサーバーとは?料金・使い方・対応クライアントを徹底解説で紹介した各MCPサーバーと同じく、Serenaも「AIと外部機能を標準プロトコルでつなぐ」設計を採ります。

従来のテキスト検索・全文読み込みに対する解決策

AIエージェントにコードを触らせる従来手法は、ファイル全体をコンテキストに載せるか、grepや埋め込み検索でそれらしい行を拾う方式が中心でした。これは大規模コードベースで破綻しやすく、不要なコードまで読み込んでトークンを浪費し、影響範囲を取り違えた編集も起きます。Serenaは、あるメソッドの定義とその全参照をLSP経由で正確に取得し、必要な箇所だけをLLMに渡します。公式は「クロスファイルのリネームや移動、参照検索といった、慎重にやれば8〜12ステップかかり誤りも起きやすい作業が、1回のアトミックな呼び出しに集約される」と説明しています。

料金・ライセンス・動作要件

Serenaは無料のオープンソース(MITライセンス、Copyright 2025 Oraios AI)で、SaaSのようなアカウント登録や月額課金はありません。動作要件はシンプルで、公式は「Serenaはuvで管理され、uvのインストールが唯一の前提条件」と明記しています。Pythonバージョンもuvが解決するため(インストール例は-p 3.13指定)、利用者が個別にPythonを整える必要は基本的にありません。対応言語はLSPバックエンド経由で40以上に及び、Python・TypeScript/JavaScript・Go・Rust・Java・C#・PHP・Ruby・Kotlin・Swift・Solidityなどを幅広くカバーします。

Serena MCPの仕組み(LSPによるシンボルレベル解析)

Serenaの心臓部は、各言語のLSPサーバーを起動してコードをAST(抽象構文木)とシンボル情報として解釈する層です。AIからの「この関数を書き換えて」という指示を、テキスト置換ではなくシンボルの特定→影響範囲の把握→安全な差分適用という流れで処理します。

シンボル単位のセマンティック解析

Serenaはコードを構造化データとして扱うため、「特定のメソッド名を変更する」「変数の型を追う」といった操作を、関係する参照を追跡しながら実行できます。行番号や正規表現ベースの置換では取りこぼしがちな他ファイルの参照も、find_referencing_symbolsで漏れなく拾えるのが違いです。この構造理解を最小限のコンテキストとしてLLMに渡すことで、トークン消費を抑えつつ編集精度を保ちます。

全文検索・RAGとの違いとコンテキスト削減

Serenaのアプローチを、よく比較される手法と並べると次の通りです。公式はトークン削減率などの具体数値は公表しておらず、「より速く、効率的で、信頼性高く動作する(特に大規模で複雑なコードベースで)」という定性的な表現にとどめています。数値を断定せず、この設計上の差を押さえておくのが実務的です。

手法 コンテキスト効率 影響範囲の把握 向く場面
Serena(LSP・シンボル) 高(必要箇所のみ) 参照解決で正確 大規模・多ファイル改修
全文検索・grep 低〜中 テキスト一致のみ 小規模・単純置換
RAG(埋め込み検索) 意味的近傍で曖昧 文書横断の要約・検索
クライアント標準ツール ファイル読込中心 小〜中規模の編集

なお、MCPサーバー自体を自作したい場合は、Python製フレームワークを扱うFastMCPとは何か?その概要と基本的な仕組みを解説が入口になります。Serenaは「既製の高機能MCPサーバーを使う」選択肢にあたります。

Serena MCPの主要ツールとできること

Serenaは30以上のツールを提供し、役割ごとに分類されています。すべてを有効化する必要はなく、後述のcontext設定でクライアントに応じた組み合わせが選ばれます。実務でまず把握すべきは、検索系と編集系の中核ツールです。

  • 検索find_symbol(シンボル検索)、find_referencing_symbols(全参照の取得)、get_symbols_overview(ファイルの構造把握)、find_implementations(実装箇所)。
  • 編集replace_symbol_body(定義本体の置換)、insert_after_symbolinsert_before_symbol(前後への追記)。
  • リファクタrename_symbol(参照を追った改名)、safe_delete_symbol(安全確認付き削除)。
  • 記憶write_memoryread_memory(プロジェクト知識を.serena/memories/に保存し次回以降へ引き継ぐ)。
  • 基本・シェルsearch_for_pattern(テキスト検索)、read_filelist_direxecute_shell_command(コマンド実行)。

編集系は差分を生成してから適用するため、LSPの情報を根拠に「意図した箇所だけ」を変える運用がしやすいのが特徴です。

Serena MCPの導入手順(uvxでの即時起動と恒久インストール)

導入は「uvを入れる→Serenaを起動する→クライアントに登録する」の3ステップです。試すだけならインストール不要で即起動でき、常用するなら恒久インストールに切り替えます。

前提環境とインストール方法

前提はuvのみ。恒久的に使う場合は次のようにuv tool installでインストールし、初期化します。Pythonのバージョン指定もuv側で完結します。

uv tool install -p 3.13 serena-agent
serena init

MCPサーバーの起動方法(uvx即時/stdio)

リポジトリを取得せずに最新版を試すなら、uvxでGitHubから直接起動できます。通信方式は標準入出力(stdio)が既定で、MCPクライアントからサブプロセスとして呼び出されます。

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

Dockerイメージも用意されており、環境依存を排したい場合やCI/CDに組み込む場合に向きます。設定はserena config editで開き、グローバル設定は~/.serena/serena_config.yml、プロジェクト設定は.serena/project.ymlに保存されます。

Claude Codeとの連携設定(claude mcp add・context・ダッシュボード)

Claude Codeとの連携は、プロジェクトのルートでclaude mcp addコマンドにSerenaの起動コマンドを渡すだけです。次の例は、プロジェクトを指定してSerenaを登録するものです。

claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena start-mcp-server --context claude-code --project $(pwd)

連携そのものの手順に加え、生成・解析を一貫させた具体的な効率化の流れは、Claude CodeとSerena MCPの統合による開発効率の向上で詳しく扱っています。本記事ではSerena側の設定に絞って解説します。

contextとmodeによる挙動の切り替え

Serenaは起動時の--contextで接続先クライアントに合わせたツール構成を選びます。用意されている値はserena context listで確認でき、desktop-app(既定)・claude-codecodexideagentなどがあります。さらに--modeで振る舞いを重ねられ、planning(分析中心)、editing(編集中心)、interactiveone-shotなどを組み合わせます。Claude Codeで使う場合は、クライアント向けのcontextを選ぶとツールの重複が抑えられます。

Webダッシュボードとログの確認

Serenaは既定でlocalhost上にWebダッシュボードを起動し、ツール呼び出しの履歴・ログ・稼働状況を可視化します。URLとポートは起動時のログに表示されるため、まずログに出るアドレス(多くの環境でhttp://localhost:24282/dashboard/)を確認します。導入直後は、このダッシュボードでどのツールがどう呼ばれているかを見ながら、有効化するツールやcontextを調整するのが確実です。

Serenaの権限設計(execute_shell_commandとpermissions設定)

Serenaはexecute_shell_commandのようにシェルを実行できるツールを含むため、権限設計は導入前に決めておくべき項目です。基本方針は、まず検索・参照など読み取り系ツールで挙動を確かめ、編集やシェル実行は必要に応じて許可を絞ることです。Claude Codeと併用する場合は、クライアント側のpermissions設定でツールごとに許可・確認・拒否を分けられます。差分適用前にプレビューを確認する運用や、危険な操作を伴うツールを既定で無効化しておく運用が、誤操作の抑止に有効です。ダッシュボードのログで実際の呼び出し履歴を追えるため、監査や不具合解析にも使えます。

Serena MCPが不要・不向きなケース(導入前の判断基準)

Serenaは万能ではなく、導入コストが恩恵を上回る場面があります。次の条件に当てはまるなら、Serenaを入れず、クライアント標準の検索・編集ツールで済ませたほうが速いと判断してよいでしょう。

  • 単一ファイルや小規模プロジェクト:シンボル解析の恩恵が薄く、LSPの初期インデックスやセットアップの手間のほうが上回ります。ここではSerenaは過剰です。
  • 対応LSPが弱い言語・独自DSL:セマンティック解析が効かず、実質search_for_patternなどテキストベースの操作に退化します。この場合はSerenaを使う理由が乏しくなります。
  • 使い捨てのスクリプトや一度きりの修正:オンボーディングやインデックス生成のコストが見合いません。
  • ツール順守が不安定なとき:公式は、一部のクライアント更新でツール利用の指示追従が下がる場合があると注記しています。その際はシステムプロンプトの上書きなど追加設定が必要になり、手間が増えます。

逆に、数十万行規模のモノレポで日常的にリファクタリングや横断的な仕様変更を行うなら、参照解決の正確さとコンテキスト削減の効果がはっきり出ます。「大規模・多ファイル・継続運用」がSerenaを入れる分岐点です。

よくある質問(FAQ)

Serena MCPは無料ですか?

無料です。MITライセンスのオープンソース(Copyright 2025 Oraios AI)で、Serena自体の利用にAPIキーや月額課金はありません。必要なのはuvのインストールだけで、Python環境もuvが用意します。ただし、Serenaを動かすAIエージェント側(Claude CodeやCodexなど)の利用料は別途かかります。

Serena MCPの仕組みは?なぜトークン効率が良いのですか?

LSPを使ってコードをシンボル(定義・参照)単位で理解し、AIには必要な箇所だけを渡すためです。ファイル全体を読み込む方式と違い、あるメソッドの定義とその全参照だけを正確に取得できるので、無関係なコードでコンテキストを埋めません。公式は削減率などの数値は示さず、大規模コードベースほど速く効率的に動くと定性的に説明しています。

Claude Code以外でも使えますか?

使えます。SerenaはMCPサーバーとして動くため、Claude Desktop・Codex・Cursor・Cline・JetBrains系IDE・OpenCode・Gemini-CLIなど、MCPに対応した多くのクライアントから利用できます。起動時の--contextを接続先に合わせて選ぶ点だけ押さえておけば、同じツール群を各クライアントで呼び出せます。

Serena MCPは本当に必要ですか?

プロジェクト規模によります。単一ファイルや小規模な修正、使い捨てスクリプトでは、セットアップの手間が恩恵を上回るため不要です。一方、多ファイルにまたがる改修やリネーム、参照調査を頻繁に行う大規模コードベースでは、影響範囲を正確に追える利点が明確に出ます。まず標準ツールで足りるかを試し、限界を感じてから導入するのが無駄のない進め方です。

インストールにPythonの準備は必要ですか?

個別の準備は基本的に不要です。前提はuvのインストールのみで、Pythonのバージョン(例:3.13)もuv tool install -p 3.13 serena-agentのようにuv側で解決されます。試すだけならuvxでGitHubから直接起動でき、恒久利用時にuv tool installへ切り替えます。より詳しくは、Houdiniの記事で整理しています。

関連記事

資料請求

RELATED POSTS 関連記事