ガイド

Claude Code設定完全ガイド【2026年最新】:settings.json・CLAUDE.md・MCP・言語設定・権限設定まで徹底解説

室谷東吾
監修者室谷東吾(@0x__tom

株式会社MYUUU 代表取締役 / 日本最大級AIコミュニティ「.AI」創設者(累計2,000名超)/ セプテーニ・ホールディングス(電通グループ)と資本業務提携 / 著書「お金を使わず、AIを働かせる『Dify』活用」(ぱる出版、3刷)/ Xフォロワー約2万人

テキトー教師
監修者テキトー教師(@tekitoo_T_cher

.AI 認定講師 / 教育×AIの専門家 / 累計300名以上にAI活用を指導 / 「テキトーに学ぶ」がモットーの実践派講師 / Xアカウント

Claude Code設定完全ガイド【2026年最新】:settings.json・CLAUDE.md・MCP・言語設定・権限設定まで徹底解説

Claude Codeの設定、どこから始めるのが正解?

室谷室谷
今回はClaude Codeの設定について話しましょう。これ、.AI(ドットエーアイ)コミュニティでも毎週のように「どこで設定するんですか?」って質問が来るんですよね・・・
テキトー教師テキトー教師
講座でも初日によく出てくる質問です。Claude Codeって最初に使ったとき、設定の入口が分かりにくいんですよ。

ターミナルで起動するものだから、GUIの設定画面があるわけじゃない。
室谷室谷
そうそう。でも設定を覚えると、これが本当に強くなるんですよね。

MYUUUのチームでも設定ファイルをGitで管理してて、新しいメンバーが入ったときにそのまま使えるようにしてます。
テキトー教師テキトー教師
プロジェクト設定をチームで共有できるのが、Claude Codeの設定の一番の強みですよね。個人の設定と、チームで共有すべき設定を分けて管理できる。
室谷室谷
そこが整理できるかどうかで、チームでの使い勝手が全然変わってくるんですよね。今日はその設定の体系全体を整理していきましょう。
テキトー教師テキトー教師
設定方法は大きく3つあります。/config コマンドで開くGUI設定、settings.json ファイルでの設定、そしてCLAUDE.mdファイルです。

この3つの使い分けが最初のポイントですね。

設定の「スコープ」を理解する:グローバル・プロジェクト・ローカル

Claude Code 設定スコープの優先度(公式サイトより)

室谷室谷
まずスコープの話をしましょう。Claude Codeの設定には「どこに適用されるか」の階層があって・・・
テキトー教師テキトー教師
ここ、コミュニティのメンバーさんが一番混乱するポイントですね。「設定したのに反映されない」って相談の大半がこれです(笑)
室谷室谷
整理すると4段階あります。Managed・User・Project・Localですね。

優先度が高い順に並べるとこうなります。
スコープ場所誰に適用されるかチームで共有するか
Managed(最高優先)MDM/OS・managed-settings.jsonそのマシンの全ユーザーはい(IT部門が展開)
User~/.claude/settings.json自分・全プロジェクトいいえ
Project.claude/settings.jsonそのリポジトリの全コラボレーターはい(gitにコミット)
Local.claude/settings.local.json自分・このリポジトリのみいいえ(gitignore)
テキトー教師テキトー教師
このスコープの仕組みを知ると、「個人のAPIキー設定はUserスコープに、チームの権限設定はProjectスコープに」という使い分けが自然にできるようになります。
室谷室谷
Managedスコープは企業でClaude Codeを展開するときに使うやつですね。IT部門がJamfやIntune経由で全社員のマシンに設定を配布できる。
テキトー教師テキトー教師
個人で使う分にはまず関係ないですが、会社でClaude Codeを導入するときに「社員が本番DBへのアクセスを許可できないようにしたい」みたいな場面で使うイメージですね。
室谷室谷
優先度のルールとして、同じ設定が複数のスコープにあった場合は「より具体的なスコープが勝つ」んですよね。ProjectスコープでDenyされてたらUserスコープでAllowしてても動かない。
テキトー教師テキトー教師
そう。これを知らないとハマります。

「Userスコープで許可したのになんで動かないの?」って。Projectスコープのsettings.jsonを確認したら、そっちでDenyされてたというパターンがすごく多い。

settings.jsonの書き方:おすすめ設定から応用まで

室谷室谷
じゃあ実際のsettings.jsonを見ていきましょう。設定ファイルは /config コマンドで開くGUI設定を使えば自動で書き出されますし、手書きもできます。
テキトー教師テキトー教師
まずsettings.jsonの基本構造を確認しておきましょう。ファイルの先頭に$schemaを入れると、VS CodeやCursorで補完が効くようになって書きやすくなります。
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1"
  }
}
室谷室谷
$schemaを入れるだけで入力補完が効くのは地味に便利なんですよねw MYUUUのプロジェクトテンプレートには全部入れてます。
テキトー教師テキトー教師
よく使う設定をカテゴリ別に整理するとこうなります。

日本語設定(language)

