typescript-sdk-reference

0
0
Source

Comprehensive reference for the TypeScript Agent SDK with functions, types, and interfaces for programmatic Claude Code interactions

Install

mkdir -p .claude/skills/typescript-sdk-reference && curl -L -o skill.zip "https://mcp.directory/api/skills/download/6992" && unzip -o skill.zip -d .claude/skills/typescript-sdk-reference && rm skill.zip

Installs to .claude/skills/typescript-sdk-reference

About this skill

TypeScript SDK Reference

A comprehensive reference for building applications with the Anthropic Agent SDK (TypeScript), enabling programmatic interactions with Claude Code and custom tool integrations.

Installation

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

Quick Start

Core Functions

FunctionPurposeKey Use Case
query()Primary interface for Claude Code interactionsSend prompts, stream responses, manage multi-turn conversations
tool()Define MCP tools with type-safe schemasCreate custom tools for agents using Zod validation
createSdkMcpServer()Create in-process MCP serversHost tools natively in your application

Example: Basic Query

import { query } from '@anthropic-ai/claude-agent-sdk';

const result = query({
  prompt: "Analyze this code and suggest improvements",
  options: {
    allowedTools: ['Read', 'Grep'],
    model: 'claude-opus'
  }
});

for await (const message of result) {
  if (message.type === 'assistant') {
    console.log(message.message.content);
  }
}

Main Functions Reference

query()

Streams Claude Code responses with full message type support. Returns an async generator of SDKMessage objects.

Parameters:

  • prompt: string or async iterable of messages (streaming mode)
  • options: Configuration object (see Options below)

Returns: Query object (extends AsyncGenerator<SDKMessage, void>)

Key Methods:

  • .interrupt() – Interrupt streaming (streaming mode only)
  • .setPermissionMode(mode) – Change permissions dynamically (streaming mode only)

tool()

Creates type-safe MCP tool definitions using Zod schemas. Handlers receive validated inputs and must return CallToolResult.

Parameters:

  • name: Tool identifier
  • description: Natural language description
  • inputSchema: Zod schema defining inputs
  • handler: Async function (args: z.infer<Schema>, extra?: unknown) => Promise<CallToolResult>

Returns: SdkMcpToolDefinition<Schema>

createSdkMcpServer()

Creates an in-process MCP server for hosting custom tools. Runs in the same Node.js process—no subprocess overhead.

Parameters:

  • name: Server identifier
  • version: Optional semantic version
  • tools: Array of tool definitions from tool()

Returns: McpSdkServerConfigWithInstance (ready for mcpServers option)


Key Configuration Options

Essential Options

OptionTypeDefaultPurpose
allowedToolsstring[]All availableRestrict which tools Claude can use
disallowedToolsstring[][]Explicitly block tools
modelstringCLI defaultOverride Claude model (e.g., 'claude-opus')
cwdstringprocess.cwd()Working directory for operations
abortControllerAbortControllerNew instanceControl task cancellation

Advanced Options

OptionTypeDefaultPurpose
systemPromptstring or preset objectNoneCustom system instructions or Claude Code preset
agentsRecord<string, AgentDefinition>undefinedProgrammatically define subagents with custom prompts
mcpServersRecord<string, McpServerConfig>{}Connect stdio, SSE, HTTP, or SDK MCP servers
settingSources('user' | 'project' | 'local')[][]Load filesystem settings (CLAUDE.md, settings.json)
permissionModePermissionMode'default''default', 'acceptEdits', 'bypassPermissions', or 'plan'
maxThinkingTokensnumberundefinedToken limit for extended thinking
maxTurnsnumberundefinedMaximum conversation turns before stopping
resumestringundefinedResume a previous session by ID
forkSessionbooleanfalseFork to new session on resume instead of continuing

Message Types Overview

The query() generator yields SDKMessage objects. Common types:

