설치
함수
query()
Claude Code와 상호작용하기 위한 주요 함수입니다. 메시지가 도착하는 대로 스트리밍하는 비동기 제너레이터를 생성합니다.
매개변수
매개변수 | 타입 | 설명 |
---|---|---|
prompt | string | AsyncIterable< SDKUserMessage > | 문자열 또는 스트리밍 모드를 위한 비동기 이터러블로 된 입력 프롬프트 |
options | Options | 선택적 구성 객체 (아래 Options 타입 참조) |
반환값
추가 메서드가 있는AsyncGenerator<
SDKMessage
, void>
를 확장하는 Query
객체를 반환합니다.
tool()
SDK MCP 서버와 함께 사용할 타입 안전한 MCP 도구 정의를 생성합니다.
매개변수
매개변수 | 타입 | 설명 |
---|---|---|
name | string | 도구의 이름 |
description | string | 도구가 수행하는 작업에 대한 설명 |
inputSchema | Schema extends ZodRawShape | 도구의 입력 매개변수를 정의하는 Zod 스키마 |
handler | (args, extra) => Promise< CallToolResult > | 도구 로직을 실행하는 비동기 함수 |
createSdkMcpServer()
애플리케이션과 동일한 프로세스에서 실행되는 MCP 서버 인스턴스를 생성합니다.
매개변수
매개변수 | 타입 | 설명 |
---|---|---|
options.name | string | MCP 서버의 이름 |
options.version | string | 선택적 버전 문자열 |
options.tools | Array<SdkMcpToolDefinition> | tool() 로 생성된 도구 정의 배열 |
타입
Options
query()
함수를 위한 구성 객체입니다.
속성 | 타입 | 기본값 | 설명 |
---|---|---|---|
abortController | AbortController | new AbortController() | 작업 취소를 위한 컨트롤러 |
additionalDirectories | string[] | [] | Claude가 접근할 수 있는 추가 디렉토리 |
agents | Record<string, [ AgentDefinition](#agentdefinition)> | undefined | 프로그래밍 방식으로 하위 에이전트 정의 |
allowedTools | string[] | 모든 도구 | 허용된 도구 이름 목록 |
canUseTool | CanUseTool | undefined | 도구 사용을 위한 사용자 정의 권한 함수 |
continue | boolean | false | 가장 최근 대화 계속하기 |
cwd | string | process.cwd() | 현재 작업 디렉토리 |
disallowedTools | string[] | [] | 허용되지 않는 도구 이름 목록 |
env | Dict<string> | process.env | 환경 변수 |
executable | 'bun' | 'deno' | 'node' | 자동 감지 | 사용할 JavaScript 런타임 |
executableArgs | string[] | [] | 실행 파일에 전달할 인수 |
extraArgs | Record<string, string | null> | {} | 추가 인수 |
fallbackModel | string | undefined | 기본 모델이 실패할 경우 사용할 모델 |
forkSession | boolean | false | resume 으로 재개할 때 원래 세션을 계속하는 대신 새 세션 ID로 분기 |
hooks | Partial<Record< HookEvent , HookCallbackMatcher []>> | {} | 이벤트를 위한 훅 콜백 |
includePartialMessages | boolean | false | 부분 메시지 이벤트 포함 |
maxThinkingTokens | number | undefined | 사고 과정을 위한 최대 토큰 |
maxTurns | number | undefined | 최대 대화 턴 |
mcpServers | Record<string, [ McpServerConfig](#mcpserverconfig)> | {} | MCP 서버 구성 |
model | string | CLI 기본값 | 사용할 Claude 모델 |
pathToClaudeCodeExecutable | string | 자동 감지 | Claude Code 실행 파일 경로 |
permissionMode | PermissionMode | 'default' | 세션의 권한 모드 |
permissionPromptToolName | string | undefined | 권한 프롬프트를 위한 MCP 도구 이름 |
resume | string | undefined | 재개할 세션 ID |
settingSources | SettingSource [] | [] (설정 없음) | 로드할 파일시스템 설정을 제어합니다. 생략하면 설정이 로드되지 않습니다 |
stderr | (data: string) => void | undefined | stderr 출력을 위한 콜백 |
strictMcpConfig | boolean | false | 엄격한 MCP 검증 강제 |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string } | undefined (빈 프롬프트) | 시스템 프롬프트 구성. 사용자 정의 프롬프트는 문자열을 전달하고, Claude Code의 시스템 프롬프트를 사용하려면 { type: 'preset', preset: 'claude_code' } 를 전달합니다 |
Query
query()
함수에서 반환되는 인터페이스입니다.
메서드
메서드 | 설명 |
---|---|
interrupt() | 쿼리를 중단합니다 (스트리밍 입력 모드에서만 사용 가능) |
setPermissionMode() | 권한 모드를 변경합니다 (스트리밍 입력 모드에서만 사용 가능) |
AgentDefinition
프로그래밍 방식으로 정의된 하위 에이전트를 위한 구성입니다.
필드 | 필수 | 설명 |
---|---|---|
description | 예 | 이 에이전트를 언제 사용할지에 대한 자연어 설명 |
tools | 아니오 | 허용된 도구 이름 배열. 생략하면 모든 도구를 상속 |
prompt | 예 | 에이전트의 시스템 프롬프트 |
model | 아니오 | 이 에이전트를 위한 모델 재정의. 생략하면 메인 모델 사용 |
SettingSource
SDK가 설정을 로드할 파일시스템 기반 구성 소스를 제어합니다.
값 | 설명 | 위치 |
---|---|---|
'user' | 전역 사용자 설정 | ~/.claude/settings.json |
'project' | 공유 프로젝트 설정 (버전 제어됨) | .claude/settings.json |
'local' | 로컬 프로젝트 설정 (gitignore됨) | .claude/settings.local.json |
기본 동작
settingSources
가 생략되거나 undefined일 때, SDK는 파일시스템 설정을 로드하지 않습니다. 이는 SDK 애플리케이션에 격리를 제공합니다.
settingSources를 사용하는 이유?
모든 파일시스템 설정 로드 (레거시 동작):설정 우선순위
여러 소스가 로드될 때, 설정은 다음 우선순위로 병합됩니다 (높음에서 낮음):- 로컬 설정 (
.claude/settings.local.json
) - 프로젝트 설정 (
.claude/settings.json
) - 사용자 설정 (
~/.claude/settings.json
)
agents
, allowedTools
등)은 항상 파일시스템 설정을 재정의합니다.
PermissionMode
CanUseTool
도구 사용을 제어하기 위한 사용자 정의 권한 함수 타입입니다.
PermissionResult
권한 검사의 결과입니다.
McpServerConfig
MCP 서버를 위한 구성입니다.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
메시지 타입
SDKMessage
쿼리에서 반환되는 모든 가능한 메시지의 유니온 타입입니다.
SDKAssistantMessage
어시스턴트 응답 메시지입니다.
SDKUserMessage
사용자 입력 메시지입니다.
SDKUserMessageReplay
필수 UUID가 있는 재생된 사용자 메시지입니다.
SDKResultMessage
최종 결과 메시지입니다.
SDKSystemMessage
시스템 초기화 메시지입니다.
SDKPartialAssistantMessage
스트리밍 부분 메시지 (includePartialMessages
가 true일 때만).
SDKCompactBoundaryMessage
대화 압축 경계를 나타내는 메시지입니다.
SDKPermissionDenial
거부된 도구 사용에 대한 정보입니다.
훅 타입
HookEvent
사용 가능한 훅 이벤트입니다.
HookCallback
훅 콜백 함수 타입입니다.
HookCallbackMatcher
선택적 매처가 있는 훅 구성입니다.
HookInput
모든 훅 입력 타입의 유니온 타입입니다.
BaseHookInput
모든 훅 입력 타입이 확장하는 기본 인터페이스입니다.
PreToolUseHookInput
PostToolUseHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStopHookInput
PreCompactHookInput
HookJSONOutput
훅 반환값입니다.
AsyncHookJSONOutput
SyncHookJSONOutput
도구 입력 타입
모든 내장 Claude Code 도구의 입력 스키마 문서입니다. 이러한 타입들은@anthropic-ai/claude-agent-sdk
에서 내보내지며 타입 안전한 도구 상호작용에 사용할 수 있습니다.
ToolInput
참고: 이는 명확성을 위한 문서 전용 타입입니다. 모든 도구 입력 타입의 유니온을 나타냅니다.
Task
도구 이름:Task
Bash
도구 이름:Bash
BashOutput
도구 이름:BashOutput
Edit
도구 이름:Edit
MultiEdit
도구 이름:MultiEdit
Read
도구 이름:Read
Write
도구 이름:Write
Glob
도구 이름:Glob
Grep
도구 이름:Grep
KillBash
도구 이름:KillBash
NotebookEdit
도구 이름:NotebookEdit
WebFetch
도구 이름:WebFetch
WebSearch
도구 이름:WebSearch
TodoWrite
도구 이름:TodoWrite
ExitPlanMode
도구 이름:ExitPlanMode
ListMcpResources
도구 이름:ListMcpResources
ReadMcpResource
도구 이름:ReadMcpResource
도구 출력 타입
모든 내장 Claude Code 도구의 출력 스키마 문서입니다. 이러한 타입들은 각 도구에서 반환되는 실제 응답 데이터를 나타냅니다.ToolOutput
참고: 이는 명확성을 위한 문서 전용 타입입니다. 모든 도구 출력 타입의 유니온을 나타냅니다.
Task
도구 이름:Task
Bash
도구 이름:Bash
BashOutput
도구 이름:BashOutput
Edit
도구 이름:Edit
MultiEdit
도구 이름:MultiEdit
Read
도구 이름:Read
Write
도구 이름:Write
Glob
도구 이름:Glob
Grep
도구 이름:Grep
KillBash
도구 이름:KillBash
NotebookEdit
도구 이름:NotebookEdit
WebFetch
도구 이름:WebFetch
WebSearch
도구 이름:WebSearch
TodoWrite
도구 이름:TodoWrite
ExitPlanMode
도구 이름:ExitPlanMode
ListMcpResources
도구 이름:ListMcpResources
ReadMcpResource
도구 이름:ReadMcpResource
권한 타입
PermissionUpdate
권한 업데이트를 위한 작업입니다.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
기타 타입
ApiKeySource
ConfigScope
NonNullableUsage
모든 nullable 필드가 non-nullable로 만들어진 Usage
버전입니다.
Usage
토큰 사용 통계 (@anthropic-ai/sdk
에서).
CallToolResult
MCP 도구 결과 타입 (@modelcontextprotocol/sdk/types.js
에서).
AbortError
중단 작업을 위한 사용자 정의 오류 클래스입니다.
참고 항목
- SDK 개요 - 일반적인 SDK 개념
- Python SDK 참조 - Python SDK 문서
- CLI 참조 - 명령줄 인터페이스
- 일반적인 워크플로우 - 단계별 가이드