Logo
본문으로 이동
중급15분 소요tools-referencepermissionsbash

도구 레퍼런스 (Tools Reference)

읽는 시간: 15분 | 난이도: 중급자

Claude Code가 사용하는 모든 도구의 완전한 참조 가이드입니다. 권한 설정, 서브에이전트 도구 목록, 훅 매처에서 사용하는 정확한 도구명을 확인할 수 있습니다.

(출처: 공식 문서)


개요

Claude Code는 코드베이스를 이해하고 수정하는 데 도움이 되는 도구 세트에 접근할 수 있습니다. 아래의 도구명은 권한 규칙, 서브에이전트 도구 목록, 훅 매처에서 사용하는 정확한 문자열입니다.


1. 전체 도구 목록

1.1 파일 작업 도구

파일을 읽고, 쓰고, 수정하는 데 사용하는 도구입니다.

도구명 설명 권한 필요
Read 파일 내용을 읽습니다. 아니오
Write 파일을 생성하거나 덮어씁니다.
Edit 특정 파일에 대상 편집을 수행합니다.
NotebookEdit Jupyter 노트북 셀을 수정합니다.

사용 예시:

# 권한 규칙에서 특정 도구 허용
/permissions allow Read
/permissions allow Edit src/**
/permissions deny Write /etc/**

1.2 검색 도구

파일이나 코드 내용을 검색하는 데 사용하는 도구입니다.

도구명 설명 권한 필요
Glob 패턴 매칭으로 파일을 찾습니다. 아니오
Grep 파일 내용에서 패턴을 검색합니다. 아니오

1.3 실행 도구

명령어나 웹 요청을 실행하는 도구입니다.

도구명 설명 권한 필요
Bash 환경에서 셸 명령어를 실행합니다. Bash 동작 방식 참조.
WebFetch 지정된 URL에서 콘텐츠를 가져옵니다.
WebSearch 웹 검색을 수행합니다.

1.4 코드 인텔리전스 도구 (LSP)

언어 서버를 통한 코드 인텔리전스 도구입니다.

도구명 설명 권한 필요
LSP 언어 서버를 통한 코드 인텔리전스입니다. 파일 편집 후 타입 에러와 경고를 자동으로 보고합니다. 정의 이동, 참조 찾기, 타입 정보 조회, 심볼 목록, 구현 찾기, 호출 계층 추적 등의 탐색 작업도 지원합니다. 코드 인텔리전스 플러그인과 해당 언어 서버 바이너리가 필요합니다. 아니오

1.5 스케줄링 도구

세션 내에서 작업을 예약하는 도구입니다.

도구명 설명 권한 필요
CronCreate 현재 세션 내에서 반복 또는 일회성 프롬프트를 예약합니다 (Claude 종료 시 사라짐). 예약 작업 참조. 아니오
CronDelete ID로 예약된 작업을 취소합니다. 아니오
CronList 세션의 모든 예약 작업을 나열합니다. 아니오

주의: CronCreate로 생성된 예약 작업은 Claude Code 세션이 종료되면 함께 사라집니다. 영구적인 스케줄링이 필요하다면 시스템 cron이나 별도 스케줄러를 사용하세요.

1.6 작업 관리 도구

태스크와 백그라운드 작업을 관리하는 도구입니다.

도구명 설명 권한 필요
TaskCreate 작업 목록에 새 작업을 생성합니다. 아니오
TaskGet 특정 작업의 전체 세부 정보를 가져옵니다. 아니오
TaskList 현재 상태와 함께 모든 작업을 나열합니다. 아니오
TaskOutput 백그라운드 작업의 출력을 가져옵니다. 아니오
TaskStop ID로 실행 중인 백그라운드 작업을 종료합니다. 아니오
TaskUpdate 작업 상태, 의존성, 세부 정보를 업데이트하거나 작업을 삭제합니다. 아니오
TodoWrite 세션 작업 체크리스트를 관리합니다. 비대화형 모드와 Agent SDK에서 사용 가능하며, 대화형 세션은 TaskCreate, TaskGet, TaskList, TaskUpdate를 대신 사용합니다. 아니오

1.7 에이전트 및 계획 도구

서브에이전트를 생성하거나 계획 모드를 사용하는 도구입니다.

도구명 설명 권한 필요
Agent 작업을 처리하기 위해 자체 컨텍스트 윈도우를 가진 서브에이전트를 생성합니다. 아니오
AskUserQuestion 요구사항을 수집하거나 모호함을 명확히 하기 위해 객관식 질문을 합니다. 아니오
EnterPlanMode 코딩 전 접근 방식을 설계하기 위해 계획 모드로 전환합니다. 아니오
ExitPlanMode 계획을 승인 받기 위해 제시하고 계획 모드를 종료합니다.
EnterWorktree 격리된 git 워크트리를 생성하고 전환합니다. 아니오
ExitWorktree 워크트리 세션을 종료하고 원래 디렉토리로 돌아갑니다. 아니오
Skill 메인 대화 내에서 스킬을 실행합니다.

1.8 MCP 도구

MCP(Model Context Protocol) 서버와 상호작용하는 도구입니다.

도구명 설명 권한 필요
ListMcpResourcesTool 연결된 MCP 서버가 노출하는 리소스를 나열합니다. 아니오
ReadMcpResourceTool URI로 특정 MCP 리소스를 읽습니다. 아니오

1.9 기타 도구

도구명 설명 권한 필요
ToolSearch 도구 검색이 활성화된 경우 지연된 도구를 검색하고 로드합니다. 아니오

2. Bash 도구 동작 방식 {#bash-tool-behavior}

Bash 도구는 각 명령어를 별도의 프로세스에서 실행하며, 다음과 같은 지속성 동작을 따릅니다.

2.1 작업 디렉토리 지속성

작업 디렉토리는 명령어 간에 유지됩니다.

# 첫 번째 Bash 호출
cd /my/project

# 두 번째 Bash 호출 - /my/project에서 시작됨
pwd  # /my/project 출력

매 명령어 후 프로젝트 디렉토리로 초기화하려면 환경 변수를 설정하세요:

export CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1

2.2 환경 변수 비지속성

환경 변수는 명령어 간에 유지되지 않습니다. 한 명령어에서의 export는 다음 명령어에서 사용할 수 없습니다.

# 이렇게 하면 안 됨 - 다음 Bash 호출에서 MY_VAR를 사용할 수 없음
export MY_VAR=hello

# 다음 호출에서
echo $MY_VAR  # 빈 문자열 출력

환경 변수를 Bash 명령어 간에 유지하려면 다음 방법을 사용하세요:

방법 1: CLAUDE_ENV_FILE 설정

Claude Code를 시작하기 전에 셸 스크립트 경로를 설정합니다:

export CLAUDE_ENV_FILE=/path/to/my-env.sh
claude

my-env.sh 파일 예시:

export DATABASE_URL=postgres://localhost/mydb
export NODE_ENV=development
export API_KEY=my-api-key

방법 2: SessionStart 훅 사용

훅을 사용하여 동적으로 환경 변수를 설정합니다:

{
  "hooks": {
    "SessionStart": [
      {
        "command": "echo 'export MY_VAR=hello' >> $CLAUDE_ENV_FILE"
      }
    ]
  }
}

2.3 가상 환경 사용

가상 환경이나 conda 환경은 Claude Code를 시작하기 전에 활성화해야 합니다:

# Python 가상 환경
source .venv/bin/activate
claude

# conda 환경
conda activate myenv
claude

3. 권한 요구 도구 요약

권한이 필요한 도구 목록을 한눈에 확인하세요.

도구명 권한 필요 이유
Bash 셸 명령어 실행 - 시스템에 영향을 줄 수 있음
Write 파일 생성 및 덮어쓰기 - 데이터 손실 위험
Edit 파일 수정 - 코드 변경
NotebookEdit 노트북 수정 - 데이터/코드 변경
WebFetch 외부 URL 접근 - 네트워크 요청
WebSearch 웹 검색 - 외부 서비스 사용
ExitPlanMode 계획 승인 제시 - 사용자 확인 필요
Skill 스킬 실행 - 복합 작업 수행

권한 설정 방법:

# 대화형으로 설정
/permissions

# 특정 도구 허용
/permissions allow Bash

# 패턴으로 제한
/permissions allow Edit src/**
/permissions deny Bash rm -rf

권한 시스템에 대한 자세한 내용은 권한 가이드를 참조하세요.


4. 도구 카테고리별 활용 시나리오

4.1 코드 수정 워크플로우

Glob → 파일 검색
Read → 파일 내용 확인
Grep → 특정 패턴 검색
Edit → 대상 수정 적용
LSP → 타입 에러 확인
Bash → 테스트 실행

4.2 멀티 에이전트 워크플로우

Agent → 서브에이전트 생성
TaskCreate → 작업 등록
TaskList → 작업 상태 확인
TaskOutput → 백그라운드 작업 결과 수집
TaskUpdate → 작업 상태 업데이트

4.3 계획 기반 워크플로우

AskUserQuestion → 요구사항 수집
EnterPlanMode → 계획 모드 전환
(계획 수립)
ExitPlanMode → 계획 승인 요청
(승인 후 구현 시작)

4.4 MCP 통합 워크플로우

ListMcpResourcesTool → 사용 가능한 MCP 리소스 확인
ReadMcpResourceTool → 특정 리소스 읽기

5. 훅과 서브에이전트에서 도구명 사용

도구명은 훅 매처와 서브에이전트 도구 목록에서 정확한 문자열로 사용해야 합니다.

5.1 훅 매처 예시

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "command": "echo 'Bash 도구 실행 전'"
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "prettier --write $TOOL_INPUT_FILE_PATH"
      }
    ]
  }
}

5.2 서브에이전트 도구 목록 예시

{
  "subagent": {
    "allowed_tools": ["Read", "Glob", "Grep", "Bash"]
  }
}

서브에이전트 설정에 대한 자세한 내용은 서브에이전트 가이드를 참조하세요.


6. 도구별 참고 사항

TodoWrite vs 작업 관리 도구

도구 사용 환경
TodoWrite 비대화형 모드, Agent SDK
TaskCreate / TaskGet / TaskList / TaskUpdate 대화형 세션

Agent 도구 활용

Agent 도구는 독립적인 컨텍스트 윈도우를 가진 서브에이전트를 생성합니다. 대규모 코드베이스에서 병렬 작업이 필요하거나, 메인 컨텍스트를 오염시키지 않고 독립적인 작업을 수행할 때 유용합니다.

LSP 도구 요구 사항

LSP 도구를 사용하려면 다음이 필요합니다:

  • 코드 인텔리전스 플러그인 설치
  • 해당 언어 서버 바이너리 설치 (예: TypeScript용 typescript-language-server, Python용 pylsp)

EnterWorktree / ExitWorktree

git 워크트리를 통해 격리된 환경에서 작업할 수 있습니다. 브랜치 전환 없이 여러 작업을 병렬로 수행할 때 유용합니다.


참고 자료

관련 가이드

도구 레퍼런스 (Tools Reference) | Claude Code 가이드 | GodDaeHee | GodDaeHee