テキトー教師テキトー教師
日本語で回答してほしい場合は language の設定が使えます。
室谷室谷
これ、知らない人が多いんですよね・・・毎回「日本語で」ってプロンプトに書いてる人が結構います。
テキトー教師テキトー教師
~/.claude/settings.json に以下を追加するだけです。
{
  "language": "japanese"
}
室谷室谷
UserスコープのSettings.jsonに書けば、全プロジェクトで日本語になります。声の入力も日本語に変わりますよ。
テキトー教師テキトー教師
ただ、プロジェクトによっては英語で使いたいこともあるので、その場合はProjectスコープで"language": "english"を設定すれば上書きできます。

モデル設定(model)

室谷室谷
モデルを固定したい場合は model の設定を使います。
テキトー教師テキトー教師
これも講座でよく聞かれます。「Sonnetがデフォルトだと思ってたら違うモデルが動いてた」みたいなことが起きるので。
室谷室谷
設定方法はこうです。
{
  "model": "claude-sonnet-4-6"
}
テキトー教師テキトー教師
使えるモデルは availableModels で絞り込めます。チームで使うモデルを統一したい場合に便利ですね。
{
  "availableModels": ["claude-sonnet-4-6", "claude-opus-4-6"]
}
室谷室谷
これをProjectスコープで設定しておくと、チームメンバーが /model コマンドで選べるモデルをコントロールできる。コスト管理の観点から、Opusを制限しておくみたいな使い方ができます。

自動更新チャンネル設定(autoUpdatesChannel)

室谷室谷
更新の安定性を重視するなら autoUpdatesChannel の設定もしておくといいですよ。
テキトー教師テキトー教師
デフォルトは "latest" で最新版が自動インストールされますが、"stable" にすると約1週間古いが安定した版を使えます。
{
  "autoUpdatesChannel": "stable"
}
室谷室谷
本番プロジェクトで使ってるときは、急に動作が変わって困ることがあるので、stableチャンネルにしておくのは賢いですよね・・・
テキトー教師テキトー教師
プロジェクトのsettings.jsonに入れておけば、そのリポジトリで作業するときは常にstableを使うという運用もできます。

権限設定(permissions)を使いこなす:allow・ask・deny

Claude Code 権限設定(permissions)の設定例 - 公式ドキュメントより

室谷室谷
設定の中で一番重要なのが、この権限設定だと思います。Claude Codeが「何をしていいか・ダメか」を細かく制御できる。
テキトー教師テキトー教師
コミュニティのメンバーさんが最初に躓くのもここですよね。「Claude Codeが勝手にファイルを変更して困った」という話、何度聞いたことか(笑)
室谷室谷
権限設定の基本は3つ。allow(自動許可)、ask(確認を求める)、deny(拒否)です。
テキトー教師テキトー教師
評価の順番も大事で、deny → ask → allow の順に評価されます。最初にdenyのルールがチェックされるから、denyが一番強い。
室谷室谷
書き方のフォーマットは ツール名ツール名(スペシファイア) ですね。具体的な例を見ると分かりやすいです。
ルール効果
Bash全てのBashコマンドにマッチ
Bash(npm run *)npm run で始まるコマンドにマッチ
Read(./.env).env ファイルの読み取りにマッチ
WebFetch(domain:example.com)example.comへのフェッチにマッチ
テキトー教師テキトー教師
実際にどう設定するかですが、まず「絶対にアクセスしてほしくないもの」をdenyに入れることから始めるといいです。
室谷室谷
secrets/ディレクトリとか.envファイルは最低限denyに入れておくべきですね。
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Bash(curl *)",
      "Bash(rm -rf *)"
    ]
  }
}
テキトー教師テキトー教師
Bash(curl *) をdenyにするのは、外部への意図しない通信を防ぐためですね。これは特にCI/CD環境での自動実行時に有効です。
室谷室谷
逆に頻繁に使うコマンドはallowに入れておくと、毎回確認を求められなくて快適になります。
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)",
      "Bash(git diff *)",
      "Bash(git status)",
      "Bash(git log *)"
    ],
    "deny": [
      "Read(./.env)",
      "Bash(git push *)"
    ],
    "ask": [
      "Bash(git push *)"
    ]
  }
}
テキトー教師テキトー教師
git pushask に入れるのはいいパターンですよね。プッシュ前に確認が入るので、意図しないプッシュを防げる。
室谷室谷
これをProjectスコープの.claude/settings.jsonに入れておくと、チーム全員に適用されます。コードレビューなしで本番ブランチにプッシュできないようにする、みたいな運用ができる。

additionalDirectoriesで参照ディレクトリを追加

テキトー教師テキトー教師
モノレポを使ってるチームには additionalDirectories の設定も便利です。
室谷室谷
デフォルトだとプロジェクトルートしか参照できないけど、モノレポで別ディレクトリの共有ドキュメントを参照したい場面がよくあるんですよね。
{
  "permissions": {
    "additionalDirectories": ["../docs/", "../shared/"]
  }
}
テキトー教師テキトー教師
ただしMCP設定やagentsの設定は additionalDirectories からは読み込まれないので注意が必要です。

CLAUDE.mdの設定:AIへの「仕様書」を書く

