Serena について
Serena は、コーディングエージェントにセマンティックなコード検索、編集、リファクタリング、デバッグ機能を提供する MCP サーバーです。言語サーバーと JetBrains のバックエンドに対応し、ツールやプロジェクト用メモリを設定できます。
主な機能
- 01シンボル単位のコード検索
- 02セマンティック編集とリファクタリング
- 03診断とコード検査
- 04JetBrains によるデバッグ
- 05設定可能なプロジェクトメモリ
活用シーン
- 01大規模コードベースの把握
- 02ファイルをまたぐシンボル名変更
- 03構造を保ったコード編集
- 04エージェント経由のデバッグ
MCP 対応
Serena は MCP クライアントに、セマンティックなコード検索、編集、リファクタリング、デバッグ用ツールを提供します。クライアントから起動コマンドで実行するか、HTTP モードの URL に接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
28掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| content | string | はい | ファイルに書き込む内容(適切なエンコードを使用)。 |
| relative_path | string | はい | 作成するファイルの相対パス。 |
詳細
コーディングエージェントのための IDE
- Serena は、IDE の機能に匹敵するセマンティックなコードの検索、編集、リファクタリング、デバッグ用のツールを提供します。シンボルレベルで動作し、コードの関係構造を活用します。
- モデルコンテキストプロトコル(MCP)を介して、あらゆるクライアント/LLM と連携します。
Serena のエージェントを第一に考えたツール設計では、堅牢な高レベルの抽象化を採用しています。行番号や基本的な検索パターンなどの低レベルの概念に依存するアプローチとは一線を画します。
実際には、特に大規模で複雑なコードベースにおいて、エージェントはより速く、効率的かつ確実に動作できます。
ヒント
新しいREPL ベースのエージェントインターフェースを備えた Serena v2 がリリースされました。
新しいインターフェースの詳細と、設定方法については、 こちらをご覧ください。
動画
「エンドユーザー」の声
Serena をダウンロードしてセットアップするのは人間ですが、実質的なエンドユーザーは AI エージェントです。 Serena のツールを実際に利用するエージェントは、Serena を評価するのに最も適した立場にあります。
私たちは、日常的な開発作業を代表する約 20 件の定型的なコーディングタスクをエージェントに実行させる、公平な評価用プロンプトを作成しました。 これにより、エージェント独自の組み込み機能と併用したときに、Serena のツールがどれだけ価値を加えるかを推定します。
エージェントの感想を一文でまとめると、次のとおりです。
大規模な Python コードベースで Claude Code を使用する Opus 4.6(high):
「Serena の IDE に支えられたセマンティックツールは、私のツールキットに加わったもののなかで最も大きな効果をもたらしました。ファイルをまたぐ名前変更や移動、参照の検索なら、慎重に進めても 8~12 回かかり、エラーも起きやすいところを、一度のアトミックな呼び出しで済ませられます。一緒に働く開発者には、ぜひセットアップしてほしいと頼むでしょう。」
Java コードベースで Codex CLI を使用する GPT 5.4(high):
「コーディング AI エージェントとして、Serena を追加するようオーナーに頼みます。シンボル、参照、リファクタリングについて不足していた IDE レベルの理解が得られ、壊れやすいテキストの直接編集が、意味を重視した、より落ち着いて速く、自信の持てるコード変更に変わるからです。」
大規模な多言語モノレポで Copilot CLI を使用する GPT 5.4(medium):
「コーディングエージェントとして、Serena を追加するようオーナーにぜひ頼みます。実際のコードを扱うとき、特にシンボルを意識したナビゲーション、ファイルをまたぐリファクタリング、モノレポ内の依存関係の移動で、明らかに精度が上がり、落ち着いて作業できるからです。一方、小さなテキスト編集やコード以外の作業には、引き続き組み込み機能を使います。」
異なる環境で評価したさまざまなエージェントが、独立して同じ結論にたどり着いています。
エージェントが求めていたツールを与え、クライアントに Serena MCP を追加しましょう!
評価方法の全容と、さらに詳しい評価結果については、ドキュメントをご覧ください。または、お好きなプロジェクトで独自の評価を実施してください。
Serena の仕組み
Serena はコーディングワークフローに必要なツールを提供しますが、実際の作業を行い、ツールの使用を調整するには LLM が必要です。
Serena は、**モデルコンテキストプロトコル(MCP)**を通じて、既存の AI クライアントの機能を拡張できます。 最新の AI チャットクライアントのほとんどは MCP を直接サポートしており、次のようなものがあります。
- Claude Code、Codex、OpenCode、Gemini-CLI などのターミナルベースのクライアント
- VSCode、Cursor、JetBrains IDE(Copilot、Junie、JetBrains AI Assistant など)向けの IDE および IDE アシスタントプラグイン
- Claude Desktop、Codex App、OpenWebUI などのデスクトップおよびウェブクライアント
:tv: あわせてご覧ください:Serena の 5 分間入門(YouTube)
Serena MCP サーバーをクライアントに接続するには、次のいずれかを行います。
- MCP サーバーを起動できる起動コマンドをクライアントに指定する
- HTTP モードで Serena MCP サーバーを自分で起動し、その URL をクライアントに指定する
始め方については、以下のクイックスタートのセクションをご覧ください。
プログラミング言語のサポートとセマンティック分析機能
Serena は、コードのシンボル理解に基づく、多用途なコード検索・編集機能を提供します。 これらの機能を備えたエージェントは、IDE の機能を活用する熟練開発者と同じように、コードを発見して編集できます。 Serena は、非常に大規模で複雑なプロジェクトでも、適切なコンテキストを効率よく見つけ、適切に作業できます。
これらの機能を支える技術には、次の 2 つの選択肢があります。
- 言語サーバー:言語サーバープロトコル(LSP)を実装するものです。無料のオープンソースの選択肢であり、デフォルトで使用されます。
- Serena JetBrains プラグイン:JetBrains IDE の強力なコード分析・編集機能を活用します(有料プラグイン。無料トライアルを利用できます)。
好みや要件に応じて、どちらのバックエンドも選択できます。
言語サーバー
Serena は、言語サーバープロトコル(LSP)を実装する言語サーバーを統合するための、強力な抽象化レイヤーを備えています。 基盤となる言語サーバーは、通常、オープンソースプロジェクトか、少なくとも無料で利用できます。
Serena の言語サーバーバックエンドを使用する場合、Ada / SPARK、AL、Angular、Ansible、Astro、Bash、BSL、C#、C/C++、Clojure、Crystal、CUE、Dart、Deno、Elixir、Elm、Erlang、Fortran、F#、GDScript、Gleam、GLSL、Go、GraphQL、Groovy、Haskell、Haxe、HLSL、HTML、Java、JavaScript、JSON、Julia、Kotlin、LaTeX、Lean 4、Lua、Luau、Markdown、MATLAB、mSL、Nextflow、Nix、OCaml、Pascal、Perl、PHP、PowerShell、Python、QML、R、Rego、Ruby、Rust、Scala、SCSS / Sass / CSS、Solidity、Svelte、Swift、SystemVerilog、Terraform、TOML、TypeScript、VB.NET、Vue、WGSL、Wolfram Language、YAML、Zig を含む40 以上のプログラミング言語をサポートしています。
Serena JetBrains プラグイン
有料の Serena JetBrains プラグイン(無料トライアルを利用できます)は、 JetBrains IDE の強力なコード分析機能を活用します。 このプラグインは、IntelliJ IDEA、PyCharm、Android Studio、WebStorm、PhpStorm、RubyMine、GoLand など、JetBrains IDE がサポートするすべてのプログラミング言語とフレームワークに対応しています。ただし、Rider と CLion はサポートされていません。
詳細とプラグインの適用手順については、ドキュメントページをご覧ください。
機能
Serena は、コードの効率的な検索、編集、リファクタリングのための幅広いツールに加え、 長期的なエージェントワークフロー向けのメモリシステムを提供します。
幅広い用途に対応するため、Serena は多層構成の設定システムを備え、ニーズに合わせて調整できます。
詳細
### 検索Serena の検索ツールを使うと、エージェントはファイル全体を読むことなく、シンボルレベルでコードベースを調べ、その構造や関係性を理解できます。
| 機能 | 言語サーバー | JetBrains プラグイン |
|---|---|---|
| シンボルを検索 | はい | はい |
| シンボルの概要(ファイルのアウトライン) | はい | はい |
| 参照シンボルを検索 | はい | はい |
| プロジェクトの依存関係を検索 | -- | はい |
| 型階層 | -- | はい |
| 宣言を検索 | はい* | はい |
| 実装を検索 | はい** | はい |
| 外部プロジェクトをクエリ | はい | はい |
| 診断/インスペクション | はい | はい |
*: 外部依存関係にある宣言では、通常機能しません。
**: 一部の言語でのみ利用でき、言語サーバーの機能によって制限されます。
リファクタリング
正確なリファクタリングツールがないと、エージェントは信頼性が低く、コストのかかる検索・置換操作に頼らざるを得ません。
| 機能 | 言語サーバー | JetBrains プラグイン |
|---|---|---|
| 名前変更 | はい(シンボルのみ) | はい(シンボル、ファイル、ディレクトリ) |
| 移動(シンボル、ファイル、ディレクトリ) | -- | はい |
| インライン化 | -- | はい |
| 削除の伝播(未使用コードの削除) | -- | はい |
シンボル編集
Serena のシンボル編集ツールは、一般的な代替手段よりもエラーが少なく、トークン効率に優れています。
| 機能 | 言語サーバー | JetBrains プラグイン |
|---|---|---|
| シンボル本体を置換 | はい | はい |
| シンボルの後に挿入 | はい | はい |
| シンボルの前に挿入 | はい | はい |
| 安全に削除 | はい | はい |
対話型デバッグ
JetBrains プラグイン専用の Serena は、汎用性の高いデバッグツールをサポートしています。 このツールを使うと、エージェントはブレークポイントの設定、変数の確認、式の評価、実行フローの制御を、永続的な REPL スタイルのインターフェースを通じて行えます。
基本機能
セマンティック機能に加え、Serena には、機能を網羅するための基本ユーティリティも含まれています。 Claude Code や Codex などのエージェント用ハーネス内で Serena を使用する場合、周囲のハーネスがファイル操作、検索、シェル機能をすでに備えているため、通常これらのツールはデフォルトで無効になっています。
search_for_pattern– コードベース全体を対象にした柔軟な正規表現検索replace_content– エージェント向けに最適化された、正規表現ベースおよびリテラル文字列による置換list_dir/find_file– ディレクトリの一覧表示とファイル検索read_file– ファイルまたはファイルの一部を読み取るexecute_shell_command– シェルコマンドを実行する(ビルド、テスト、リンターなど)
メモリ管理
メモリシステムは、長期間にわたるエージェントのワークフローに欠かせません。特に、セッション、ユーザー、プロジェクトをまたいで知識を共有する場合に重要です。
シンプルな仕組みではありますが、Serena のメモリ管理システムをエージェントの内部システム(AGENTS.md ファイルなど)と組み合わせて利用するユーザーから、多くの好意的なフィードバックが寄せられています。
別のものを使いたい場合は、簡単に無効にできます。
設定の柔軟性
有効なツール、ツールの説明、プロンプト、言語バックエンドの詳細など、Serena のさまざまな要素は、 YAML の数行を調整するだけで、ケースごとに柔軟に設定できます。 これを実現するため、Serena では複数のレベルの(組み合わせ可能な)設定を用意しています。
- グローバル設定
- MCP 起動コマンド(CLI)の設定
- プロジェクトごとの設定(ローカルの上書き設定を含む)
- 実行コンテキスト固有の設定(特定のクライアント向けなど)
- 動的に組み合わせ可能な設定フラグメント(モード)
クイックスタート
重要
MCP またはプラグインのマーケットプレイスから Serena をインストールしないでください。そこに掲載されているインストールコマンドは古く、最適ではありません。
前提条件。Serena は uv で管理されており、必要な前提条件は uv のインストールのみです。
Serena のインストール。Serena は次のように uv でインストールします。
uv tool install -p 3.13 serena-agent
インストールが正常に完了すると、シェルで serena コマンドを使用できるようになります。
メモ
言語サーバーバックエンドを使用する場合、特定の言語をサポートするために追加の依存関係のインストールが必要になることがあります。 詳細は、言語サポートのページを参照してください。
Serena の初期化。Serena を初期化し、セットアップが正しく動作することを確認するには、次のコマンドを実行します。
serena init
デフォルトでは、言語サーバーバックエンドを使用するよう Serena が設定されます。代わりに JetBrains バックエンドを使用するには、パラメーター -b JetBrains を追加してください
(使用方法の詳細は、JetBrains プラグインのドキュメントページを参照してください)。
どちらの場合も、Serena が正常に初期化されたことを示す成功メッセージが表示されます。
クライアントの設定。Serena をお好みの MCP クライアントに接続するには、通常、クライアントで起動コマンドを設定する必要があります。 リンク先では、Claude Code、Codex、Claude Desktop、MCP 対応 IDE、およびその他のクライアント(ローカルおよびウェブベースの GUI など)向けに Serena をセットアップする具体的な手順を確認できます。
ヒント
すぐに使い始めるのは簡単ですが、Serena は多くの設定オプションを備えた強力なツールキットです。 Serena を最大限に活用するため、ユーザーガイドを一通りお読みいただくことを強くおすすめします。
特に、次の項目を読むことをおすすめします。
ユーザーガイド
Serena を効果的に使用する方法の詳細については、ユーザーガイドを参照してください。
謝辞
Serena の大部分、特にさまざまな言語のサポートは、オープンソースコミュニティからの貢献によるものです。 これを実現し、現在の Serena の開発に重要な役割を果たしてくださった多くの貢献者に、心より感謝いたします。
ライセンス
Serena はコンポーネントごとにライセンスが適用されます。SolidLSP(src/solidlsp)は MIT ライセンス、
Serena アプリケーション(それ以外のすべて)は GPL-3.0-or-later の下でライセンスされています。
両方を組み合わせた配布物には、全体として GPL が適用されます。
正式な概要については LICENSE を、背景については ライセンスのドキュメントを参照してください。 貢献するには、CLAへの同意が必要です。CONTRIBUTING.mdを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

