Serena MCP Serverのセットアップ方法 (2026年版)
Serena code intelligence MCP サーバーの完全セットアップガイド
Hyperealで構築を始めよう
Kling、Flux、Sora、Veoなどに単一のAPIでアクセス。無料クレジットで開始、数百万規模まで拡張可能。
クレジットカード不要 • 10万人以上の開発者 • エンタープライズ対応
2026年版 Serena MCP サーバーのセットアップ方法
Serena は、AI コーディングアシスタントにコードベースの深いセマンティック(意味論的)な理解を与える Model Context Protocol (MCP) サーバーです。Serena はファイルを単なるテキストとして読み取る代わりに、Language Server Protocol (LSP) 分析を使用して、シンボル、型、参照、呼び出し階層に関する情報を AI に提供します。これは、IDE の「定義へ移動」や「参照を検索」機能を支えるものと同じインテリジェンスです。
このガイドでは、Claude Code や Cursor などの主要な AI コーディングツールで Serena をインストール、設定、および使用する方法を説明します。
Serena の何が違うのか?
コード用のほとんどの MCP サーバーは、基本的なファイルの読み書きアクセスのみを提供します。Serena はランゲージサーバーと統合することで、さらに踏み込んだ機能を提供します。
- シンボル検索: 関数、クラス、変数がどこで定義されているかを特定します
- 参照検索: コードベース全体でシンボルのすべての使用箇所を検索します
- 型情報: 型、インターフェース、シグネチャを理解します
- 呼び出し階層: ある関数を呼び出しているもの、およびその関数が呼び出しているものを表示します
- 診断 (Diagnostics): コンパイラのエラーや警告を取得します
- スマートリネーム: プロジェクト全体でシンボルの名前を安全に変更します
これにより、AI アシスタントはすべてのファイルをスキャンすることなく、「この関数はどこで使用されているか?」「これはどの型を返すか?」といった質問に答えることができます。
前提条件
Serena をセットアップする前に、以下を準備してください。
- Node.js 18+ がインストールされていること
- MCP 対応の AI ツール: Claude Code、Cursor、Windsurf、または Cline
- プロジェクトの言語に対応したランゲージサーバー (Serena は TypeScript、Python、Go、Rust、Java などをサポートしています)
- Git (Serena は Git リポジトリで最適に動作します)
ステップ 1: Serena のインストール
npm を使用して Serena をグローバルにインストールします。
npm install -g serena-mcp
または、npx を使用して直接実行します(インストール不要)。
npx serena-mcp
インストールを確認します。
serena-mcp --version
ステップ 2: 言語の設定
Serena は、プロジェクトでどのランゲージサーバーを使用するかを知る必要があります。プロジェクトのルートに serena.config.json を作成してください。
TypeScript/JavaScript プロジェクトの場合:
{
"language": "typescript",
"rootPath": ".",
"tsconfig": "./tsconfig.json",
"exclude": ["node_modules", "dist", ".next"]
}
Python プロジェクトの場合:
{
"language": "python",
"rootPath": ".",
"pythonPath": "/usr/bin/python3",
"exclude": ["venv", "__pycache__", ".mypy_cache"]
}
Go プロジェクトの場合:
{
"language": "go",
"rootPath": ".",
"gopath": "$GOPATH",
"exclude": ["vendor"]
}
Rust プロジェクトの場合:
{
"language": "rust",
"rootPath": ".",
"exclude": ["target"]
}
ステップ 3: Claude Code への接続
~/.claude/mcp_servers.json にある Claude Code の MCP 設定に Serena を追加します。
{
"serena": {
"command": "npx",
"args": ["serena-mcp", "--project", "/path/to/your/project"],
"env": {}
}
}
Claude Code を再起動し、接続を確認します。
/mcp
利用可能なツールの一覧に Serena が表示されるはずです。
ステップ 4: Cursor への接続
プロジェクト内の .cursor/mcp.json に Serena を追加します。
{
"mcpServers": {
"serena": {
"command": "npx",
"args": ["serena-mcp", "--project", "."],
"env": {}
}
}
}
ステップ 5: Cline (VS Code) への接続
Cline の MCP 設定(VS Code 設定内)に以下を追加します。
{
"serena": {
"command": "npx",
"args": ["serena-mcp", "--project", "${workspaceFolder}"],
"env": {}
}
}
利用可能な MCP ツール
接続されると、Serena は AI アシスタントに対して以下のツールを公開します。
| ツール名 | 説明 | プロンプト例 |
|---|---|---|
find_symbol |
名前でシンボル定義を検索 | "UserService クラスはどこで定義されていますか?" |
find_references |
シンボルのすべての参照を検索 | "calculateTotal はどこで使用されていますか?" |
get_type_info |
シンボルの型情報を取得 | "fetchUser はどの型を返しますか?" |
get_diagnostics |
コンパイラのエラーと警告を取得 | "このファイルに型エラーはありますか?" |
get_call_hierarchy |
インカミング/アウトゴーイングコールを表示 | "どの関数が validateInput を呼び出していますか?" |
rename_symbol |
プロジェクト全体でシンボルをリネーム | "すべての場所で oldName を newName に変更して" |
get_document_symbols |
ファイル内のすべてのシンボルをリスト化 | "auth.ts にはどのような関数がありますか?" |
get_workspace_symbols |
ワークスペース全体でシンボルを検索 | "名前に 'Controller' を含むすべてのクラスを探して" |
get_hover_info |
シンボルのホバー情報を取得 | "parseJSON は何をしますか?" |
get_completions |
特定位置のコード補完を取得 | AI が内部的に使用 |
実践的な使用例
新しいコードベースの理解
新しいプロジェクトに参加した際、AI アシスタントに次のように尋ねます。
Serena を使って、src/services/ ディレクトリにある主なクラスとその
関係性の概要を教えてください。
AI は get_document_symbols と get_call_hierarchy を使用してアーキテクチャをマッピングします。
安全なリファクタリング
単なる検索置換の代わりに、Serena のセマンティックリネームを使用します。
すべての参照が更新されることを確認した上で、コードベース全体で
`getUserById` 関数を `findUserById` にリネームしてください。
Serena の rename_symbol ツールは、単なる文字列の一致ではなく、すべての使用箇所、インポート、および参照を更新します。
型エラーのデバッグ
解決できない TypeScript エラーがある場合:
Serena を使用して src/api/routes.ts の診断情報をチェックし、
型エラーの内容を説明してください。
AI はコードテキストから推測するのではなく、実際のコンパイラの診断情報を取得します。
データフローの追跡
アプリケーション内でのデータの流れを理解するために:
Serena を使用して `processPayment` 関数の呼び出し階層を追跡してください。
それを呼び出しているもの、およびそれが呼び出しているものをすべて表示してください。
設定オプション
Serena は serena.config.json で追加の設定をサポートしています。
{
"language": "typescript",
"rootPath": ".",
"tsconfig": "./tsconfig.json",
"exclude": ["node_modules", "dist"],
"maxFileSize": 1048576,
"indexOnStartup": true,
"watchFiles": true,
"diagnostics": {
"enable": true,
"severity": ["error", "warning"]
},
"completions": {
"enable": true,
"maxResults": 50
}
}
| オプション | デフォルト | 説明 |
|---|---|---|
language |
自動検出 | 使用するランゲージサーバー |
rootPath |
. |
プロジェクトのルートディレクトリ |
exclude |
["node_modules"] |
インデックスから除外するディレクトリ |
maxFileSize |
1MB | インデックスする最大ファイルサイズ |
indexOnStartup |
true |
サーバー起動時にプロジェクトをインデックスする |
watchFiles |
true |
ファイルの変更を監視して再インデックスする |
サポートされている言語
| 言語 | ランゲージサーバー | セットアップ |
|---|---|---|
| TypeScript/JavaScript | typescript-language-server | 自動インストール |
| Python | pylsp または pyright | pip install python-lsp-server |
| Go | gopls | go install golang.org/x/tools/gopls@latest |
| Rust | rust-analyzer | rustup 経由でインストール |
| Java | Eclipse JDT | 自動ダウンロード |
| C/C++ | clangd | パッケージマネージャー経由でインストール |
| Ruby | solargraph | gem install solargraph |
トラブルシューティング
Serena が起動しない:
必要なランゲージサーバーがインストールされているか確認してください。Python の場合は pip install python-lsp-server を実行してください。Go の場合は gopls が PATH に通っているか確認してください。
# ランゲージサーバーが利用可能か確認
which typescript-language-server # TypeScript
which pylsp # Python
which gopls # Go
which rust-analyzer # Rust
大規模プロジェクトでインデックスが遅い:
exclude リストにディレクトリを追加してください。モノレポの場合は、ルートではなく特定のパッケージを Serena に指定してください。
コード変更後に結果が古い:
watchFiles が有効であれば、Serena は自動更新されるはずです。更新されない場合は MCP サーバーを再起動してください。Claude Code では /mcp を使用して再起動できます。
シンボルが見つからないエラー:
プロジェクトに有効な設定ファイル(TypeScript なら tsconfig.json、Python なら pyproject.toml など)があることを確認してください。ランゲージサーバーはプロジェクト構造を理解するためにこれらを必要とします。
メモリ使用量が高い:
ファイル数が多い大規模なプロジェクトは、かなりのメモリを消費することがあります。maxFileSize オプションを使用して大きな生成ファイルをスキップし、ビルド出力ディレクトリを除外してください。
Serena vs. 一般的なファイルベース MCP
| 機能 | 基本的なファイル MCP | Serena |
|---|---|---|
| ファイル読み込み | 可 | 可 |
| ファイル書き込み | 可 | 可 |
| シンボル検索 | 不可 (テキスト検索のみ) | 可 (セマンティック) |
| 参照検索 | 不可 | 可 (全使用箇所) |
| 型情報 | 不可 | 可 |
| 呼び出し階層 | 不可 | 可 |
| リネームリファクタリング | 不可 | 可 (安全なリネーム) |
| 診断 (Diagnostics) | 不可 | 可 (コンパイラエラー) |
| コードインテリジェンス | 不可 | 可 |
結論
Serena は、AI コーディングアシスタントをテキストベースのツールから「コードを理解するパートナー」へと進化させます。Language Server Protocol を通じてコードベースのセマンティックな理解を提供することで、より正確なリファクタリング、優れたバグ診断、そしてより深いアーキテクチャの把握が可能になります。
AI 搭載製品を構築しており、信頼性の高いメディア生成 API を必要としている場合は、Hypereal AI が、画像生成、ビデオ作成、リップシンク、ボイスクローニングなどを単一の統合 API で提供しています。従量課金制で最新モデルにアクセスできる Hypereal は、アプリケーションに AI メディア機能を追加する最短の方法です。