Message TypeWhen EmittedKey Fields
'system'Session initializationtools, model, permissionMode, slash_commands
'user'User input sentmessage (APIUserMessage), uuid
'assistant'Claude respondsmessage (APIAssistantMessage with content/tool_use)
'result'Query completessubtype ('success' or error), usage, total_cost_usd
'stream_event'Partial streaming dataevent (only if includePartialMessages: true)

See Message Types Reference for complete definitions.


Types Reference Overview

Core Configuration Types

  • Options – Query configuration with 20+ properties (Tools, MCP, permissions, execution)
  • PermissionMode – Control execution permissions: 'default', 'acceptEdits', 'bypassPermissions', 'plan'
  • SettingSource – Filesystem config scope: 'user', 'project', 'local'

Agent & Tool Types

  • AgentDefinition – Subagent config: description, prompt, tools, model override
  • SdkMcpToolDefinition – Output of tool() function with Zod schema binding
  • McpServerConfig – Union of stdio, SSE, HTTP, or SDK server configs

MCP Server Configuration

Config TypeTransportUse Case
McpStdioServerConfigstdio (subprocess)External tools, sandboxing
McpSSEServerConfigServer-Sent EventsRemote tools, pub/sub patterns
McpHttpServerConfigHTTPREST-based tools, cloud integrations
McpSdkServerConfigWithInstanceIn-processCustom tools, no subprocess overhead

Hook Types

  • HookEvent – Event names: PreToolUse, PostToolUse, Notification, UserPromptSubmit, SessionStart, SessionEnd, etc.
  • HookCallback – Async function receiving hook input and returning decisions
  • HookInput – Union of all hook input types; each extends BaseHookInput

See Types Reference for detailed type definitions.


Tool Input/Output Reference

Built-in Tool Inputs

All tool names map to input schemas:

ToolPurposeKey Input
TaskDelegate to subagentdescription, prompt, subagent_type
BashRun shell commandscommand, optional timeout, run_in_background
ReadRead files/images/PDFsfile_path, optional offset/limit
Write / EditModify filesfile_path, content or old/new strings
GlobPattern matchingpattern, optional path
GrepRegex searchpattern, optional filters (glob, type, -B/-A/-C)
WebFetchFetch & analyze URLsurl, prompt for AI analysis
WebSearchWeb searchquery, optional domain filters
NotebookEditJupyter notebooksnotebook_path, new_source, edit_mode
TodoWriteTask trackingtodos array with status, content, activeForm

See Tool Reference for complete input/output schemas and examples.


Common Patterns

Streaming with Progress

const result = query({
  prompt: "Your task here",
  options: {
    includePartialMessages: true,
    permissionMode: 'bypassPermissions'
  }
});

for await (const msg of result) {
  if (msg.type === 'stream_event') {
    // Handle streaming events
    console.log('Streaming:', msg.event);
  } else if (msg.type === 'result') {
    console.log('Cost:', msg.total_cost_usd, 'Usage:', msg.usage);
  }
}

Custom MCP Tools

import { tool, createSdkMcpServer, query } from '@anthropic-ai/claude-agent-sdk';
import { z } from 'zod';

const myTool = tool(
  'my-calculator',
  'Add two numbers',
  { a: z.number(), b: z.number() },
  async ({ a, b }) => ({
    content: [{ type: 'text', text: `Result: ${a + b}` }]
  })
);

const server = createSdkMcpServer({
  name: 'my-tools',
  tools: [myTool]
});

const result = query({
  prompt: "Use my-calculator to add 5 + 3",
  options: {
    mcpServers: { 'my-tools': server }
  }
});

Loading Project Settings

const result = query({
  prompt: "Add a feature following project conventions",
  options: {
    systemPrompt: {
      type: 'preset',
      preset: 'claude_code'  // Enables Claude Code system prompt
    },
    settingSources: ['project'],  // Load .claude/settings.json & CLAUDE.md
    allowedTools: ['Read', 'Write', 'Edit', 'Bash']
  }
});

Related Resources

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

643969

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

591705

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

318398

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

339397

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

451339

fastapi-templates

wshobson

Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.

304231

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.