Serena MCPの全ツール解説とおすすめpermissions設定
株式会社GENDA エンジニアの大小田です。
本記事はGENDA Advent Calendar 2025 シリーズ2 Day 3の記事です。
はじめに
2025年も12月になってしまいました…
我々の業界へのAIの影響は非常に大きく、
ここまで大きく仕事のやり方が変わった年は今までなかったのではないかと思います。
私も今年はClaude、Codex、Cursorを使う機会があり、
現在はClaude Codeと共に日常の開発業務を行なっています。
会社からの厚意でClaude Max20Xプランを契約していただいていますが、
それでも毎週のようにOpusのWeekly Limitに達してしまう状況が続いていました。
(先日の利用上限の撤廃以降は、まだ上限に達したことはありません。)
Serena MCPとの出会い
Tokenの節約が死活問題だったため、Serena MCPを導入しました。
Serena MCPは、Language Server Protocol (LSP)を活用してコードベースを効率的に探索・編集できるMCPサーバーです。
ファイル全体を読み込む代わりに、シンボル単位での検索や編集が可能なため、大幅なToken節約が期待できます。
導入後、ここ数ヶ月間はデフォルト設定のまま利用を続けていましたが、
ツールの権限設定を見直すことで、さらに安全で効率的な開発環境を構築できるのではないかと考えました。
本記事の内容
本記事では、Serena MCPの全38個のツールを分類し、
安全性と利便性のバランスを考慮したおすすめのpermissions設定を紹介します。
- Serenaツール全38個のRead/Write/その他への分類
- Claude Code permissions設定の基本的な書き方
- オプショナルツールの有効化方法
- 実際に使えるおすすめ設定(コピペ可能)
前提条件
本記事は以下の環境を前提としています:
- 記事執筆日: 2025年12月2日
- Claude Code: v2.0.56
- Serena MCP: v0.1.4
- macOS: 15.5 (24F74)
Serena MCPは活発に開発が続いているため、数ヶ月後には本記事の情報が古くなっている可能性があります。
最新の情報はSerena公式ドキュメントをご確認ください。
Serenaツール全38個の分類
ツール一覧の確認方法
Serenaのツール一覧は以下の方法で確認できます:
方法1: uvxコマンドで確認
uvx --from git+https://github.com/oraios/serena serena tools list --all
方法2: 公式ドキュメントで確認
方法3: MCPツールとして確認
Claude Codeでmcp__serena__get_current_configツールを実行すると、現在有効なツール一覧が表示されます。
全38ツールの分類表
Serena v0.1.4には全部で38個のツールがあります。
ただし、このうち10個はオプショナル(デフォルトで無効)となっており、実際に最初から使えるアクティブなツールは28個です。
後述するClaude Codeのpermissions設定で適切に許可を出すために、以下のように分類してみました:
- Read: 12個(読み取り専用、システムの状態を変更しない)+ オプショナル3個
- Write: 11個(ファイルやシステム状態を変更する)+ オプショナル6個
- その他: 5個(AIエージェントの動作を補助するツール)+ オプショナル1個
| # | ツール名 | 分類 | 説明 | オプショナル |
|---|---|---|---|---|
| 1 | activate_project |
Write | プロジェクト設定を変更 | |
| 2 | check_onboarding_performed |
Read | オンボーディング状態の確認のみ | |
| 3 | create_text_file |
Write | ファイル作成・上書き | |
| 4 | delete_lines |
Write | ファイル内容を削除 | ◯ |
| 5 | delete_memory |
Write | メモリを削除 | |
| 6 | edit_memory |
Write | メモリ内容を変更 | |
| 7 | execute_shell_command |
Write | シェルコマンド実行(副作用あり) | |
| 8 | find_file |
Read | ファイル検索のみ | |
| 9 | find_referencing_symbols |
Read | シンボル参照の検索のみ | |
| 10 | find_symbol |
Read | シンボル検索のみ | |
| 11 | get_current_config |
Read | 設定情報の取得のみ | |
| 12 | get_symbols_overview |
Read | シンボル概要の取得のみ | |
| 13 | initial_instructions |
Read | 指示を提供(状態変更なし) | |
| 14 | insert_after_symbol |
Write | シンボル後にコンテンツ挿入 | |
| 15 | insert_at_line |
Write | 指定行にコンテンツ挿入 | ◯ |
| 16 | insert_before_symbol |
Write | シンボル前にコンテンツ挿入 | |
| 17 | jet_brains_find_referencing_symbols |
Read | JetBrains版参照検索 | ◯ |
| 18 | jet_brains_find_symbol |
Read | JetBrains版シンボル検索 | ◯ |
| 19 | jet_brains_get_symbols_overview |
Read | JetBrains版概要取得 | ◯ |
| 20 | list_dir |
Read | ディレクトリ一覧取得のみ | |
| 21 | list_memories |
Read | メモリ一覧取得のみ | |
| 22 | onboarding |
その他 | プロジェクトの初期分析を実行 | |
| 23 | prepare_for_new_conversation |
その他 | 会話を引き継ぐための指示を提供 | |
| 24 | read_file |
Read | ファイル読み取りのみ | |
| 25 | read_memory |
Read | メモリ読み取りのみ | |
| 26 | remove_project |
Write | プロジェクト削除 | ◯ |
| 27 | rename_symbol |
Write | コードベース全体でシンボルをリネーム | |
| 28 | replace_content |
Write | ファイル内容を置換 | |
| 29 | replace_lines |
Write | 指定行範囲を置換 | ◯ |
| 30 | replace_symbol_body |
Write | シンボル定義全体を置換 | |
| 31 | restart_language_server |
Write | Language Server再起動 | ◯ |
| 32 | search_for_pattern |
Read | パターン検索のみ | |
| 33 | summarize_changes |
その他 | 変更内容をまとめるための指示を提供 | ◯ |
| 34 | switch_modes |
Write | モード設定を変更 | ◯ |
| 35 | think_about_collected_information |
その他 | 収集した情報が十分かチェック | |
| 36 | think_about_task_adherence |
その他 | タスクから逸脱していないかチェック | |
| 37 | think_about_whether_you_are_done |
その他 | タスク完了したかどうかチェック | |
| 38 | write_memory |
Write | メモリに書き込み |
オプショナルツールの有効化
表の「オプショナル」列に◯が付いているツールは、Serenaではデフォルトで無効になっています。
これらのツールを使用するには、Serena側で明示的に有効化する必要があります。
有効化の方法
以下の設定ファイルに included_optional_tools を追加します:
グローバル設定(全プロジェクト共通): ~/.serena/serena_config.yml
プロジェクト単位: <project root>/.serena/project.yml
included_optional_tools:
- jet_brains_find_symbol
- delete_lines
# 使いたいオプショナルツールを列挙
Claude Code permissions設定の基本
Serenaが行うRead系のツールは自動実行させて、Write系のツールだけ確認しながら実行したいですよね?
Claude Codeでは、MCPツールに対する実行権限をpermissions設定で制御できます。
特定のツールをallowに指定することで、確認なしで自動実行できるようになります。
基本構文
サーバー全体を許可:
{
"permissions": {
"allow": ["mcp__serena"]
}
}
特定ツールのみ許可:
{
"permissions": {
"allow": [
"mcp__serena__find_file",
"mcp__serena__read_file"
]
}
}
特定ツールを拒否:
{
"permissions": {
"allow": ["mcp__serena"],
"deny": ["mcp__serena__execute_shell_command"]
}
}
ポイント
-
allowに記載されたツールは確認なしで自動実行される -
allowに記載されていないツールは実行前に確認を求められる -
denyはallowより優先される
参考: https://code.claude.com/docs/en/iam
おすすめpermissions設定
ここでは、安全性と利便性のバランスを考慮した私のおすすめ設定を紹介します。
設定方針
- Read系ツール: 自動実行を許可(安全性が高い)
-
その他ツール: 自動実行を許可(副作用が少ない)
-
summarize_changes(オプショナル)も便利そうなので実験的に有効化
-
- Write系ツール: 実行前に確認(ファイルやプロジェクト設定を変更するため)
Serena側の設定
summarize_changesはオプショナルツールなので、まずSerena側で有効化します。
~/.serena/serena_config.yml に以下を追加:
included_optional_tools:
- summarize_changes
Claude Code側の設定
**Read系ツール(12個)とその他ツール(6個)**を許可します:
{
"permissions": {
"allow": [
"mcp__serena__check_onboarding_performed",
"mcp__serena__find_file",
"mcp__serena__find_referencing_symbols",
"mcp__serena__find_symbol",
"mcp__serena__get_current_config",
"mcp__serena__get_symbols_overview",
"mcp__serena__initial_instructions",
"mcp__serena__list_dir",
"mcp__serena__list_memories",
"mcp__serena__read_file",
"mcp__serena__read_memory",
"mcp__serena__search_for_pattern",
"mcp__serena__onboarding",
"mcp__serena__prepare_for_new_conversation",
"mcp__serena__summarize_changes",
"mcp__serena__think_about_collected_information",
"mcp__serena__think_about_task_adherence",
"mcp__serena__think_about_whether_you_are_done"
]
}
}
まとめ
本記事では、Serena MCPの全38個のツールをRead/Write/その他に分類し、
安全性と利便性のバランスを考慮したおすすめのpermissions設定を紹介しました。
実際に使ってみて
まだこの設定にして日が経っていませんが、
毎回ツール実行の確認を求められる煩わしさからは解放されました。
Read系のツールは頻繁に実行されるため、これらを自動実行できるようになったことで、
Claude Codeとのやり取りがスムーズになり、開発体験が大きく向上しています。
一方でWrite系ツールは確認が必要なため、意図しない変更を防ぎながら安全に作業を進められています。
Serena MCPの設定を見直すことで、より快適な開発環境を構築できました。
皆さんもぜひ、自分に合った設定を見つけてみてください。
今後の課題
今回の設定見直しで気になった点をいくつか挙げておきます。
メモリ管理系ツールの自動実行
write_memoryとedit_memoryは、.serena/memories/ディレクトリにマークダウンファイルを作成・編集するだけで、
プロジェクトのソースコードには直接影響しません。
これらを自動実行許可にすることで、AIがより自由にプロジェクトの知識を蓄積できるようになるかもしれません。
一方で、意図しないメモリファイルが大量に作成される可能性もあります。
実際に試してみて、挙動を確認する必要がありそうです。
JetBrains系ツールの現状
serena_config.ymlには以下の記載があります:
jetbrains: false
# whether to enable JetBrains mode and use tools based on the Serena JetBrains IDE plugin
# instead of language server-based tools
# NOTE: The plugin is yet unreleased. This is for Serena developers only.
JetBrains系のオプショナルツールは存在するものの、プラグインがまだ未リリースとのこと。
現時点で実際に使えるのか、どのように設定すれば動作するのかは不明です。
この辺りのドキュメントが不足しているため、引き続き調査を行っていきたいと思います。
Discussion