Skip to main content

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.

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.

Coverage matrix

What “shipped” means at each layer is the L0–L3 checklist. Last updated: 2026-05-03.
SDKProduction GABeta / devL0L1L2L3
@adcp/sdk (TS)6.9.0
adcp (Python)3.x4.x⚠️⚠️⚠️
adcp-gov1.x⚠️
Legend: ✅ shipped · ⚠️ partial / in flight · ❌ not yet covered. Production GA is the line you should pin to today. Beta / dev is what’s in flight on the next major. @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

npm version
npm install @adcp/sdk
import { createSingleAgentClient } from '@adcp/sdk';

const client = createSingleAgentClient({
  id: 'sales',
  name: 'Sales agent',
  agent_uri: 'https://sales.example.com/mcp',
  protocol: 'mcp',
});

const products = await client.getProducts({
  brief: 'Video campaign for pet owners',
});
Resources: Package exports:
  • @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

PyPI version
pip install adcp
from adcp import ADCPClient, AgentConfig, Protocol, GetProductsRequest

client = ADCPClient(AgentConfig(
    id='sales',
    agent_uri='https://sales.example.com/mcp',
    protocol=Protocol.MCP,
))

result = await client.get_products(
    GetProductsRequest(brief='Video campaign for pet owners'),
)
Resources:

Go

go get github.com/adcontextprotocol/adcp-go/adcp
The Go SDK provides typed tool registration, response builders, and a compliance test controller. Types are generated from canonical AdCP schemas.
ComponentImport
Tool registrationadcp.AddTool(server, name, desc, handler)
HTTP serveradcp.Serve(createAgent)
Response buildersadcp.ProductsResponse(data), adcp.MediaBuyResponse(data), etc.
Test controlleradcp.RegisterTestController(server, store)
Skillsgithub.com/adcontextprotocol/adcp-go/skills
See the Go SDK README for the full API reference. Resources:

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

npx @adcp/sdk@latest --help
npx @adcp/sdk@latest --save-auth my-agent https://sales.example.com/mcp
npx @adcp/sdk@latest my-agent get_products '{"brief":"CTV campaign"}'
# or against the built-in public test agent:
npx @adcp/sdk@latest test-mcp get_products '{"brief":"CTV campaign"}'
The CLI also drives storyboards (adcp storyboard run), conformance grading (adcp grade), and registry diagnostics. See --help for the full surface.

Python CLI

uvx adcp --help
uvx adcp --save-auth my-agent https://sales.example.com/mcp
uvx adcp my-agent get_products '{"brief":"CTV campaign"}'

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.