Loading...
    • 開発者ガイド
    • APIリファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    最初のステップ
    Claudeの紹介クイックスタート
    モデルと価格
    モデル概要モデルの選択Claude 4.5の新機能Claude 4.5への移行モデルの廃止予定価格
    Claudeで構築
    機能概要Messages APIの使用コンテキストウィンドウプロンプトのベストプラクティス
    機能
    プロンプトキャッシングコンテキスト編集拡張思考エフォートストリーミングメッセージバッチ処理引用多言語サポートトークンカウント埋め込みビジョンPDFサポートFiles API検索結果構造化出力
    ツール
    概要ツール使用の実装方法トークン効率的なツール使用細粒度ツールストリーミングBashツールコード実行ツールプログラマティックツール呼び出しコンピュータ使用ツールテキストエディタツールWebフェッチツールWeb検索ツールメモリツールツール検索ツール
    エージェントスキル
    概要クイックスタートベストプラクティスAPIでスキルを使用
    エージェントSDK
    概要TypeScript SDKPython SDK移行ガイド
    APIのMCP
    MCPコネクタリモートMCPサーバー
    サードパーティプラットフォームのClaude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータプロンプトテンプレートを使用プロンプト改善ツール明確で直接的に例を使用(マルチショットプロンプティング)Claudeに考えさせる(CoT)XMLタグを使用Claudeに役割を与える(システムプロンプト)Claudeの応答を事前入力複雑なプロンプトをチェーン長いコンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準を定義テストケースを開発評価ツールの使用レイテンシの削減
    ガードレールを強化
    ハルシネーションを削減出力の一貫性を向上ジェイルブレイクを軽減ストリーミング拒否プロンプトリークを削減Claudeをキャラクターに保つ
    管理とモニタリング
    Admin API概要使用状況とコストAPIClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    エージェントSDK

    Agent SDK リファレンス - TypeScript

    TypeScript Agent SDK の完全な API リファレンス。すべての関数、型、インターフェースを含みます。

    インストール

    npm install @anthropic-ai/claude-agent-sdk

    関数

    query()

    Claude Code と対話するための主要な関数。メッセージが到着するにつれてストリーミングする非同期ジェネレータを作成します。

    function query({
      prompt,
      options
    }: {
      prompt: string | AsyncIterable<SDKUserMessage>;
      options?: Options;
    }): Query

    パラメータ

    パラメータ型説明
    promptstring | AsyncIterable<SDKUserMessage>入力プロンプト。文字列またはストリーミングモード用の非同期イテラブル
    optionsOptionsオプションの設定オブジェクト(以下の Options 型を参照)

    戻り値

    Query オブジェクトを返します。これは AsyncGenerator<SDKMessage, void> を拡張し、追加のメソッドを持ちます。

    tool()

    SDK MCP サーバーで使用するための型安全な MCP ツール定義を作成します。

    function tool<Schema extends ZodRawShape>(
      name: string,
      description: string,
      inputSchema: Schema,
      handler: (args: z.infer<ZodObject<Schema>>, extra: unknown) => Promise<CallToolResult>
    ): SdkMcpToolDefinition<Schema>

    パラメータ

    パラメータ型説明
    namestringツールの名前
    descriptionstringツールが何をするかの説明
    inputSchemaSchema extends ZodRawShapeツールの入力パラメータを定義する Zod スキーマ
    handler(args, extra) => Promise<CallToolResult>ツールロジックを実行する非同期関数

    createSdkMcpServer()

    アプリケーションと同じプロセスで実行される MCP サーバーインスタンスを作成します。

    function createSdkMcpServer(options: {
      name: string;
      version?: string;
      tools?: Array<SdkMcpToolDefinition<any>>;
    }): McpSdkServerConfigWithInstance

    パラメータ

    パラメータ型説明
    options.namestringMCP サーバーの名前
    options.versionstringオプションのバージョン文字列
    options.toolsArray<SdkMcpToolDefinition>tool() で作成されたツール定義の配列

    型

    Options

    query() 関数の設定オブジェクト。

    プロパティ型デフォルト説明
    abortControllerAbortControllernew AbortController()操作をキャンセルするためのコントローラー
    additionalDirectoriesstring[][]Claude がアクセスできる追加ディレクトリ
    agentsRecord<string, [AgentDefinition](#agentdefinition)>undefinedサブエージェントをプログラムで定義
    allowedToolsstring[]すべてのツール許可されたツール名のリスト
    canUseToolCanUseToolundefinedツール使用のためのカスタム権限関数
    continuebooleanfalse最新の会話を続行
    cwdstringprocess.cwd()現在の作業ディレクトリ
    disallowedToolsstring[][]許可されていないツール名のリスト
    envDict<string>process.env環境変数
    executable'bun' | 'deno' | 'node'自動検出使用する JavaScript ランタイム
    executableArgsstring[][]実行ファイルに渡す引数
    extraArgsRecord<string, string | null>{}追加の引数
    fallbackModelstringundefinedプライマリが失敗した場合に使用するモデル
    forkSessionbooleanfalseresume で再開する場合、元のセッション ID を続行する代わりに新しいセッション ID にフォークする
    hooksPartial<Record<HookEvent, HookCallbackMatcher[]>>{}イベントのフックコールバック
    includePartialMessagesbooleanfalse部分的なメッセージイベントを含める
    maxThinkingTokensnumberundefined思考プロセスの最大トークン数
    maxTurnsnumberundefined最大会話ターン数
    mcpServersRecord<string, [McpServerConfig](#mcpserverconfig)>{}MCP サーバー設定
    modelstringCLI からのデフォルト使用する Claude モデル
    outputFormat{ type: 'json_schema', schema: JSONSchema }undefinedエージェント結果の出力形式を定義します。詳細は 構造化出力 を参照してください
    pathToClaudeCodeExecutablestring組み込み実行ファイルを使用Claude Code 実行ファイルへのパス
    permissionModePermissionMode'default'セッションの権限モード
    permissionPromptToolNamestringundefined権限プロンプト用の MCP ツール名
    pluginsSdkPluginConfig[][]ローカルパスからカスタムプラグインを読み込みます。詳細は プラグイン を参照してください
    resumestringundefined再開するセッション ID
    settingSourcesSettingSource[][] (設定なし)どのファイルシステム設定を読み込むかを制御します。省略した場合、設定は読み込まれません。注: CLAUDE.md ファイルを読み込むには 'project' を含める必要があります
    stderr(data: string) => voidundefinedstderr 出力のコールバック
    strictMcpConfigbooleanfalse厳密な MCP 検証を実施
    systemPromptstring | { type: 'preset'; preset: 'claude_code'; append?: string }undefined (空のプロンプト)システムプロンプト設定。カスタムプロンプト用に文字列を渡すか、Claude Code のシステムプロンプトを使用するために { type: 'preset', preset: 'claude_code' } を渡します。プリセットオブジェクト形式を使用する場合、append を追加してシステムプロンプトを追加の指示で拡張します

    Query

    query() 関数によって返されるインターフェース。

    interface Query extends AsyncGenerator<SDKMessage, void> {
      interrupt(): Promise<void>;
      setPermissionMode(mode: PermissionMode): Promise<void>;
    }

    メソッド

    メソッド説明
    interrupt()クエリを中断します(ストリーミング入力モードでのみ利用可能)
    setPermissionMode()権限モードを変更します(ストリーミング入力モードでのみ利用可能)

    AgentDefinition

    プログラムで定義されたサブエージェントの設定。

    type AgentDefinition = {
      description: string;
      tools?: string[];
      prompt: string;
      model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
    }
    フィールド必須説明
    descriptionはいこのエージェントを使用する場合の自然言語説明
    toolsいいえ許可されたツール名の配列。省略した場合、すべてのツールを継承します
    promptはいエージェントのシステムプロンプト
    modelいいえこのエージェントのモデルオーバーライド。省略した場合、メインモデルを使用します

    SettingSource

    SDK が設定を読み込むファイルシステムベースの設定ソースを制御します。

    type SettingSource = 'user' | 'project' | 'local';
    値説明場所
    'user'グローバルユーザー設定~/.claude/settings.json
    'project'共有プロジェクト設定(バージョン管理).claude/settings.json
    'local'ローカルプロジェクト設定(gitignored).claude/settings.local.json

    デフォルト動作

    settingSources が 省略 または undefined の場合、SDK はファイルシステム設定を読み込み ません。これにより SDK アプリケーションの分離が提供されます。

    settingSources を使用する理由

    すべてのファイルシステム設定を読み込む(レガシー動作):

    // SDK v0.0.x のようにすべての設定を読み込む
    const result = query({
      prompt: "Analyze this code",
      options: {
        settingSources: ['user', 'project', 'local']  // すべての設定を読み込む
      }
    });

    特定の設定ソースのみを読み込む:

    // プロジェクト設定のみを読み込み、ユーザーとローカルを無視
    const result = query({
      prompt: "Run CI checks",
      options: {
        settingSources: ['project']  // .claude/settings.json のみ
      }
    });

    テストと CI 環境:

    // ローカル設定を除外して CI で一貫した動作を確保
    const result = query({
      prompt: "Run tests",
      options: {
        settingSources: ['project'],  // チーム共有設定のみ
        permissionMode: 'bypassPermissions'
      }
    });

    SDK のみのアプリケーション:

    // すべてをプログラムで定義(デフォルト動作)
    // ファイルシステムの依存関係なし - settingSources はデフォルトで []
    const result = query({
      prompt: "Review this PR",
      options: {
        // settingSources: [] がデフォルト、指定する必要はありません
        agents: { /* ... */ },
        mcpServers: { /* ... */ },
        allowedTools: ['Read', 'Grep', 'Glob']
      }
    });

    CLAUDE.md プロジェクト指示を読み込む:

    // プロジェクト設定を読み込んで CLAUDE.md ファイルを含める
    const result = query({
      prompt: "Add a new feature following project conventions",
      options: {
        systemPrompt: {
          type: 'preset',
          preset: 'claude_code'  // CLAUDE.md を使用するために必須
        },
        settingSources: ['project'],  // プロジェクトディレクトリから CLAUDE.md を読み込む
        allowedTools: ['Read', 'Write', 'Edit']
      }
    });

    設定の優先順位

    複数のソースが読み込まれる場合、設定はこの優先順位(高から低)でマージされます:

    1. ローカル設定(.claude/settings.local.json)
    2. プロジェクト設定(.claude/settings.json)
    3. ユーザー設定(~/.claude/settings.json)

    プログラムオプション(agents、allowedTools など)は常にファイルシステム設定をオーバーライドします。

    PermissionMode

    type PermissionMode =
      | 'default'           // 標準的な権限動作
      | 'acceptEdits'       // ファイル編集を自動承認
      | 'bypassPermissions' // すべての権限チェックをバイパス
      | 'plan'              // 計画モード - 実行なし

    CanUseTool

    ツール使用を制御するためのカスタム権限関数型。

    type CanUseTool = (
      toolName: string,
      input: ToolInput,
      options: {
        signal: AbortSignal;
        suggestions?: PermissionUpdate[];
      }
    ) => Promise<PermissionResult>;

    PermissionResult

    権限チェックの結果。

    type PermissionResult = 
      | {
          behavior: 'allow';
          updatedInput: ToolInput;
          updatedPermissions?: PermissionUpdate[];
        }
      | {
          behavior: 'deny';
          message: string;
          interrupt?: boolean;
        }

    McpServerConfig

    MCP サーバーの設定。

    type McpServerConfig = 
      | McpStdioServerConfig
      | McpSSEServerConfig
      | McpHttpServerConfig
      | McpSdkServerConfigWithInstance;

    McpStdioServerConfig

    type McpStdioServerConfig = {
      type?: 'stdio';
      command: string;
      args?: string[];
      env?: Record<string, string>;
    }

    McpSSEServerConfig

    type McpSSEServerConfig = {
      type: 'sse';
      url: string;
      headers?: Record<string, string>;
    }

    McpHttpServerConfig

    type McpHttpServerConfig = {
      type: 'http';
      url: string;
      headers?: Record<string, string>;
    }

    McpSdkServerConfigWithInstance

    type McpSdkServerConfigWithInstance = {
      type: 'sdk';
      name: string;
      instance: McpServer;
    }

    SdkPluginConfig

    SDK でプラグインを読み込むための設定。

    type SdkPluginConfig = {
      type: 'local';
      path: string;
    }
    フィールド型説明
    type'local''local' である必要があります(現在ローカルプラグインのみサポート)
    pathstringプラグインディレクトリへの絶対パスまたは相対パス

    例:

    plugins: [
      { type: 'local', path: './my-plugin' },
      { type: 'local', path: '/absolute/path/to/plugin' }
    ]

    プラグインの作成と使用に関する完全な情報については、プラグイン を参照してください。

    メッセージ型

    SDKMessage

    クエリによって返されるすべての可能なメッセージの共用体型。

    type SDKMessage = 
      | SDKAssistantMessage
      | SDKUserMessage
      | SDKUserMessageReplay
      | SDKResultMessage
      | SDKSystemMessage
      | SDKPartialAssistantMessage
      | SDKCompactBoundaryMessage;

    SDKAssistantMessage

    アシスタント応答メッセージ。

    type SDKAssistantMessage = {
      type: 'assistant';
      uuid: UUID;
      session_id: string;
      message: APIAssistantMessage; // Anthropic SDK から
      parent_tool_use_id: string | null;
    }

    SDKUserMessage

    ユーザー入力メッセージ。

    type SDKUserMessage = {
      type: 'user';
      uuid?: UUID;
      session_id: string;
      message: APIUserMessage; // Anthropic SDK から
      parent_tool_use_id: string | null;
    }

    SDKUserMessageReplay

    必須 UUID を持つ再生されたユーザーメッセージ。

    type SDKUserMessageReplay = {
      type: 'user';
      uuid: UUID;
      session_id: string;
      message: APIUserMessage;
      parent_tool_use_id: string | null;
    }

    SDKResultMessage

    最終結果メッセージ。

    type SDKResultMessage = 
      | {
          type: 'result';
          subtype: 'success';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          result: string;
          total_cost_usd: number;
          usage: NonNullableUsage;
          permission_denials: SDKPermissionDenial[];
        }
      | {
          type: 'result';
          subtype: 'error_max_turns' | 'error_during_execution';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          total_cost_usd: number;
          usage: NonNullableUsage;
          permission_denials: SDKPermissionDenial[];
        }

    SDKSystemMessage

    システム初期化メッセージ。

    type SDKSystemMessage = {
      type: 'system';
      subtype: 'init';
      uuid: UUID;
      session_id: string;
      apiKeySource: ApiKeySource;
      cwd: string;
      tools: string[];
      mcp_servers: {
        name: string;
        status: string;
      }[];
      model: string;
      permissionMode: PermissionMode;
      slash_commands: string[];
      output_style: string;
    }

    SDKPartialAssistantMessage

    ストリーミング部分メッセージ(includePartialMessages が true の場合のみ)。

    type SDKPartialAssistantMessage = {
      type: 'stream_event';
      event: RawMessageStreamEvent; // Anthropic SDK から
      parent_tool_use_id: string | null;
      uuid: UUID;
      session_id: string;
    }

    SDKCompactBoundaryMessage

    会話圧縮境界を示すメッセージ。

    type SDKCompactBoundaryMessage = {
      type: 'system';
      subtype: 'compact_boundary';
      uuid: UUID;
      session_id: string;
      compact_metadata: {
        trigger: 'manual' | 'auto';
        pre_tokens: number;
      };
    }

    SDKPermissionDenial

    拒否されたツール使用に関する情報。

    type SDKPermissionDenial = {
      tool_name: string;
      tool_use_id: string;
      tool_input: ToolInput;
    }

    フック型

    HookEvent

    利用可能なフックイベント。

    type HookEvent = 
      | 'PreToolUse'
      | 'PostToolUse'
      | 'Notification'
      | 'UserPromptSubmit'
      | 'SessionStart'
      | 'SessionEnd'
      | 'Stop'
      | 'SubagentStop'
      | 'PreCompact';

    HookCallback

    フックコールバック関数型。

    type HookCallback = (
      input: HookInput, // すべてのフック入力型の共用体
      toolUseID: string | undefined,
      options: { signal: AbortSignal }
    ) => Promise<HookJSONOutput>;

    HookCallbackMatcher

    オプションのマッチャーを持つフック設定。

    interface HookCallbackMatcher {
      matcher?: string;
      hooks: HookCallback[];
    }

    HookInput

    すべてのフック入力型の共用体型。

    type HookInput = 
      | PreToolUseHookInput
      | PostToolUseHookInput
      | NotificationHookInput
      | UserPromptSubmitHookInput
      | SessionStartHookInput
      | SessionEndHookInput
      | StopHookInput
      | SubagentStopHookInput
      | PreCompactHookInput;

    BaseHookInput

    すべてのフック入力型が拡張する基本インターフェース。

    type BaseHookInput = {
      session_id: string;
      transcript_path: string;
      cwd: string;
      permission_mode?: string;
    }

    PreToolUseHookInput

    type PreToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PreToolUse';
      tool_name: string;
      tool_input: ToolInput;
    }

    PostToolUseHookInput

    type PostToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PostToolUse';
      tool_name: string;
      tool_input: ToolInput;
      tool_response: ToolOutput;
    }

    NotificationHookInput

    type NotificationHookInput = BaseHookInput & {
      hook_event_name: 'Notification';
      message: string;
      title?: string;
    }

    UserPromptSubmitHookInput

    type UserPromptSubmitHookInput = BaseHookInput & {
      hook_event_name: 'UserPromptSubmit';
      prompt: string;
    }

    SessionStartHookInput

    type SessionStartHookInput = BaseHookInput & {
      hook_event_name: 'SessionStart';
      source: 'startup' | 'resume' | 'clear' | 'compact';
    }

    SessionEndHookInput

    type SessionEndHookInput = BaseHookInput & {
      hook_event_name: 'SessionEnd';
      reason: 'clear' | 'logout' | 'prompt_input_exit' | 'other';
    }

    StopHookInput

    type StopHookInput = BaseHookInput & {
      hook_event_name: 'Stop';
      stop_hook_active: boolean;
    }

    SubagentStopHookInput

    type SubagentStopHookInput = BaseHookInput & {
      hook_event_name: 'SubagentStop';
      stop_hook_active: boolean;
    }

    PreCompactHookInput

    type PreCompactHookInput = BaseHookInput & {
      hook_event_name: 'PreCompact';
      trigger: 'manual' | 'auto';
      custom_instructions: string | null;
    }

    HookJSONOutput

    フック戻り値。

    type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;

    AsyncHookJSONOutput

    type AsyncHookJSONOutput = {
      async: true;
      asyncTimeout?: number;
    }

    SyncHookJSONOutput

    type SyncHookJSONOutput = {
      continue?: boolean;
      suppressOutput?: boolean;
      stopReason?: string;
      decision?: 'approve' | 'block';
      systemMessage?: string;
      reason?: string;
      hookSpecificOutput?:
        | {
            hookEventName: 'PreToolUse';
            permissionDecision?: 'allow' | 'deny' | 'ask';
            permissionDecisionReason?: string;
          }
        | {
            hookEventName: 'UserPromptSubmit';
            additionalContext?: string;
          }
        | {
            hookEventName: 'SessionStart';
            additionalContext?: string;
          }
        | {
            hookEventName: 'PostToolUse';
            additionalContext?: string;
          };
    }

    ツール入力型

    すべての組み込み Claude Code ツールの入力スキーマのドキュメント。これらの型は @anthropic-ai/claude-agent-sdk からエクスポートされ、型安全なツール相互作用に使用できます。

    ToolInput

    注: これは明確にするためのドキュメント専用型です。すべてのツール入力型の共用体を表します。

    type ToolInput = 
      | AgentInput
      | BashInput
      | BashOutputInput
      | FileEditInput
      | FileReadInput
      | FileWriteInput
      | GlobInput
      | GrepInput
      | KillShellInput
      | NotebookEditInput
      | WebFetchInput
      | WebSearchInput
      | TodoWriteInput
      | ExitPlanModeInput
      | ListMcpResourcesInput
      | ReadMcpResourceInput;

    Task

    ツール名: Task

    interface AgentInput {
      /**
       * タスクの短い説明(3~5 語)
       */
      description: string;
      /**
       * エージェントが実行するタスク
       */
      prompt: string;
      /**
       * このタスクに使用する特殊なエージェントのタイプ
       */
      subagent_type: string;
    }

    複雑なマルチステップタスクを自律的に処理するための新しいエージェントを起動します。

    Bash

    ツール名: Bash

    interface BashInput {
      /**
       * 実行するコマンド
       */
      command: string;
      /**
       * オプションのタイムアウト(ミリ秒、最大 600000)
       */
      timeout?: number;
      /**
       * このコマンドが何をするかの明確で簡潔な説明(5~10 語)
       */
      description?: string;
      /**
       * このコマンドをバックグラウンドで実行する場合は true に設定
       */
      run_in_background?: boolean;
    }

    永続的なシェルセッションで bash コマンドを実行します。オプションのタイムアウトとバックグラウンド実行をサポートします。

    BashOutput

    ツール名: BashOutput

    interface BashOutputInput {
      /**
       * 出力を取得するバックグラウンドシェルの ID
       */
      bash_id: string;
      /**
       * 出力行をフィルタリングするオプションの正規表現
       */
      filter?: string;
    }

    実行中または完了したバックグラウンド bash シェルから出力を取得します。

    Edit

    ツール名: Edit

    interface FileEditInput {
      /**
       * 変更するファイルの絶対パス
       */
      file_path: string;
      /**
       * 置換するテキスト
       */
      old_string: string;
      /**
       * 置換するテキスト(old_string と異なる必要があります)
       */
      new_string: string;
      /**
       * old_string のすべての出現を置換(デフォルト false)
       */
      replace_all?: boolean;
    }

    ファイル内で正確な文字列置換を実行します。

    Read

    ツール名: Read

    interface FileReadInput {
      /**
       * 読み込むファイルの絶対パス
       */
      file_path: string;
      /**
       * 読み込みを開始する行番号
       */
      offset?: number;
      /**
       * 読み込む行数
       */
      limit?: number;
    }

    ローカルファイルシステムからファイルを読み込みます。テキスト、画像、PDF、Jupyter ノートブックを含みます。

    Write

    ツール名: Write

    interface FileWriteInput {
      /**
       * 書き込むファイルの絶対パス
       */
      file_path: string;
      /**
       * ファイルに書き込むコンテンツ
       */
      content: string;
    }

    ローカルファイルシステムにファイルを書き込みます。存在する場合は上書きします。

    Glob

    ツール名: Glob

    interface GlobInput {
      /**
       * ファイルに対してマッチさせるグロブパターン
       */
      pattern: string;
      /**
       * 検索するディレクトリ(デフォルトは cwd)
       */
      path?: string;
    }

    任意のコードベースサイズで機能する高速ファイルパターンマッチング。

    Grep

    ツール名: Grep

    interface GrepInput {
      /**
       * 検索する正規表現パターン
       */
      pattern: string;
      /**
       * 検索するファイルまたはディレクトリ(デフォルトは cwd)
       */
      path?: string;
      /**
       * ファイルをフィルタリングするグロブパターン(例:"*.js")
       */
      glob?: string;
      /**
       * 検索するファイルタイプ(例:"js"、"py"、"rust")
       */
      type?: string;
      /**
       * 出力モード:"content"、"files_with_matches"、または "count"
       */
      output_mode?: 'content' | 'files_with_matches' | 'count';
      /**
       * 大文字と小文字を区別しない検索
       */
      '-i'?: boolean;
      /**
       * 行番号を表示(コンテンツモード用)
       */
      '-n'?: boolean;
      /**
       * 各マッチの前に表示する行数
       */
      '-B'?: number;
      /**
       * 各マッチの後に表示する行数
       */
      '-A'?: number;
      /**
       * 各マッチの前後に表示する行数
       */
      '-C'?: number;
      /**
       * 出力を最初の N 行/エントリに制限
       */
      head_limit?: number;
      /**
       * マルチラインモードを有効化
       */
      multiline?: boolean;
    }

    ripgrep に基づいた正規表現サポート付きの強力な検索ツール。

    KillBash

    ツール名: KillBash

    interface KillShellInput {
      /**
       * 終了するバックグラウンドシェルの ID
       */
      shell_id: string;
    }

    ID でバックグラウンド bash シェルを実行中のものを終了します。

    NotebookEdit

    ツール名: NotebookEdit

    interface NotebookEditInput {
      /**
       * Jupyter ノートブックファイルの絶対パス
       */
      notebook_path: string;
      /**
       * 編集するセルの ID
       */
      cell_id?: string;
      /**
       * セルの新しいソース
       */
      new_source: string;
      /**
       * セルのタイプ(code または markdown)
       */
      cell_type?: 'code' | 'markdown';
      /**
       * 編集のタイプ(replace、insert、delete)
       */
      edit_mode?: 'replace' | 'insert' | 'delete';
    }

    Jupyter ノートブックファイル内のセルを編集します。

    WebFetch

    ツール名: WebFetch

    interface WebFetchInput {
      /**
       * コンテンツを取得する URL
       */
      url: string;
      /**
       * 取得したコンテンツで実行するプロンプト
       */
      prompt: string;
    }

    URL からコンテンツを取得し、AI モデルで処理します。

    WebSearch

    ツール名: WebSearch

    interface WebSearchInput {
      /**
       * 使用する検索クエリ
       */
      query: string;
      /**
       * これらのドメインからのみ結果を含める
       */
      allowed_domains?: string[];
      /**
       * これらのドメインからの結果を決して含めない
       */
      blocked_domains?: string[];
    }

    ウェブを検索し、フォーマットされた結果を返します。

    TodoWrite

    ツール名: TodoWrite

    interface TodoWriteInput {
      /**
       * 更新されたタスクリスト
       */
      todos: Array<{
        /**
         * タスクの説明
         */
        content: string;
        /**
         * タスクのステータス
         */
        status: 'pending' | 'in_progress' | 'completed';
        /**
         * タスク説明の能動形
         */
        activeForm: string;
      }>;
    }

    進捗を追跡するための構造化タスクリストを作成および管理します。

    ExitPlanMode

    ツール名: ExitPlanMode

    interface ExitPlanModeInput {
      /**
       * ユーザーの承認のために実行する計画
       */
      plan: string;
    }

    計画モードを終了し、ユーザーに計画の承認を促します。

    ListMcpResources

    ツール名: ListMcpResources

    interface ListMcpResourcesInput {
      /**
       * リソースをフィルタリングするオプションのサーバー名
       */
      server?: string;
    }

    接続されたサーバーから利用可能な MCP リソースをリストします。

    ReadMcpResource

    ツール名: ReadMcpResource

    interface ReadMcpResourceInput {
      /**
       * MCP サーバー名
       */
      server: string;
      /**
       * 読み込むリソース URI
       */
      uri: string;
    }

    サーバーから特定の MCP リソースを読み込みます。

    ツール出力型

    すべての組み込み Claude Code ツールの出力スキーマのドキュメント。これらの型は各ツールによって返される実際の応答データを表します。

    ToolOutput

    注: これは明確にするためのドキュメント専用型です。すべてのツール出力型の共用体を表します。

    type ToolOutput = 
      | TaskOutput
      | BashOutput
      | BashOutputToolOutput
      | EditOutput
      | ReadOutput
      | WriteOutput
      | GlobOutput
      | GrepOutput
      | KillBashOutput
      | NotebookEditOutput
      | WebFetchOutput
      | WebSearchOutput
      | TodoWriteOutput
      | ExitPlanModeOutput
      | ListMcpResourcesOutput
      | ReadMcpResourceOutput;

    Task

    ツール名: Task

    interface TaskOutput {
      /**
       * サブエージェントからの最終結果メッセージ
       */
      result: string;
      /**
       * トークン使用統計
       */
      usage?: {
        input_tokens: number;
        output_tokens: number;
        cache_creation_input_tokens?: number;
        cache_read_input_tokens?: number;
      };
      /**
       * USD での総コスト
       */
      total_cost_usd?: number;
      /**
       * 実行期間(ミリ秒)
       */
      duration_ms?: number;
    }

    委譲されたタスクを完了した後、サブエージェントからの最終結果を返します。

    Bash

    ツール名: Bash

    interface BashOutput {
      /**
       * stdout と stderr の結合出力
       */
      output: string;
      /**
       * コマンドの終了コード
       */
      exitCode: number;
      /**
       * タイムアウトのためにコマンドが終了されたかどうか
       */
      killed?: boolean;
      /**
       * バックグラウンドプロセス用のシェル ID
       */
      shellId?: string;
    }

    コマンド出力と終了ステータスを返します。バックグラウンドコマンドは shellId で即座に返されます。

    BashOutput

    ツール名: BashOutput

    interface BashOutputToolOutput {
      /**
       * 最後のチェック以降の新しい出力
       */
      output: string;
      /**
       * 現在のシェルステータス
       */
      status: 'running' | 'completed' | 'failed';
      /**
       * 終了コード(完了時)
       */
      exitCode?: number;
    }

    バックグラウンドシェルからの増分出力を返します。

    Edit

    ツール名: Edit

    interface EditOutput {
      /**
       * 確認メッセージ
       */
      message: string;
      /**
       * 行われた置換の数
       */
      replacements: number;
      /**
       * 編集されたファイルパス
       */
      file_path: string;
    }

    置換数を含む成功した編集の確認を返します。

    Read

    ツール名: Read

    type ReadOutput = 
      | TextFileOutput
      | ImageFileOutput
      | PDFFileOutput
      | NotebookFileOutput;
    
    interface TextFileOutput {
      /**
       * 行番号付きのファイルコンテンツ
       */
      content: string;
      /**
       * ファイル内の総行数
       */
      total_lines: number;
      /**
       * 実際に返された行数
       */
      lines_returned: number;
    }
    
    interface ImageFileOutput {
      /**
       * Base64 エンコードされた画像データ
       */
      image: string;
      /**
       * 画像 MIME タイプ
       */
      mime_type: string;
      /**
       * ファイルサイズ(バイト)
       */
      file_size: number;
    }
    
    interface PDFFileOutput {
      /**
       * ページコンテンツの配列
       */
      pages: Array<{
        page_number: number;
        text?: string;
        images?: Array<{
          image: string;
          mime_type: string;
        }>;
      }>;
      /**
       * 総ページ数
       */
      total_pages: number;
    }
    
    interface NotebookFileOutput {
      /**
       * Jupyter ノートブックセル
       */
      cells: Array<{
        cell_type: 'code' | 'markdown';
        source: string;
        outputs?: any[];
        execution_count?: number;
      }>;
      /**
       * ノートブックメタデータ
       */
      metadata?: Record<string, any>;
    }

    ファイルタイプに適切な形式でファイルコンテンツを返します。

    Write

    ツール名: Write

    interface WriteOutput {
      /**
       * 成功メッセージ
       */
      message: string;
      /**
       * 書き込まれたバイト数
       */
      bytes_written: number;
      /**
       * 書き込まれたファイルパス
       */
      file_path: string;
    }

    ファイルの書き込みに成功した後、確認を返します。

    Glob

    ツール名: Glob

    interface GlobOutput {
      /**
       * マッチしたファイルパスの配列
       */
      matches: string[];
      /**
       * 見つかったマッチ数
       */
      count: number;
      /**
       * 使用された検索ディレクトリ
       */
      search_path: string;
    }

    グロブパターンにマッチするファイルパスを返します。変更時刻でソートされています。

    Grep

    ツール名: Grep

    type GrepOutput = 
      | GrepContentOutput
      | GrepFilesOutput
      | GrepCountOutput;
    
    interface GrepContentOutput {
      /**
       * コンテキスト付きのマッチング行
       */
      matches: Array<{
        file: string;
        line_number?: number;
        line: string;
        before_context?: string[];
        after_context?: string[];
      }>;
      /**
       * マッチの総数
       */
      total_matches: number;
    }
    
    interface GrepFilesOutput {
      /**
       * マッチを含むファイル
       */
      files: string[];
      /**
       * マッチを含むファイル数
       */
      count: number;
    }
    
    interface GrepCountOutput {
      /**
       * ファイルごとのマッチ数
       */
      counts: Array<{
        file: string;
        count: number;
      }>;
      /**
       * すべてのファイル全体のマッチ総数
       */
      total: number;
    }

    output_mode で指定された形式で検索結果を返します。

    KillBash

    ツール名: KillBash

    interface KillBashOutput {
      /**
       * 成功メッセージ
       */
      message: string;
      /**
       * 終了されたシェルの ID
       */
      shell_id: string;
    }

    バックグラウンドシェルの終了後、確認を返します。

    NotebookEdit

    ツール名: NotebookEdit

    interface NotebookEditOutput {
      /**
       * 成功メッセージ
       */
      message: string;
      /**
       * 実行された編集のタイプ
       */
      edit_type: 'replaced' | 'inserted' | 'deleted';
      /**
       * 影響を受けたセル ID
       */
      cell_id?: string;
      /**
       * 編集後のノートブック内の総セル数
       */
      total_cells: number;
    }

    Jupyter ノートブックの変更後、確認を返します。

    WebFetch

    ツール名: WebFetch

    interface WebFetchOutput {
      /**
       * プロンプトに対する AI モデルの応答
       */
      response: string;
      /**
       * 取得された URL
       */
      url: string;
      /**
       * リダイレクト後の最終 URL
       */
      final_url?: string;
      /**
       * HTTP ステータスコード
       */
      status_code?: number;
    }

    取得した Web コンテンツの AI の分析を返します。

    WebSearch

    ツール名: WebSearch

    interface WebSearchOutput {
      /**
       * 検索結果
       */
      results: Array<{
        title: string;
        url: string;
        snippet: string;
        /**
         * 利用可能な場合の追加メタデータ
         */
        metadata?: Record<string, any>;
      }>;
      /**
       * 結果の総数
       */
      total_results: number;
      /**
       * 検索されたクエリ
       */
      query: string;
    }

    ウェブからのフォーマットされた検索結果を返します。

    TodoWrite

    ツール名: TodoWrite

    interface TodoWriteOutput {
      /**
       * 成功メッセージ
       */
      message: string;
      /**
       * 現在のタスク統計
       */
      stats: {
        total: number;
        pending: number;
        in_progress: number;
        completed: number;
      };
    }

    現在のタスク統計を含む確認を返します。

    ExitPlanMode

    ツール名: ExitPlanMode

    interface ExitPlanModeOutput {
      /**
       * 確認メッセージ
       */
      message: string;
      /**
       * ユーザーが計画を承認したかどうか
       */
      approved?: boolean;
    }

    計画モード終了後、確認を返します。

    ListMcpResources

    ツール名: ListMcpResources

    interface ListMcpResourcesOutput {
      /**
       * 利用可能なリソース
       */
      resources: Array<{
        uri: string;
        name: string;
        description?: string;
        mimeType?: string;
        server: string;
      }>;
      /**
       * リソースの総数
       */
      total: number;
    }

    利用可能な MCP リソースのリストを返します。

    ReadMcpResource

    ツール名: ReadMcpResource

    interface ReadMcpResourceOutput {
      /**
       * リソースの内容
       */
      contents: Array<{
        uri: string;
        mimeType?: string;
        text?: string;
        blob?: string;
      }>;
      /**
       * リソースを提供したサーバー
       */
      server: string;
    }

    リクエストされたMCPリソースの内容を返します。

    パーミッションタイプ

    PermissionUpdate

    パーミッションを更新するための操作。

    type PermissionUpdate = 
      | {
          type: 'addRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'replaceRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'setMode';
          mode: PermissionMode;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'addDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }

    PermissionBehavior

    type PermissionBehavior = 'allow' | 'deny' | 'ask';

    PermissionUpdateDestination

    type PermissionUpdateDestination = 
      | 'userSettings'     // グローバルユーザー設定
      | 'projectSettings'  // ディレクトリごとのプロジェクト設定
      | 'localSettings'    // Gitignoreされたローカル設定
      | 'session'          // 現在のセッションのみ

    PermissionRuleValue

    type PermissionRuleValue = {
      toolName: string;
      ruleContent?: string;
    }

    その他のタイプ

    ApiKeySource

    type ApiKeySource = 'user' | 'project' | 'org' | 'temporary';

    ConfigScope

    type ConfigScope = 'local' | 'user' | 'project';

    NonNullableUsage

    すべてのnullable フィールドがnon-nullableになったUsageのバージョン。

    type NonNullableUsage = {
      [K in keyof Usage]: NonNullable<Usage[K]>;
    }

    Usage

    トークン使用統計(@anthropic-ai/sdkから)。

    type Usage = {
      input_tokens: number | null;
      output_tokens: number | null;
      cache_creation_input_tokens?: number | null;
      cache_read_input_tokens?: number | null;
    }

    CallToolResult

    MCPツール結果タイプ(@modelcontextprotocol/sdk/types.jsから)。

    type CallToolResult = {
      content: Array<{
        type: 'text' | 'image' | 'resource';
        // 追加フィールドはタイプによって異なります
      }>;
      isError?: boolean;
    }

    AbortError

    中止操作のためのカスタムエラークラス。

    class AbortError extends Error {}

    関連項目

    • SDK概要 - 一般的なSDKの概念
    • Python SDKリファレンス - Python SDKドキュメント
    • CLIリファレンス - コマンドラインインターフェース
    • 一般的なワークフロー - ステップバイステップガイド
    • query()
    • tool()
    • createSdkMcpServer()
    • Options
    • Query
    • AgentDefinition
    • SettingSource
    • PermissionMode
    • CanUseTool
    • PermissionResult
    • McpServerConfig
    • SdkPluginConfig
    • SDKMessage
    • SDKAssistantMessage
    • SDKUserMessage
    • SDKUserMessageReplay
    • SDKResultMessage
    • SDKSystemMessage
    • SDKPartialAssistantMessage
    • SDKCompactBoundaryMessage
    • SDKPermissionDenial
    • HookEvent
    • HookCallback
    • HookCallbackMatcher
    • HookInput
    • BaseHookInput
    • HookJSONOutput
    • ToolInput
    • Task
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • ToolOutput
    • Task
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • PermissionUpdate
    • PermissionBehavior
    • PermissionUpdateDestination
    • PermissionRuleValue
    • ApiKeySource
    • ConfigScope
    • NonNullableUsage
    • Usage
    • CallToolResult
    • AbortError