Claude Agent SDK
Build browser agents on Anthropic's first-party agent loop with in-process MCP tools.
The Claude Agent SDK is the engine behind Claude Code, exposed as a Python and TypeScript library. You hand query() a prompt and an options object and iterate the typed messages it streams back. The Steel integration exposes a cloud browser as in-process MCP tools, so the SDK runs the agent loop and Steel handles the browser.
Available in TypeScript and Python.
Requirements
- Steel API Key: Active Steel subscription
- Anthropic API Key: Access to a Claude 4 model
- Runtime: Node.js 20+ or Python 3.10+
- Packages:
@anthropic-ai/claude-agent-sdkorclaude-agent-sdk, plussteel-sdkandplaywright
Connect Steel to the Claude Agent SDK
Wrap a Steel session in a tool() and bundle it into an in-process MCP server:
import { createSdkMcpServer, query, tool } from "@anthropic-ai/claude-agent-sdk";import { chromium } from "playwright";import Steel from "steel-sdk";const steel = new Steel({ steelAPIKey: STEEL_API_KEY });const openSession = tool("open_session","Open a Steel cloud browser session.",{},async () => {const session = await steel.sessions.create({});const browser = await chromium.connectOverCDP(`${session.websocketUrl}&apiKey=${STEEL_API_KEY}`,);return {content: [{ type: "text", text: JSON.stringify({ sessionId: session.id }) },],};},);const steelServer = createSdkMcpServer({name: "steel",version: "1.0.0",tools: [openSession],});
Pass the server into query() via mcpServers and pre-approve calls with allowedTools: ["mcp__steel__*"]. Drop the SDK's built-in tools with tools: [] so the agent only sees Steel.
Full runnable starter: Steel + Claude Agent SDK recipe →
Resources
- Claude Agent SDK documentation – Agent loop, custom MCP tools, hooks, subagents
- Steel Sessions API reference – Programmatic session control for Steel browsers
- Steel Discord – Get help and share what you build