室谷室谷
settings.jsonが「Claude Codeというツールの動作設定」だとしたら、CLAUDE.mdは「このプロジェクトでClaudeにどう動いてほしいか」を書く仕様書です。
テキトー教師テキトー教師
ここ、整理して説明したいんですが・・・CLAUDE.mdは「Claude Codeが作業を始めるときに自動的に読み込むMarkdownファイル」なんですよ。コンテキストに差し込まれるイメージ。
室谷室谷
公式ドキュメントでは「memory」と呼ばれてますね。Claudeがプロジェクトの「記憶」を持つための仕組み。
テキトー教師テキトー教師
CLAUDE.mdを置ける場所が複数あって、それぞれ読み込まれるタイミングが違います。
ファイル場所用途
~/.claude/CLAUDE.mdホームディレクトリ全プロジェクト共通の個人設定
CLAUDE.mdプロジェクトルートチームで共有する設定
.claude/CLAUDE.mdプロジェクト内チームで共有する設定(サブフォルダ管理)
CLAUDE.local.mdプロジェクトルート個人のローカル設定(gitignore)
室谷室谷
MYUUUではプロジェクトごとに.claude/CLAUDE.mdを用意してます。新しいメンバーがcloneしてClaude Codeを立ち上げると、そのプロジェクトの文脈をすぐに理解してくれる。
テキトー教師テキトー教師
効果的なCLAUDE.mdに書くべき内容はこういうものです。
  • プロジェクトの概要と技術スタック
  • よく使うコマンド(npm run dev等)
  • コーディング規約(命名規則、型の使い方等)
  • 避けるべきパターン(このプロジェクトで使わないライブラリ等)
  • テストの書き方
  • デプロイのルール
室谷室谷
「このプロジェクトではTypeScriptで書いてください。any型は使わないでください。

関数は全てJSDocコメントを書いてください」みたいな指示を書いておくと、毎回プロンプトで言わなくていいですよね。
テキトー教師テキトー教師
個人の~/.claude/CLAUDE.mdには、自分が全プロジェクトで一貫して使いたい設定を書けます。「回答は日本語でお願いします」「説明は簡潔に」みたいな個人の好みですね。
室谷室谷
importも使えますよね。大きなプロジェクトだとCLAUDE.mdが肥大化してくるので、分割管理が便利です。
テキトー教師テキトー教師
はい。@path/to/file.md という記法で別ファイルをインポートできます。
# プロジェクト設定

@./docs/architecture.md
@./docs/coding-standards.md
室谷室谷
さらに.claude/rules/ディレクトリを使えば、設定をファイルごとに整理できます。
.claude/
  rules/
    coding-standards.md
    git-workflow.md
    testing-guidelines.md
テキトー教師テキトー教師
コミュニティのメンバーさんには「まずCLAUDE.mdから書き始めましょう」って言ってます。書く過程でプロジェクトの構造を整理し直すことになって、それ自体に価値があるんですよ。
室谷室谷
めちゃくちゃ同意します。CLAUDE.mdを書くとき、「このプロジェクトで当たり前だと思ってたことを言語化する」作業になるんですよね。

それがドキュメントにもなる。

MCP設定ファイル(.mcp.json):外部ツール連携の入口

Claude Code MCPサーバー一覧 - 公式ドキュメントより

室谷室谷
MCPの設定は、今Claude Codeの中で一番盛り上がってる分野ですよね。2026年に入ってからコミュニティでの話題の3割くらいはMCPです。
テキトー教師テキトー教師
先ほどのツイートにもありましたが、MCPのコンテキスト消費が改善されたり、リモートHTTPサーバーへの対応が増えたりして、使い勝手が格段に上がりましたよね。
室谷室谷
MCP設定ファイルの場所もsettings.jsonと似た感じで、スコープによって分かれています。
スコープ設定ファイル特徴
User(全プロジェクト共通)~/.claude.json個人でよく使うMCPサーバー
Project(チーム共有).mcp.jsonリポジトリにコミット・チーム全員で使う
Local(個人・このプロジェクト)~/.claude.json のper-project設定個人の追加設定
テキトー教師テキトー教師
MCPサーバーの追加は claude mcp add コマンドが一番楽ですね。
# リモートHTTPサーバーを追加
claude mcp add --transport http github https://mcp.github.com

# ローカルのstdioサーバーを追加
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem /path/to/dir
室谷室谷
コマンドで追加した場合、.mcp.jsonに自動で書き出されます。これをgitにコミットしておくと、チーム全員が同じMCPサーバーを使えるようになる。
テキトー教師テキトー教師
よく使われるMCPサーバーをまとめると、こういうラインナップです。
  • GitHub MCP: コードレビュー、イシュー管理、PR操作
  • Supabase MCP: データベース操作
  • Figma MCP: デザインデータの参照・コード生成
  • Linear MCP: タスク・プロジェクト管理
  • Notion MCP: ドキュメント管理
室谷室谷
GitHubとSlackのMCPを入れておくだけで、「イシューに書いてある内容を実装してPRを作る」みたいな作業が完全に自動化できるんですよね。これ、MYUUUでも普通に使ってます。
テキトー教師テキトー教師
Figma MCPも最近よく使ってます。デザインファイルのURLを渡すだけでコンポーネントを実装してくれるので、フロントエンド実装の速度が全然違う。
室谷室谷
MCP Tool SearchのことはX(Twitter)でも書きましたけど、これで「必要なツールだけ検索して呼び出す」ようになってコンテキスト消費がだいぶ改善された。以前はMCPが多すぎるとコンテキストが詰まってバカになっていくっていう問題があったんですよね・・・
テキトー教師テキトー教師
コミュニティでも「MCPが増えたら重くなった」という話があって、そこで躊躇してる人も多かったんですよ。Tool Searchが入ってからは、MCPを気兼ねなく追加できるようになりました。

