The AdCP SDKs absorb L0–L3 (wire, signing, auth, protocol semantics) so you write L4 business logic. Pick the SDK in the language you’re already in — all three SDKs target the same wire conformance bar. For the layered model behind this — what each layer contains and what an SDK at each layer should provide — see the SDK stack reference.Documentation Index
Fetch the complete documentation index at: https://agenticadvertisingorg-changeset-release-main.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Coverage matrix
What “shipped” means at each layer is the L0–L3 checklist. Last updated: 2026-05-03.| SDK | Production GA | Beta / dev | L0 | L1 | L2 | L3 |
|---|---|---|---|---|---|---|
@adcp/sdk (TS) | 6.9.0 | — | ✅ | ✅ | ✅ | ✅ |
adcp (Python) | 3.x | 4.x | ✅ | ⚠️ | ⚠️ | ⚠️ |
adcp-go | — | v1.x | ⚠️ | ❌ | ❌ | ❌ |
@adcp/sdk 6.x ships full L0–L3 on AdCP 3.0 — adopters write L4 only. The 5.x line is on security-only support and not recommended for new builds; cut over to 6.x. adcp (Python) 3.x is the production line with full L0 type coverage; the 4.x rewrite (in beta on PyPI) closes the L1–L3 gap — outbound RFC 9421 signing, brand-resolution helpers, webhook emission. Track adcp-client-python releases for the 4.0 GA cut. adcp-go is in active development; types + transport land first, see adcp-go README for what’s in scope per release.
Pre-3.0 callers should work through the 3.0 migration guide before upgrading. For the at-a-glance status of every published protocol version, see Versions & Compatibility. For procurement-grade context on the support window, see the v2 sunset timeline and versioning & governance.
Python and TypeScript carry full L0–L4 coverage as the first-class supported languages. Go is moving in the same direction. Other languages are not on the official roadmap; community-maintained ports are welcome — see the Builders Working Group and the Slack community.
JavaScript / TypeScript
@adcp/sdk— main entry: caller (createSingleAgentClient,ADCPMultiAgentClient) and shared types@adcp/sdk/server— agent-side server primitives (createAdcpServerFromPlatform,createAdcpServer, decisioning-platform interfaces)@adcp/sdk/server/legacy/v5— legacy v5 handler-bag entry, still supported for mid-migration codebases@adcp/sdk/signing— RFC 9421 signing primitives@adcp/sdk/signing/server— webhook + request verifiers (createWebhookVerifier,verifyRequestSignature,createExpressVerifier)@adcp/sdk/signing/client— outbound signing (signRequest,signWebhook,createSigningFetch)@adcp/sdk/testing— buyer-side storyboard runner (runStoryboard,comply,testAgent) and seller-side controller scaffold (createComplyController— see Get Test-Ready)@adcp/sdk/conformance— assertion + storyboard helpers for conformance harnesses@adcp/sdk/schemas— bundled AdCP JSON Schemas@adcp/sdk/types— TypeScript type definitions@adcp/sdk/types/v2-5— v2.5 type co-existence imports for cross-version callers
Python
Go
| Component | Import |
|---|---|
| Tool registration | adcp.AddTool(server, name, desc, handler) |
| HTTP server | adcp.Serve(createAgent) |
| Response builders | adcp.ProductsResponse(data), adcp.MediaBuyResponse(data), etc. |
| Test controller | adcp.RegisterTestController(server, store) |
| Skills | github.com/adcontextprotocol/adcp-go/skills |
CLI tools
The JavaScript and Python SDKs include command-line tools for testing and development. Both SDKs share the same positional shape:adcp <agent> [tool] [payload]. The first positional is an alias, a built-in (test-mcp, test-a2a), or a URL — protocol is auto-detected. Save aliases with --save-auth to avoid retyping.
JavaScript CLI
adcp storyboard run), conformance grading (adcp grade), and registry diagnostics. See --help for the full surface.
Python CLI
What’s next
- Build an agent — server-side L4 path. Skill files + coding agent.
- Build a caller — client-side L4 path. Install, call, handle responses, ingest reporting.
- Schemas — schema bundle, type generation, version pinning.
- Migrate from hand-rolled — already running an AdCP agent built before the SDKs covered much? Swap one layer at a time.