TL;DR
- Claude Code のセットアップは「インストール → CLAUDE.md → Hooks → MCP」の4ステップで完結する
- CLAUDE.md はプロジェクトルートに置くだけで自動読み込みされる。肥大化させないことが最重要
- Hooks は最初から全部入れようとせず「禁止コマンドガード」と「lint 自動実行」の2本から始める
- MCP は Context7(ドキュメント参照)と Filesystem MCP を最初に接続すると恩恵が大きい
- 30分以内に作業可能な状態になる。設定は後から追加できる
このシリーズについて
このシリーズでは Claude Code の基礎から実践までを体系的に解説します。
- Claude Code セットアップ2026(本記事)— 初期設定の完全ガイド
- Hooks の実践活用法 — 自動化・安全ガード・通知
- MCP による外部ツール連携 — GitHub・Slack・DB との接続
- CLAUDE.md の設計パターン — プロジェクト別・チーム別の書き方
- 失敗パターン集と回避法 — hallucination・ループ・汚染への対処
この記事の目的と成功基準
- 目的: Claude Code インストール後、何をどの順番で設定すれば実務で使える状態になるかを手順として整理する
- 想定読者: Claude Code を初めて使うエンジニア、設定周りでつまずいている開発者
- 成功基準: この記事を読んだ人が30分以内にセットアップを完了し、最初のセッションを開始できること
0. 前提と所要時間
前提条件:
- Node.js 18 以上がインストール済み(確認:
node --version) - Anthropic API キーを取得済み(Anthropic Console から発行)
- macOS / Linux / WSL2(Windows ネイティブは未対応)[公式値]
所要時間: 約30分(インストール5分 + CLAUDE.md 10分 + Hooks 10分 + MCP 5分)
1. インストール(5分)
1-1. npm グローバルインストール
npm install -g @anthropic-ai/claude-code
インストール後、バージョンを確認する。
claude --version
2025年後半以降、Claude Code は @anthropic-ai/claude-code パッケージとして npm で配布されている(公式ドキュメント 参照)[公式値]。
1-2. 認証設定
初回起動時にブラウザが開き、Anthropic アカウントでの認証が求められる。
claude
API キーを直接設定する場合は環境変数 ANTHROPIC_API_KEY を .env に追加する。
export ANTHROPIC_API_KEY=sk-ant-...
1-3. 動作確認
プロジェクトディレクトリに移動して起動する。
cd my-project
claude
> プロンプトが表示されれば動作確認完了。
2. CLAUDE.md の最小構成(10分)
2-1. CLAUDE.md とは
CLAUDE.md はプロジェクトルートに置くことで、セッション開始時に毎回自動読み込みされるルールファイルだ(公式 memory ドキュメント)[公式値]。Claude Code に「このプロジェクトのルール」を永続的に伝えるための仕組みである。
セッションをまたいだ記憶設計の詳細は Claude Code セッション記憶のデザインパターン で整理している。
2-2. 最小構成テンプレート
# プロジェクト名
## 技術スタック
- Runtime: Node.js 20
- Framework: Next.js 14
- Package manager: pnpm(npm は使わない)
## 重要ルール
- TypeScript strict モードを維持する
- `src/` 配下のファイルのみ編集する
- 編集禁止: `node_modules/`, `**/*.lock`, `.env*`
## よく使うコマンド
- 開発: `pnpm dev`
- テスト: `pnpm test`
- ビルド: `pnpm build`
書くべき3セクション:
- 技術スタック(言語、フレームワーク、パッケージマネージャ)
- 重要ルール(編集禁止パス、必須条件)
- よく使うコマンド(セッションをまたいでも迷わないように)
2-3. アンチパターン:CLAUDE.md の肥大化
CLAUDE.md に「全部書こう」とすると逆効果になる。毎回読み込まれるため、長すぎるとコンテキストウィンドウを圧迫する。
やってはいけないこと:
- 設計ドキュメントや仕様書をそのまま貼り付ける
- めったに使わない手順を細かく書く
- 過去の経緯や議論の記録を入れる
頻繁に参照しないルールは docs/ や .agents/rules/ など別ファイルに分離し、CLAUDE.md からは @docs/rules.md を参照 のように参照させるのがよい。
3. Hooks の初期設定(10分)
3-1. Hooks の4種類
Claude Code の hooks は tool 実行のライフサイクルに介入できる(公式 hooks ドキュメント)[公式値]。
| hook 種別 | タイミング | 主な用途 |
|---|---|---|
PreToolUse | tool 実行前 | 禁止操作のブロック、確認ダイアログ |
PostToolUse | tool 実行後 | lint/test 自動実行、ログ記録 |
PreCompact | コンテキスト圧縮前 | 重要情報の保存 |
Notification | 通知時 | Slack 通知、ログ |
hooks の詳細なパターンは Claude Code hooks の実践パターン集 で網羅している。
3-2. 最初に入れるべき2つの hooks
初期設定として推奨する2本のみ入れる。多く入れすぎると hooks 障害時の影響範囲が広くなる(経験則)。
Hook 1: 危険コマンドガード(PreToolUse)
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash /path/to/guard.sh"
}
]
}
]
}
}
guard.sh の中身(最小版):
#!/bin/bash
INPUT=$(cat)
if echo "$INPUT" | grep -qE 'git push --force|rm -rf /|DROP TABLE'; then
echo "危険なコマンドをブロックしました" >&2
exit 1
fi
exit 0
Hook 2: ファイル保存後に lint(PostToolUse)
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "pnpm lint --fix 2>/dev/null || true"
}
]
}
]
}
}
3-3. settings.json への記述
hooks は .claude/settings.json に書く(公式 settings ドキュメント)[公式値]。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/guard.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "pnpm lint --fix 2>/dev/null || true"
}
]
}
]
}
}
.claude/hooks/guard.sh を実行可能にするのを忘れずに。
chmod +x .claude/hooks/guard.sh
4. MCP サーバの接続(5分)
4-1. MCP とは
MCP(Model Context Protocol)は Claude Code がツールやデータソースと通信するためのプロトコルだ。MCP サーバを設定することで、Claude Code がファイルシステム操作・外部ドキュメント参照・データベースアクセスなどを安全に行えるようになる。
MCP の設計思想と詳細な実装方法は MCP(Model Context Protocol)実装ガイド で解説している。
4-2. 最初に接続するべき2つの MCP サーバ
MCP 1: Context7(ライブラリドキュメント参照)
Context7 MCP はライブラリの最新ドキュメントをセッション内で参照できるようにする。コード補完の精度が大幅に向上する(経験則)。
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
MCP 2: Filesystem MCP(ファイルシステム操作)
指定ディレクトリのファイル読み書きを安全に行う。デフォルトの Bash 実行より細かい権限制御ができる(経験則)。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/project"
]
}
}
}
4-3. settings.json にまとめた完成形
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/projects/my-project"
]
}
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/guard.sh"
}
]
}
]
}
}
MCP サーバが正しく接続されているかは claude 起動後に /mcp コマンドで確認できる(公式 MCP ドキュメント 参照)[公式値]。
5. 初回セッション確認チェックリスト
セットアップ完了後、以下を順番に確認する。
[ ] claude --version でバージョンが表示される
[ ] プロジェクトルートに CLAUDE.md が存在する
[ ] .claude/settings.json が存在する
[ ] .claude/hooks/guard.sh が存在し chmod +x 済み
[ ] claude 起動後、CLAUDE.md が読み込まれていることを確認(「何ができるか教えて」と聞く)
[ ] /mcp でMCPサーバの接続状態を確認
[ ] 簡単なタスク(ファイル作成など)を実行してフローを確認
6. 次のステップ
基本的なセットアップが完了したら、以下のトピックで理解を深めることを勧める。
- セッション記憶の設計: Claude Code セッション記憶のデザインパターン — セッションをまたいだ長期作業の設計
- Hooks の実践パターン: Claude Code hooks の実践パターン集 — 品質担保・監査・安全制御の3用途
- MCP の詳細実装: MCP(Model Context Protocol)実装ガイド — 自前 MCP サーバの設計
- エージェント成熟モデル: AIエージェント3層成熟モデル — チーム導入の段階設計
- ペアプロ実践: AI ペアプログラミングの実践パターン — 実務での使い方
- Gate駆動開発: PlanGate 入門:Gate駆動開発で AI 作業を管理する — AI タスクの進捗管理
FAQ
Q: Claude Code は無料で使えますか?
A: Claude Code 自体は無料で配布されているが、使用するには Anthropic API キーが必要で、API 使用量に応じた課金が発生する。Anthropic の料金ページ で最新の料金を確認すること(確認日: 2026-05-31)[公式値]。
Q: CLAUDE.md を置かなくても Claude Code は動きますか?
A: 動く。ただし毎回プロジェクトのルールを自然言語で伝え直すことになり、品質が不安定になる。CLAUDE.md は「設定不要で動く最低限の投資」として最初に入れるべきだ(経験則)。
Q: Hooks を間違えて設定すると何が起きますか?
A: hooks が exit 1 を返すと tool の実行がブロックされる。全操作が止まる可能性があるため、新しい hook は最初に echo "OK" だけ返すシェルスクリプトで動作確認してから本番ロジックを入れることを勧める(経験則)。
Q: MCP サーバが接続できない場合はどうしますか?
A: まず npx @upstash/context7-mcp@latest --help を単独で実行してパッケージが正しくインストールできるか確認する。それで動けば settings.json のパスや引数の問題。npx 自体が失敗する場合はネットワーク環境(プロキシ等)を確認する(経験則)。
Q: Node.js のバージョンはいくつ必要ですか?
A: Node.js 18 以上が必要(公式ドキュメント 参照)[公式値]。node --version で確認し、古い場合は nvm などでアップグレードする。
