インストール
関数
query()
Claude Code とやり取りするための主要な関数です。メッセージが到着するとストリーミングする非同期ジェネレーターを作成します。
パラメーター
パラメーター | 型 | 説明 |
---|---|---|
prompt | string | AsyncIterable< SDKUserMessage > | 文字列またはストリーミングモード用の非同期イテラブルとしての入力プロンプト |
options | Options | オプションの設定オブジェクト(以下の Options 型を参照) |
戻り値
Query
オブジェクトを返します。これは AsyncGenerator<
SDKMessage
, void>
を拡張し、追加のメソッドを持ちます。
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' | ローカルプロジェクト設定(git 無視対象) | .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
すべての null 許容フィールドを非 null 許容にした Usage
のバージョン。
Usage
トークン使用統計(@anthropic-ai/sdk
から)。
CallToolResult
MCP ツール結果型(@modelcontextprotocol/sdk/types.js
から)。
AbortError
中止操作用のカスタムエラークラス。
関連項目
- SDK 概要 - 一般的な SDK 概念
- Python SDK リファレンス - Python SDK ドキュメント
- CLI リファレンス - コマンドラインインターフェース
- 一般的なワークフロー - ステップバイステップガイド