インストール
関数
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 ツール名 |
plugins | SdkPluginConfig[] | [] | ローカルパスからカスタムプラグインを読み込みます。詳細は Plugins を参照してください |
resume | string | undefined | 再開するセッション ID |
settingSources | SettingSource[] | [] (設定なし) | どのファイルシステム設定を読み込むかを制御します。省略された場合、設定は読み込まれません。注: CLAUDE.md ファイルを読み込むには 'project' を含める必要があります |
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' } を渡します。プリセットオブジェクト形式を使用する場合、append を追加してシステムプロンプトを追加の指示で拡張します |
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
SdkPluginConfig
SDK でプラグインを読み込むための設定。
| フィールド | 型 | 説明 |
|---|---|---|
type | 'local' | 'local' である必要があります(現在ローカルプラグインのみサポート) |
path | string | プラグインディレクトリへの絶対パスまたは相対パス |
メッセージ型
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
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
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
すべてのヌル許容フィールドがヌル許容でなくなった Usage のバージョン。
Usage
トークン使用統計(@anthropic-ai/sdk から)。
CallToolResult
MCP ツール結果型(@modelcontextprotocol/sdk/types.js から)。
AbortError
中止操作用のカスタムエラークラス。
関連項目
- SDK 概要 - 一般的な SDK の概念
- Python SDK リファレンス - Python SDK ドキュメント
- CLI リファレンス - コマンドラインインターフェース
- 一般的なワークフロー - ステップバイステップガイド