allowedMcpServersとdeniedMcpServersでMCPを管理

室谷室谷
企業でClaude Codeを使う場合、ManagedスコープでMCPサーバーを制限できます。
テキトー教師テキトー教師
allowedMcpServers で許可リストを設定するか、deniedMcpServers でブロックリストを設定するかの2つのアプローチです。
{
  "allowedMcpServers": [
    { "serverName": "github" },
    { "serverName": "slack" }
  ],
  "deniedMcpServers": [
    { "serverName": "filesystem" }
  ]
}
室谷室谷
セキュリティが厳しい環境だと、勝手に外部サービスに繋がれたくないというケースがありますよね。そういうときにdenyで制限できる。

初期設定ファイル(claude code 初期設定):最初にやるべき設定手順

室谷室谷
ここまで色々な設定を見てきましたが、「Claude Codeを入れたばかりの人が最初にやるべき設定」を整理しましょうか。
テキトー教師テキトー教師
これは実際に講座で教えてる手順です。3ステップで完結します。
室谷室谷
まずステップ1は/configコマンドを開くことですね。ターミナルでClaude Codeを起動して、/configと入力するとGUI設定画面が開きます。
テキトー教師テキトー教師
/configの中でできる設定は結構たくさんあります。
  • 言語設定: 回答言語を日本語に設定
  • キーバインド: vimモードへの切り替え
  • テーマ: ライト/ダークの切り替え
  • IDE自動接続: VS Code立ち上げ時に自動接続するか
  • 更新チャンネル: stable/latestの選択
室谷室谷
/configで設定したものは~/.claude/settings.json~/.claude.jsonに自動保存されます。設定後にこのファイルを確認してみると、どこに保存されてるか理解できて勉強になります。
テキトー教師テキトー教師
ステップ2はプロジェクトルートにCLAUDE.mdを作ることです。最初は本当に簡単なもので十分。
# プロジェクト名

## 概要
このリポジトリは〇〇するためのものです。

## 技術スタック
- Node.js 22
- TypeScript 5.x
- PostgreSQL 16

## よく使うコマンド
- `npm run dev`: 開発サーバー起動
- `npm test`: テスト実行
- `npm run lint`: リント実行

## コーディング規約
- TypeScriptのanyは使わない
- 関数にはJSDocコメントを書く
室谷室谷
ステップ3は権限設定ですね。最低限.envファイルへのアクセスを防ぐdeny設定を入れておく。
テキトー教師テキトー教師
これを.claude/settings.jsonに保存してgitにコミットしておくと、他のメンバーがcloneしてすぐ使えるようになります。
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ],
    "allow": [
      "Bash(npm run *)",
      "Bash(git diff *)",
      "Bash(git status)",
      "Bash(git log *)"
    ]
  }
}
室谷室谷
これだけで最初の環境が整います。あとは使いながら「こういうコマンドは毎回確認が面倒だな」と感じたらallowに追加する、「ここはClaude Codeに触ってほしくない」と思ったらdenyに追加するという流れで育てていけばいい。

claude code 設定ファイル一覧:どこに何を書くか全まとめ

テキトー教師テキトー教師
ここまで見てきた設定ファイルを全部整理しましょう。結構色々出てきましたよね(笑)
室谷室谷
設定ファイルの場所が分散してるのがClaude Codeの分かりにくさの一つです・・・でも体系を理解すれば難しくない。
テキトー教師テキトー教師
まとめるとこうなります。
ファイル場所何を書くか
~/.claude/settings.jsonホーム全プロジェクト共通の個人設定(言語、モデル等)
~/.claude.jsonホームテーマ、MCPサーバー設定、セッション情報等
~/.claude/CLAUDE.mdホーム全プロジェクト共通の指示
.claude/settings.jsonプロジェクトチーム共有の設定(権限、環境変数等)
.mcp.jsonプロジェクトチーム共有のMCPサーバー設定
CLAUDE.mdプロジェクトチーム共有の指示・コーディング規約
.claude/settings.local.jsonプロジェクト個人のローカル設定(gitignore)
CLAUDE.local.mdプロジェクト個人のローカル指示(gitignore)
室谷室谷
「Gitにコミットするもの」と「コミットしないもの」で考えると整理しやすいですよね。チームで共有したいものはproject設定、個人のもの・環境依存のものはlocalかuser設定。
テキトー教師テキトー教師
.local.が付いているものはgitignoreされるので、絶対にコミットしたくない設定はこっちに書く。APIキーの設定とか、個人のMCPサーバー設定とか。
室谷室谷
「設定を確認したい」ってときは /config を開くか、~/.claude/settings.json を直接見るかですね。現在アクティブな設定を確認したい場合は、Claude Codeのセッション内で聞いてみるのも手です。

claude code グローバル設定vs.プロジェクト設定:どちらを使うべきか

