Claude Codeの設定、どこから始めるのが正解?
室谷今回はClaude Codeの設定について話しましょう。これ、.AI(ドットエーアイ)コミュニティでも毎週のように「どこで設定するんですか?」って質問が来るんですよね・・・
テキトー教師講座でも初日によく出てくる質問です。Claude Codeって最初に使ったとき、設定の入口が分かりにくいんですよ。
ターミナルで起動するものだから、GUIの設定画面があるわけじゃない。
ターミナルで起動するものだから、GUIの設定画面があるわけじゃない。
室谷そうそう。でも設定を覚えると、これが本当に強くなるんですよね。
MYUUUのチームでも設定ファイルをGitで管理してて、新しいメンバーが入ったときにそのまま使えるようにしてます。
MYUUUのチームでも設定ファイルをGitで管理してて、新しいメンバーが入ったときにそのまま使えるようにしてます。
テキトー教師プロジェクト設定をチームで共有できるのが、Claude Codeの設定の一番の強みですよね。個人の設定と、チームで共有すべき設定を分けて管理できる。
室谷そこが整理できるかどうかで、チームでの使い勝手が全然変わってくるんですよね。今日はその設定の体系全体を整理していきましょう。
テキトー教師設定方法は大きく3つあります。
この3つの使い分けが最初のポイントですね。
/config コマンドで開くGUI設定、settings.json ファイルでの設定、そしてCLAUDE.mdファイルです。この3つの使い分けが最初のポイントですね。
設定の「スコープ」を理解する:グローバル・プロジェクト・ローカル

室谷まずスコープの話をしましょう。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されてたというパターンがすごく多い。
「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が「何をしていいか・ダメか」を細かく制御できる。
テキトー教師コミュニティのメンバーさんが最初に躓くのもここですよね。「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 push を ask に入れるのはいいパターンですよね。プッシュ前に確認が入るので、意図しないプッシュを防げる。
室谷これを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コメントを書いてください」みたいな指示を書いておくと、毎回プロンプトで言わなくていいですよね。
関数は全て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):外部ツール連携の入口

室谷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 pushをaskにしておくのは本当におすすめです。間違ったブランチにプッシュするのを防げますから。コミュニティのメンバーさんで「意図しないブランチにプッシュしてしまった」という失敗をした人が複数いたので。
室谷セキュリティ寄りの設定として、
.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の
特にProjectスコープのsettings.jsonはgitにコミットされるので。
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を直接書いた方がいいことの使い分けを整理すると・・・| 設定 | /config | settings.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は許可、それ以外は禁止」という細かい設定もできます。
「特定の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.jsonのhooksフィールドに書きます。主なイベントタイプはこうです。| イベント | タイミング |
|---|---|
PreToolUse | ツール実行前 |
PostToolUse | ツール実行後 |
Notification | Claude 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に入りますよね(笑)
テキトー教師「設定したのに反映されない」というのが一番多いです。チェックポイントはこうです。
- スコープの優先順位を確認: ProjectスコープのdenyがUserスコープのallowより優先される
- ファイルの場所を確認: settings.jsonの置き場所が正しいか
- JSON構文エラー: settings.jsonの書き方が正しいか(
/configで確認すると分かりやすい) - 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つの設定」をまとめておきます。
~/.claude/settings.jsonに言語設定を追加(日本語ユーザーは"language": "japanese")- プロジェクトルートに
CLAUDE.mdを作成(技術スタック・よく使うコマンド・コーディング規約) .claude/settings.jsonに最低限の権限設定を追加(.envのdeny、よく使うコマンドのallow)
室谷この3つをやるだけで、Claude Codeの使い勝手が格段に上がります。あとは使いながら設定を育てていく。
テキトー教師MCPやHooksは「慣れてきたら」という感じで、焦らず少しずつ試してみるのがいいと思います。最初から全部やろうとするより、一つずつ試す方が理解が深まります。
室谷「完璧な設定を作ってから使い始める」のではなく、「使いながら最適化していく」というアプローチが一番うまくいくと思います・・・設定ファイルも育てるもの、という感覚ですね。
テキトー教師Claude Codeの設定に詳しくなると、チームへの展開もスムーズになります。
.claude/settings.jsonとCLAUDE.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.json、CLAUDE.md)はgitでバージョン管理できるので、そっちで変更履歴を追えます。Q: チームでのMCP設定はどうすればいい?
テキトー教師.mcp.jsonをgitにコミットして共有するのが一番です。claude mcp add --scope project ... で追加すると自動で.mcp.jsonに書き出されます。
室谷ただし認証情報(OAuthトークンやAPIキー)は
.mcp.jsonに書かないでください。各自が個別に設定するか、組織のシークレット管理ツールと連携する形にします。