😽

Claude Codeのビルドインツールは無効化してシステムプロンプトを削減できる

に公開

TLDR: denyに不要なツールを入れるとシステムプロンプトも削減できます。

~/.claude/settings.json.permissions.deny にツール名を含めるとそのツールの使い方を含むシステムプロンプトが入らなくなります。

{
  "permissions": {
    "deny": [
      "NotebookEdit"
    ]
  },
}

before

> /context
  ⎿
      Context Usage
     ⛁ ⛀ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁   claude-haiku-4-5-20251001 · 22k/200k tokens (11%)
     ⛀ ⛀ ⛀ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System prompt: 3.1k tokens (1.6%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System tools: 16.0k tokens (8.0%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Custom agents: 1.4k tokens (0.7%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Memory files: 1.0k tokens (0.5%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Messages: 8 tokens (0.0%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛶ Free space: 178k (89.2%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶

after (他にもいくつか無効化してます)

> /context
  ⎿
      Context Usage
     ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛀ ⛀ ⛀ ⛶   claude-haiku-4-5-20251001 · 13k/200k tokens (6%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System prompt: 2.4k tokens (1.2%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System tools: 9.8k tokens (4.9%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Custom agents: 73 tokens (0.0%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Memory files: 242 tokens (0.1%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Messages: 8 tokens (0.0%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛶ Free space: 187k (93.7%)
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶
     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶

builtinのツール名はこちらのリストから確認しましょう。

https://code.claude.com/docs/ja/settings#claude-が利用できるツール

(12/12追記)
日本語版は若干古いので英語版も見比べてみると良いかもです。NotebookReadは消えました。
https://code.claude.com/docs/en/settings#tools-available-to-claude
"$schema": "https://json.schemastore.org/claude-code-settings.json" が過度な信頼は禁物ですがおすすめです

技術解説: Claude Codeはほぼ全てMCP

Claude Codeのビルドインツールは全てMCPサーバーとして実装されています。
以下のコマンドでMCPサーバーとして実際に起動してみましょう。

npx @modelcontextprotocol/inspector claude mcp serve

NotebookEditには説明として以下のようなMCP InitializerResult Instructionsが含まれています。

Completely replaces the contents of a specific cell in a Jupyter notebook (.ipynb file) with new source. Jupyter notebooks are interactive documents that combine code, text, and visualizations, commonly used for data analysis and scientific computing. The notebook_path parameter must be an absolute path, not a relative path. The cell_number is 0-indexed. Use edit_mode=insert to add a new cell at the index specified by cell_number. Use edit_mode=delete to delete the cell at the index specified by cell_number.

これらはinitialize call時にシステムプロンプトに渡すように設定されており、Claude Codeはその指示をもとにシステムプロンプトにMCPサーバーの情報を追加しているようです。

https://modelcontextprotocol.io/specification/2025-11-25/schema#initializeresult-instructions

コンテキスト削減やった人ならわかると思いますが、ツールを使ってもらうためにはそこそこの量の説明を加えるためツールというものは1つでも削減するだけでもかなりの削減が実現できます。

応用例: serena-mcp

serenaを利用するときはbuidtinツールと役割被っているので、全て無効化できて嬉しいかもですね。

{
  "permissions": {
    "deny": [
      "Edit",
      "Glob",
      "Grep",
      "Read",
      "Write",
    ]
  },
}

Discussion