Files
harness-sdk/README.md
T
Mackenzie Zastrow 612fd3eaa5 chore(mcp): integrate strands-mcp into monorepo CI and conventions
Follow-up to the strands-mcp history merge, covering everything the merge
itself didn't: CI gating, packaging/meta reconciliation, and doc/link updates.

CI merge gate:
- Wire strands-mcp into ci.yml with an `mcp` path filter, detect-changes
  output, gate job, and ci-gate needs/allowed-skips — mirroring how Python,
  TypeScript, and docs are gated. The gate job calls mcp-test-lint.yml directly
  (the Python pattern); calling the mcp-pr-and-push.yml wrapper would collide on
  the CI-<pr> concurrency group and cancel itself before running.
- mcp-test-lint.yml now runs the unit suite (hatch run test) in addition to
  lint, so the gate — and the pre-publish gate in
  mcp-pypi-publish-on-release.yml that reuses it — no longer passes without
  tests ever running. Renamed the workflow to "MCP: Test and Lint" to match.
- Bump pinned actions across all MCP workflows to the monorepo standard
  (checkout@v7, setup-python@v6, upload-artifact@v7, download-artifact@v8) and
  drop the standalone pull_request trigger from mcp-pr-and-push.yml (PR coverage
  now comes from the ci.yml gate; leaving it would double-run and collide on the
  CI-<pr> concurrency group).

Packaging and meta:
- Add license-files = ["LICENSE", "NOTICE"] to strands-mcp/pyproject.toml so
  both are bundled into the published wheel (the #2351 fix, latent in the MCP
  package). LICENSE/NOTICE stay package-local for this reason.
- Repoint the pyproject Homepage/Bug Tracker URLs from the archived mcp-server
  repo to harness-sdk (Bug Tracker to /issues).
- Delete strands-mcp/CODE_OF_CONDUCT.md (byte-identical to root) and
  strands-mcp/CONTRIBUTING.md (pre-merge boilerplate superseded by the root
  monorepo-aware CONTRIBUTING); add an MCP row to the root CONTRIBUTING table.
- Add missing trailing newlines to strands-mcp/.gitignore,
  strands-mcp/.pre-commit-config.yaml, and mcp-pypi-publish-on-release.yml.

Docs and links:
- Repoint every strands-agents/mcp-server repo reference to the MCP server's
  new home at harness-sdk/tree/main/strands-mcp: the quickstart and
  build-with-ai doc pages, the "MCP Server" ecosystem-nav link in the root,
  strands-py, strands-ts, and strands-mcp READMEs, and strands-mcp/README.md's
  badges, clone instructions, and example prompt. Also fix strands-mcp's stale
  sdk-python nav link. The strands-agents-mcp-server package name and install
  commands are unchanged; the historical introducing-strands-agents blog post
  is intentionally left frozen.
2026-07-21 14:43:32 -04:00

6.9 KiB

Strands Agents

A model-driven approach to building AI agents in just a few lines of code.

GitHub commit activity GitHub open issues GitHub open pull requests License PyPI version npm version Python versions Strands Discord

Documentation ◆ Samples ◆ Tools ◆ Agent Builder ◆ MCP Server

Strands Agents is a simple yet powerful SDK that takes a model-driven approach to building and running AI agents. From simple conversational assistants to complex autonomous workflows, from local development to production deployment, Strands Agents scales with your needs.

This monorepo contains the Python SDK, TypeScript SDK, documentation site, and supporting packages:

Directory Description
strands-py/ Python SDK: agent loop, model providers, tools (PyPI · releases)
strands-ts/ TypeScript SDK: agent loop, model providers, tools (npm · releases)
strandly/ Developer CLI for local builds and workspace tooling
site/ Source for the strandsagents.com documentation site (Astro/Starlight)
team/ Governance and cross-SDK process docs (tenets, decisions, PR & compatibility guidelines, and designs/ proposals)

Why Strands

Build an agent harness. Control it end-to-end.

  • Build your way. Any model, any cloud. Context management, execution limits, and observability built in before you write a line of config. Swap backends when you scale; your code stays the same.
  • Model agnostic. First-class support for Amazon Bedrock, Anthropic, OpenAI, and Gemini, plus many more providers and custom ones.
  • Stay in control. The agent loop traces every decision by default. Hooks let you intercept any step to log it, validate it, or redirect it.
  • Deliver outcomes that work. Guardrails catch mistakes before they run. Steering handlers let agents correct themselves instead of failing silently.

MCP, streaming, multi-agent patterns, and structured output are all built in.

Quick Start

Both SDKs default to the Amazon Bedrock model provider, so you'll need AWS credentials configured and model access enabled for Claude Sonnet. The Quickstart Guide covers configuring other providers (Anthropic, OpenAI, Gemini, Ollama, and more).

Python

Requires Python 3.10+:

pip install strands-agents strands-agents-tools
from strands import Agent
from strands_tools import calculator

agent = Agent(tools=[calculator])
agent("What is the square root of 1764")

The Python SDK README covers tools, model providers, MCP, and bidirectional streaming.

TypeScript

Requires Node.js 20+:

npm install @strands-agents/sdk
import { Agent } from '@strands-agents/sdk'

const agent = new Agent()
const result = await agent.invoke('What is the square root of 1764?')
console.log(result)

More in the TypeScript SDK README, including Zod-typed tools, structured output, and multi-agent patterns.

Documentation

For detailed guidance & examples, explore our documentation:

The docs themselves live in this monorepo under site/, and doc PRs are welcome alongside code changes.

Development

Git operations (commits, branches, PRs) are done from the repo root. Each package has its own toolchain:

Python SDK (strands-py/):

cd strands-py
pip install hatch
hatch test        # run unit tests
hatch fmt         # format & lint

TypeScript SDK (strands-ts/):

npm ci            # install from repo root
npm run build     # build
npm test          # run unit tests

Documentation site (site/):

cd site
npm install
npm run dev       # local dev server at http://localhost:4321/

Contributing ❤️

We welcome contributions! See our Contributing Guide for details on:

  • Reporting bugs & features
  • Development setup
  • Contributing via Pull Requests
  • Code of Conduct
  • Reporting of security issues

Stay in touch with the team

Come meet the Strands team and other users on Discord

License

This project is licensed under the Apache License 2.0 - see the LICENSE.APACHE file for details.

Security

See CONTRIBUTING for more information.