AgentToolDrop

30 of 71

Claude Agent SDK

Embeds Claude Code's agent loop, built-in tools and context management in Python or TypeScript apps

Install with pip

pip install claude-agent-sdk

Copied from the project's docs at github.com/anthropics/claude-agent-sdk-python

Why you'd want it

The Agent SDK is a library that runs the Claude Code binary, so your agent gets the same tools (read, write and edit files, run commands, search the web), agent loop and context management that power Claude Code. You can add custom tools as in-process MCP servers, run hooks at points in the agent lifecycle, spawn subagents, control which tools run automatically through permissions, and resume or fork sessions. It is available for Python (claude-agent-sdk) and TypeScript (@anthropic-ai/claude-agent-sdk).

Best for

  • Agents that edit files and run commands
  • Teams already using Claude Code
  • Embedding a coding agent in your own app

Use it when

You want Claude Code's tool set and permission model inside a process you operate, instead of writing the tool loop yourself.

Skip it if

You want to use non-Claude models. It needs an Anthropic API key or Claude through Amazon Bedrock, Google Cloud or Microsoft Foundry, and third-party products may not offer claude.ai login unless approved by Anthropic.

Editor's note

The Python and TypeScript SDKs live in separate repos (anthropics/claude-agent-sdk-python and anthropics/claude-agent-sdk-typescript); this entry covers both and tracks the Python repo.

Same category or shared tags, by drop score.

  1. Rank 52

    Runs a model-driven agent loop in your own process, in Python or TypeScript, with any model provider

    • score 48
    • 8.8k stars
    • pushed
    • python/v1.61.0 on
    • Apache-2.0

    Install with pip

    pip install strands-agents strands-agents-tools
    Use it when, skip it if, stats for Strands Agents

    Why you'd want it

    Strands is an SDK for cases where you would otherwise write your own agent loop: it runs in your process with no hosted control plane and covers turn limits, token budgets, cancellation, tools, structured output, MCP, multi-agent patterns, memory, sessions, streaming, guardrails, tracing and evals. It has first-class support for Amazon Bedrock, Anthropic, OpenAI and Gemini plus other and custom providers, and hooks let you intercept any step of the loop. Strands harness (create_harness() in Python, createHarness() in TypeScript) gives a fully assembled agent with preset defaults.

    Best for

    • Replacing a hand-rolled agent loop
    • Amazon Bedrock users
    • Mixed Python and TypeScript stacks

    Use it when

    You want to own the agent loop in your own process, with lifecycle limits, hooks and tracing built in and the option to swap model providers.

    Skip it if

    You want a hosted agent platform rather than a library. The Python SDK needs Python 3.10+ and the TypeScript SDK needs Node.js 22+.

    Stats

    Stars
    8,816
    Last push
    Release
    python/v1.61.0,
    License
    Apache-2.0
    Pricing
    Open source
    Drop score
    48 of 100
  2. Rank 15

    Builds TypeScript agents and graph-based workflows with memory, RAG, evals and model routing

    • score 69
    • 28.8k stars
    • pushed
    • @mastra/core@1.77.0 on
    • Apache-2.0

    Create a project with npm

    npm create mastra@latest
    Use it when, skip it if, stats for Mastra

    Why you'd want it

    Mastra is a TypeScript framework for agents and workflows that plugs into React, Next.js and Node apps or runs as a standalone server. It connects to 40+ model providers through one interface, has a graph-based workflow engine with .then(), .branch() and .parallel(), and can suspend an agent or workflow for human input and resume from stored state. It also covers conversation history, RAG, observational memory, MCP server authoring, evals and observability.

    Best for

    • TypeScript and Next.js teams
    • Agents with human approval steps
    • Apps that need memory and RAG in one stack

    Use it when

    You want agents, workflows, memory and evals in one TypeScript framework instead of assembling separate libraries.

    Skip it if

    You work in Python. Features in ee/ directories (for example auth) need a Mastra enterprise license for production use.

    Stats

    Stars
    28,824
    Last push
    Release
    @mastra/core@1.77.0,
    License
    Apache-2.0
    Pricing
    Open source
    Drop score
    69 of 100
  3. Rank 65

    Runs agents that write their actions as Python code, with core agent logic in about 1,000 lines

    • score 34
    • 29.8k stars
    • pushed
    • v1.26.0 on
    • Apache-2.0

    Install with pip

    pip install "smolagents[toolkit]"
    Use it when, skip it if, stats for smolagents

    Why you'd want it

    smolagents keeps abstractions minimal: the agent logic fits in roughly 1,000 lines, and its CodeAgent writes its actions in code. It is model-agnostic (local transformers or Ollama models, Hugging Face inference providers, or OpenAI, Anthropic and others via LiteLLM) and can use tools from MCP servers, LangChain or Hub Spaces. Agents and tools can be pushed to and pulled from the Hugging Face Hub, and a smolagent CLI runs agents from the terminal.

    Best for

    • Agents that act by writing code
    • Hugging Face Hub users
    • Reading and learning a compact agent loop

    Use it when

    You want a small, readable agent library and agents that act by writing code, with your choice of local or hosted models.

    Skip it if

    You cannot run agent code in a sandbox: the README says the built-in LocalPythonExecutor is not a security boundary and recommends E2B, Blaxel, Modal or Docker.

    Stats

    Stars
    29,849
    Last push
    Release
    v1.26.0,
    License
    Apache-2.0
    Pricing
    Open source
    Drop score
    34 of 100

For agents

The same entry, as files an agent can read without scraping this page.

# read one entry
curl -s https://agenttooldrop.com/tools/claude-agent-sdk.md

# list the MCP servers in the catalog
curl -s https://agenttooldrop.com/tools.json \
  | jq -r '.tools[] | select(.category=="mcp-server") | .slug'