室谷室谷
よく聞かれるのが「グローバル設定とプロジェクト設定、どっちに書けばいいの?」という質問ですよね。
テキトー教師テキトー教師
判断基準は3つです。
室谷室谷
1つ目は「チームで共有するか」。共有が必要なら .claude/settings.json(Project)、個人設定なら ~/.claude/settings.json(User)です。
テキトー教師テキトー教師
2つ目は「どのプロジェクトでも使うか」。全プロジェクト共通ならUser、特定プロジェクトだけならProject。
室谷室谷
3つ目は「Gitで管理したいか」。バージョン管理したい設定はProject(.claude/settings.json)、したくない場合はLocalかUser。
テキトー教師テキトー教師
よくある使い分けの例をまとめるとこんな感じです。
  • Userスコープに書くもの: 言語設定、好みのテーマ、個人でよく使うMCPサーバー
  • Projectスコープに書くもの: チームの権限設定、プロジェクト固有のMCPサーバー、allowedModels
  • Localスコープに書くもの: 個人の作業ディレクトリ固有の設定、実験的な設定
室谷室谷
うちのチームの場合は、Projectスコープのsettings.jsonに最低限の権限設定とMCPサーバーを書いてgitにコミットして、個人の細かい設定はそれぞれのUser設定に任せるようにしてます。

claude code 設定 おすすめ:実践的なベストプラクティス

テキトー教師テキトー教師
ここからは実際に使ってみて「これは入れておくべき」という設定を紹介していきます。
室谷室谷
まずはおすすめの~/.claude/settings.json(User設定)です。
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "language": "japanese",
  "autoUpdatesChannel": "stable",
  "model": "claude-sonnet-4-6",
  "showTurnDuration": true
}
テキトー教師テキトー教師
showTurnDuration はClaude Codeの処理時間をターミナルに表示してくれます。「今どのくらい処理してるんだろう?」という状況が見えて安心感がありますよね。
室谷室谷
次に、プロジェクト用の.claude/settings.jsonのテンプレートです。
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(git diff *)",
      "Bash(git status)",
      "Bash(git log *)",
      "Bash(git add *)",
      "Bash(git commit *)"
    ],
    "ask": [
      "Bash(git push *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Bash(curl *)",
      "Bash(wget *)"
    ]
  }
}
テキトー教師テキトー教師
git pushaskにしておくのは本当におすすめです。間違ったブランチにプッシュするのを防げますから。

コミュニティのメンバーさんで「意図しないブランチにプッシュしてしまった」という失敗をした人が複数いたので。
室谷室谷
セキュリティ寄りの設定として、.env系のファイルは全部denyにするのも基本ですね。APIキーや認証情報が漏れるリスクを下げられる。

claude code ルール設定:CLAUDE.mdをチームで育てる

テキトー教師テキトー教師
CLAUDE.mdは最初は簡単なものでいいんですが、使いながら育てていくのがコツです。
室谷室谷
MYUUUでは「コーディングセッションの最後にClaude Codeに自分でCLAUDE.mdを更新してもらう」というルーティンがあります。「このセッションで気づいたことをCLAUDE.mdに追記して」って指示するだけ。
テキトー教師テキトー教師
それは面白いアプローチですね。CLAUDE.mdが自己進化していく(笑)
室谷室谷
3ヶ月くらい続けると、プロジェクトのほぼ全ての「暗黙のルール」が言語化されてるんですよね。これがチームの知識ベースになる。

claude code API key 設定:環境変数で管理する

テキトー教師テキトー教師
APIキーの設定について確認しておきましょう。Claude CodeはAnthropicのAPIキーを使う方法とClaude.aiアカウントで使う方法がありますが、APIキーを使う場合の設定方法です。
室谷室谷
環境変数 ANTHROPIC_API_KEY にキーを設定するのが基本ですね。
# .bashrcや.zshrcに追加
export ANTHROPIC_API_KEY="sk-ant-..."
テキトー教師テキトー教師
settings.jsonの env フィールドでも環境変数を設定できます。ただしAPIキーのような機密情報をsettings.jsonに直接書くのは避けてください。

特にProjectスコープのsettings.jsonはgitにコミットされるので。
室谷室谷
APIキーはUserスコープのsettings.jsonに書くか、シェルの設定ファイルに書くかですね。
テキトー教師テキトー教師
apiKeyHelper という設定を使うと、カスタムスクリプトでAPIキーを動的に生成することもできます。企業環境で一時的な認証トークンを使う場合に便利です。
{
  "apiKeyHelper": "/path/to/generate_key.sh"
}
室谷室谷
AWS BedrockやGoogle Vertex AI経由でClaudeを使う場合も、別途設定が必要です。modelOverridesでモデルIDをマッピングする仕組みがあります。

claude code 設定 方法:/configコマンドを使いこなす

テキトー教師テキトー教師
GUIで設定をいじりたい場合は /config コマンドが一番直感的です。
室谷室谷
/config を開くとタブ型のインターフェースが出てきて、主要な設定が一覧で確認・変更できます。
テキトー教師テキトー教師
/configでできることと、settings.jsonを直接書いた方がいいことの使い分けを整理すると・・・
設定/configsettings.json直書き
言語・テーマ向いているどちらでも
キーバインド(vimモード)向いているどちらでも
権限設定基本的なものはOK複雑な条件はjsonが分かりやすい
MCP設定追加はcliコマンドが楽詳細設定はjson直書き
チーム共有設定できない(個人設定のみ)gitにコミットして共有
室谷室谷
現在の設定を確認したい場合は、/configを開けばActiveな設定が全部見えます。「あの設定、有効になってるかな?」ってときに便利。

