🦁

Serena MCPの全ツール解説とおすすめpermissions設定

に公開

株式会社GENDA エンジニアの大小田です。
本記事はGENDA Advent Calendar 2025 シリーズ2 Day 3の記事です。

https://qiita.com/advent-calendar/2025/genda

はじめに

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: 公式ドキュメントで確認
https://oraios.github.io/serena/01-about/035_tools.html

方法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に記載されていないツールは実行前に確認を求められる
  • denyallowより優先される

参考: 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_memoryedit_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