claude code deny 設定:セキュリティを高める権限制御

室谷室谷
deny設定について、もう少し深掘りしましょう。セキュリティの観点からどこまで設定すべきかという話は、企業導入でよく出てくるテーマです。
テキトー教師テキトー教師
最低限やっておくべきdenyリストをまとめると、こうなります。
denyルール理由
Read(./.env)環境変数・APIキーの漏洩防止
Read(./.env.*).env.local等の関連ファイルも保護
Read(./secrets/**)シークレット管理ディレクトリを保護
Bash(curl *)意図しない外部通信の防止
Bash(wget *)同上
Bash(rm -rf *)誤った削除の防止
室谷室谷
Bash(curl *) については、MCPを使っている場合はWebFetchで代替されるケースが多いので、denyにしても多くの場面で問題ないんですよね。
テキトー教師テキトー教師
ただし、curl自体がプロジェクトで必要なコマンドの場合は要注意です。たとえばAPIのヘルスチェックをcurlでやってる場合など。

「特定のURLへのcurlは許可、それ以外は禁止」という細かい設定もできます。
{
  "permissions": {
    "allow": [
      "Bash(curl https://api.example.com/*)"
    ],
    "deny": [
      "Bash(curl *)"
    ]
  }
}
室谷室谷
allowとdenyの評価順序がポイントで、denyが先に評価されます。なので上の例だと「先にdenyでcurl全部をブロック、でもallowのURLは通す」ではなく・・・
テキトー教師テキトー教師
そうなんです。denyが先なので、Bash(curl *) があると Bash(curl https://api.example.com/*) も一緒にdenyされてしまいます。

ここは注意が必要。正しい設定はこうです。
{
  "permissions": {
    "deny": [
      "Bash(curl http://*)",
      "Bash(curl https://untrusted.com/*)"
    ],
    "allow": [
      "Bash(curl https://api.example.com/*)"
    ]
  }
}
室谷室谷
あと、Bash権限のスペシファイアはコマンド名と引数のプレフィックスマッチです。セキュリティ境界としての限界もあって・・・「Bash(git commit *) を許可してるけどgit commitに --exec オプションで任意コマンドを実行できる」みたいなケースもあるので、過信しすぎないことも大事。
テキトー教師テキトー教師
だからこそ、denyで「明らかに危険なもの」を防ぎつつ、Claudeを信頼して使うというバランスが大事ですよね。

claude code hooks 設定:ライフサイクルイベントを活用する

室谷室谷
Hooksの設定は、Claude Codeを「自動化ツール」として使いたい人には必須の知識です。
テキトー教師テキトー教師
Hooksって何かというと、Claude Codeの「作業イベント」に合わせて任意のコマンドを実行できる仕組みです。
室谷室谷
「ファイルを編集したら自動でリントを実行」「ターンが終わったら通知を送る」「ツールを実行する前にログを記録する」みたいなことができます。
テキトー教師テキトー教師
設定はsettings.jsonhooksフィールドに書きます。主なイベントタイプはこうです。
イベントタイミング
PreToolUseツール実行前
PostToolUseツール実行後
NotificationClaude Codeが通知を送るとき
Stopメインエージェントが停止したとき
SubagentStopサブエージェントが停止したとき
室谷室谷
簡単な例として、「Bashコマンドを実行するたびにログに記録する」Hookはこう書けます。
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "echo \"$(date): $TOOL_INPUT\" >> ~/.claude/bash-history.log"
          }
        ]
      }
    ]
  }
}
テキトー教師テキトー教師
もう少し実用的な例だと、ターンが終わったらMacのDesktop通知を送るHookです。
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Codeの作業が完了しました\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}
室谷室谷
長時間かかる処理をClaude Codeに任せて別の作業をしてるときに、完了通知が来るのは地味にありがたいんですよねw
テキトー教師テキトー教師
コミュニティのメンバーさんでHooks活用してる人がいて、「テストが失敗したら自動でSentryにイシューを作る」みたいな設定してる人もいました。
室谷室谷
HTTP Hooksも使えますよね。コマンドの実行ではなく、特定のURLにWebhookを送る設定です。
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "http",
            "url": "https://hooks.slack.com/services/xxx/yyy/zzz",
            "method": "POST",
            "headers": {
              "Content-Type": "application/json"
            }
          }
        ]
      }
    ]
  }
}
テキトー教師テキトー教師
ただし allowedHttpHookUrls でURL制限を設定しておくのがセキュリティ的に推奨です。

claude code 言語設定・日本語設定

室谷室谷
改めて日本語設定についても整理しておきましょう。日本語ユーザーが最初にやるべき設定の一つです。
テキトー教師テキトー教師
設定方法は2通りあります。

方法1: settings.jsonで設定

{
  "language": "japanese"
}

方法2: /configで設定

/config を開いて「Language」の項目から「Japanese」を選択。

室谷室谷
/configで設定した場合も、実際には~/.claude/settings.jsonに書き出されます。どちらでも結果は同じです。
テキトー教師テキトー教師
このlanguage設定は音声入力(voice dictation)の認識言語にも影響します。voiceEnabled: trueと組み合わせると、日本語音声でClaude Codeに指示を出せます。
室谷室谷
「日本語でコードの説明をしてほしいけど、コメントは英語でお願いしたい」みたいな場合は、CLAUDE.mdに「コードコメントは英語で書いてください」と書いておけば対応できます。
テキトー教師テキトー教師
settings.jsonのlanguage設定はあくまでClaudeの応答言語なので、プロジェクト固有の使い分けはCLAUDE.mdで指示するのが柔軟ですね。

claude code bedrock 設定・claude code max 設定:上級者向け設定

室谷室谷
最後に、少し上級者向けの設定もカバーしておきましょう。
テキトー教師テキトー教師
AWS BedrockでClaude Codeを使いたい場合は、追加の設定が必要です。
室谷室谷
Bedrock経由で使う場合、まずAWS認証情報を設定してから、環境変数でBedrockを有効化します。
export ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com
export AWS_DEFAULT_REGION=us-east-1
テキトー教師テキトー教師
modelOverridesを使うと、モデルIDをBedrockの推論プロファイルARNにマッピングできます。
{
  "modelOverrides": {
    "claude-opus-4-6": "arn:aws:bedrock:us-east-1:123456789:inference-profile/..."
  }
}
室谷室谷
これは企業でAWSのセキュリティ管理を使いながらClaude Codeを使いたい場合のパターンですね。Anthropic直接契約ではなく、AWSのアカウント管理内でClaude Codeを使える。
テキトー教師テキトー教師
Claude Code Maxプランを使う場合の設定は特に変わりません。プランはclaude.ai側で設定するもので、settings.jsonには関係ないです。

ただし availableModels で利用できるモデルを制限する設定はMaxプランだとOpus 4.6が使えるようになります。
室谷室谷
「Maxプランで何が変わるか」という話は別の記事で解説してるので、そちらも合わせて読んでみてください。

claude code mcp 設定ファイル・mcp 設定方法:実践的なMCP設定

室谷室谷
MCPの設定についてもう少し詳しく掘り下げましょう。先ほどは全体像を説明しましたが、実際のワークフローでどう設定するかの話です。
テキトー教師テキトー教師
MCP設定の実際の手順は3つのステップです。1: サーバーを追加、2: スコープを決める、3: .mcp.jsonをgitにコミット(チーム共有の場合)。
室谷室谷
一番楽なのは claude mcp add コマンドを使うことです。インタラクティブに追加できます。
# HTTP経由のリモートサーバーを追加(Userスコープに保存)
claude mcp add --transport http github https://mcp.github.com

# Projectスコープに追加(.mcp.jsonに書き出される)
claude mcp add --scope project --transport http supabase https://mcp.supabase.com/mcp
テキトー教師テキトー教師
--scope project をつけると.mcp.jsonに書き出されてチームで共有できます。つけないとUserスコープ(~/.claude.json)に保存されます。
室谷室谷
.mcp.jsonの中身を直接見ると、こんな形式です。
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://mcp.github.com"
    },
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/directory"
      ]
    }
  }
}
テキトー教師テキトー教師
type: "stdio" がローカルで動かすMCPサーバー、type: "http" がリモートのMCPサーバーです。最近は主要なサービスがHTTP経由のMCPサーバーを提供しているので、設定がとても簡単になりました。
室谷室谷
GitHub MCPを使うと、「このJIRAイシューの内容を実装してPRを作って」みたいな指示がそのまま動くんですよね。Issueの内容を読んで、コードを書いて、PRを作って、レビュアーをアサインするまで一気にやってくれる。
テキトー教師テキトー教師
それ、講座のデモで見せると毎回歓声が上がりますw 「本当に全部やってくれるんだ」って。
室谷室谷
今まで30分かかってた作業が3分になるケースも珍しくない。MCPの設定に10分かけるだけで、毎日の時間が節約される。

MCPサーバーの管理コマンド

テキトー教師テキトー教師
追加したMCPサーバーの確認・削除もコマンドでできます。
# 追加済みのMCPサーバー一覧
claude mcp list

# MCPサーバーを削除
claude mcp remove github

# 特定のMCPサーバーの詳細確認
claude mcp get github
室谷室谷
claude mcp list で追加してるサーバーを確認して、使ってないものを remove で整理するのを定期的にやるといいですよ。MCPサーバーが多すぎると起動が遅くなるので・・・

claude code memory 設定:Projectメモリを活用する

テキトー教師テキトー教師
CLAUDE.mdとは別に、Claude Codeには「自動メモリ」という機能もあります。これはClaudeがセッション中に学んだことを自動的に記録してくれる仕組みです。
室谷室谷
「次のセッションでも覚えておいてほしい」と感じる情報を、Claudeが自律的にメモしていくんですよね。
テキトー教師テキトー教師
設定で autoMemoryDirectory を変更すると、メモを保存するディレクトリを変えられます。デフォルトは~/.claude/以下です。
室谷室谷
実際の使い方としては、「このプロジェクトのアーキテクチャはこうです」「このAPIのエンドポイントはここです」みたいな情報を会話の中で教えると、次のセッションでも使ってくれる。
テキトー教師テキトー教師
CLAUDE.mdが「事前に書いておく仕様書」で、auto memoryが「使いながら蓄積される知識」という関係ですね。両方を組み合わせると、プロジェクトへのClaudeの理解度が上がっていく。
室谷室谷
CLAUDE.mdとauto memoryの使い分けは、「チームで共有したい情報 → CLAUDE.md」「個人の作業で学んだこと → auto memory」で考えるとクリアですね。

よくある設定トラブルと解決策

テキトー教師テキトー教師
設定に関するよくある困り事とその解決策をまとめておきます。
室谷室谷
これ、コミュニティのメンバーからよく来る質問のトップ5に入りますよね(笑)
テキトー教師テキトー教師
「設定したのに反映されない」というのが一番多いです。チェックポイントはこうです。
  1. スコープの優先順位を確認: ProjectスコープのdenyがUserスコープのallowより優先される
  2. ファイルの場所を確認: settings.jsonの置き場所が正しいか
  3. JSON構文エラー: settings.jsonの書き方が正しいか(/configで確認すると分かりやすい)
  4. Claude Codeを再起動: 設定変更後は再起動が必要な場合がある
室谷室谷
JSON構文エラーは地味にハマりますよね。$schemaを入れておけばVS CodeやCursorで赤線が出るので、書いておくのを強くすすめます。
テキトー教師テキトー教師
もう一つよくある困り事が「CLAUDE.mdを書いたのにClaude Codeが読んでくれない」という問題です。
室谷室谷
CLAUDE.mdの置き場所が間違ってるケースが多いですよね。プロジェクトルートに置いたつもりが、実は1つ上のディレクトリに置いてたとか。
テキトー教師テキトー教師
あとは @path/to/file.md でインポートしたファイルが存在しないパスを指定してしまってる場合も。エラーが出ないので気づきにくい。
室谷室谷
MCPサーバーが接続できない場合は、claude mcp list でサーバーの状態を確認してみるといいです。接続に失敗してる場合は赤くなるので。

まとめ:Claude Code設定の全体像

テキトー教師テキトー教師
今回の記事で学んだことを整理すると、Claude Codeの設定は「スコープの理解」が核心です。
室谷室谷
そうですね。Managed → User → Project → Local という4層の設定体系を理解すれば、あとは「どこに何を書くか」が自然に分かってきます。
テキトー教師テキトー教師
改めて「最初にやるべき3つの設定」をまとめておきます。
  1. ~/.claude/settings.jsonに言語設定を追加(日本語ユーザーは"language": "japanese"
  2. プロジェクトルートにCLAUDE.mdを作成(技術スタック・よく使うコマンド・コーディング規約)
  3. .claude/settings.jsonに最低限の権限設定を追加.envのdeny、よく使うコマンドのallow)
室谷室谷
この3つをやるだけで、Claude Codeの使い勝手が格段に上がります。あとは使いながら設定を育てていく。
テキトー教師テキトー教師
MCPやHooksは「慣れてきたら」という感じで、焦らず少しずつ試してみるのがいいと思います。最初から全部やろうとするより、一つずつ試す方が理解が深まります。
室谷室谷
「完璧な設定を作ってから使い始める」のではなく、「使いながら最適化していく」というアプローチが一番うまくいくと思います・・・設定ファイルも育てるもの、という感覚ですね。
テキトー教師テキトー教師
Claude Codeの設定に詳しくなると、チームへの展開もスムーズになります。.claude/settings.jsonCLAUDE.mdをテンプレート化しておけば、新しいプロジェクトの立ち上げが一瞬で終わります。
室谷室谷
MYUUUではそれをやってて、新しいリポジトリを作ったら最初にClaude Codeの設定テンプレートをコピーするのがルーティンになってます。

FAQ

Q: settings.jsonをVS Codeで編集できますか?

室谷室谷
できます。$schema 行を入れておくと補完が効くので、手書きもかなり快適になります。

コマンド code ~/.claude/settings.json で開けます。
テキトー教師テキトー教師
エラーがあったときにVS Codeが赤線で教えてくれるのも便利ですね。JSONのtypoとか構文ミスは人間の目では見つけにくいので。

Q: CLAUDE.mdとsettings.jsonの使い分けは?

テキトー教師テキトー教師
settings.json は「ツールとしてのClaude Codeの動作設定」で、CLAUDE.md は「Claudeへの指示・プロジェクト仕様書」です。
室谷室谷
「curlを禁止する」みたいな制御はsettings.json、「このプロジェクトではTypeScriptを使う」みたいな指示はCLAUDE.mdに書く、という使い分けが分かりやすいですね。

Q: 設定ファイルのバックアップはとれますか?

室谷室谷
Claude Codeが自動で最新5世代のバックアップを作ってくれます。設定を誤って壊した場合でも安心です。
テキトー教師テキトー教師
Projectスコープの設定ファイル(.claude/settings.json.mcp.jsonCLAUDE.md)はgitでバージョン管理できるので、そっちで変更履歴を追えます。

Q: チームでのMCP設定はどうすればいい?

テキトー教師テキトー教師
.mcp.jsonをgitにコミットして共有するのが一番です。claude mcp add --scope project ... で追加すると自動で.mcp.jsonに書き出されます。
室谷室谷
ただし認証情報(OAuthトークンやAPIキー)は.mcp.jsonに書かないでください。各自が個別に設定するか、組織のシークレット管理ツールと連携する形にします。

出典

.AI TIMES一覧に戻る