From adcp-client
Interact with AdCP advertising agents via MCP/A2A protocols: call tools (get_products, create_media_buy), discover capabilities, run compliance tests, query registry, manage aliases, debug responses. Requires @adcp/sdk (npm).
npx claudepluginhub adcontextprotocol/adcp-client --plugin adcp-clientThis skill is limited to using the following tools:
Use `adcp` (or `npx @adcp/sdk@latest`) to interact with AdCP advertising agents, run compliance tests, and query the AdCP registry.
Enforces wire-level invariants for AdCP buyer calls: idempotency_key semantics, account oneOf variants, async status:submitted+task_id polling, adcp_error recovery. Use before per-protocol AdCP skills like adcp-media-buy.
Automates Adrapid ad operations via Composio toolkit and Rube MCP tools like RUBE_SEARCH_TOOLS, RUBE_MANAGE_CONNECTIONS, and RUBE_MULTI_EXECUTE_TOOL. Use after connecting Adrapid.
Creates and reviews Meta/Facebook/Instagram ads via full pipeline, copy/images only, creative variations, video scripts, compliance checks, or ad account analysis using business repo references like offer.md and audience.md.
Share bugs, ideas, or general feedback.
Use adcp (or npx @adcp/sdk@latest) to interact with AdCP advertising agents, run compliance tests, and query the AdCP registry.
Built-in test agents work immediately with no setup:
# Try AdCP right now
adcp test-mcp # List tools on the MCP test agent
adcp test-mcp get_products '{"brief":"coffee brands"}' # Call a tool
adcp test-a2a get_products '{"brief":"coffee brands"}' # Same thing over A2A
# Run compliance tests
adcp test test-mcp discovery # Test tool discovery
adcp test test-mcp full_sales_flow # Full media buy lifecycle
Built-in aliases (no setup needed):
test-mcp — Public test agent via MCP (pre-authenticated)test-a2a — Public test agent via A2A (pre-authenticated)test-no-auth — MCP without auth (demonstrates auth errors)test-a2a-no-auth — A2A without authcreative — Official creative agent (MCP, requires --auth or ADCP_AUTH_TOKEN)adcp <alias|url> [tool-name] [payload] [options]
adcp https://agent.example.com
adcp my-alias
adcp https://agent.example.com get_products '{"brief":"coffee brands"}'
adcp https://agent.example.com create_media_buy @payload.json
echo '{"brief":"travel"}' | adcp https://agent.example.com get_products -
adcp my-alias get_products '{}' # 1. Saved config
adcp https://agent.example.com get_products '{}' --auth $TOKEN # 2. Flag
export ADCP_AUTH_TOKEN=your-token && adcp https://agent.example.com get_products '{}' # 3. Env
adcp https://agent.example.com/mcp --oauth # 4. OAuth (MCP only)
adcp test-mcp get_products '{"brief":"test"}' # Pretty print (default)
adcp test-mcp get_products '{"brief":"test"}' --json # Raw JSON for scripting
adcp test-mcp get_products '{"brief":"test"}' --debug # Connection diagnostics
adcp https://agent.example.com get_products '{}' --protocol mcp
adcp https://agent.example.com get_products '{}' --protocol a2a
Three testing commands, each for a different purpose:
comply — Full compliance assessment. "Does my agent work?" Runs all applicable storyboards, reports by track.storyboard — Debug a specific flow step by step. Stateless, context-in/context-out.test — Individual legacy scenarios. Use comply for new work.The primary way to test an AdCP agent. Runs storyboard-driven assessments grouped by capability track.
adcp comply <agent> [options]
adcp comply my-agent --json
Parse the failures array for actionable items — each failure includes storyboard_id, step_id, and a fix_command you can run directly.
Debug specific failures with storyboard step:
adcp storyboard step my-agent media_buy_seller sync_accounts --json
--storyboards to re-test only the relevant storyboard:adcp comply my-agent --storyboards media_buy_seller --json
| Flag | When to use | Example |
|---|---|---|
--storyboards IDS | You know exactly which storyboards to run | --storyboards media_buy_seller,error_compliance |
--platform-type TYPE | You know your platform type and want curated tests + coherence checking | --platform-type retail_media |
--tracks TRACKS | You want to test specific capability areas | --tracks media_buy,products |
| (none) | Run everything applicable to your agent's tools | adcp comply my-agent |
When --platform-type and --tracks are both set, --tracks controls which storyboards run, and --platform-type adds coherence checking.
--json — Structured JSON output (recommended for agents)--platform-type TYPE — Declare platform type for curated storyboards + coherence--storyboards IDS — Comma-separated storyboard IDs (highest priority)--tracks TRACKS — Comma-separated tracks to test--list-platform-types — Show available platform types--debug — Verbose logging--dry-run — Preview steps without executingThe --json output includes a failures array for quick iteration:
{
"overall_status": "partial",
"storyboards_executed": ["capability_discovery", "media_buy_seller"],
"failures": [
{
"track": "media_buy",
"storyboard_id": "media_buy_seller",
"step_id": "sync_accounts",
"step_title": "Establish account relationship",
"error": "Unknown tool: sync_accounts",
"expected": "Return the account with account_id, status, ...",
"fix_command": "adcp storyboard step <agent> media_buy_seller sync_accounts --json"
}
],
"summary": { "headline": "1 passing, 3 partial" },
"tracks": [ ... ]
}
Explore and debug individual storyboard flows.
adcp storyboard list [--platform-type TYPE] [--json] # List storyboards
adcp storyboard show <id> [--json] # Show structure and narratives
adcp storyboard run <agent> <id> [options] # Run full storyboard
adcp storyboard step <agent> <id> <step_id> [options] # Run single step
Each step returns context and a preview of the next step:
# Run step 1
adcp storyboard step my-agent media_buy_seller sync_accounts --json > step1.json
# Feed context to step 2
adcp storyboard step my-agent media_buy_seller get_products_brief \
--context @step1_context.json --json
The --context flag accepts inline JSON or @file.json (read from file).
--context JSON or --context @file.json — Pass state from previous steps--request JSON or --request @file.json — Override sample_request--json — Structured outputIndividual scenario testing. 24 built-in scenarios.
adcp test <agent> [scenario] [options]
adcp test --list-scenarios # List all scenarios
| Scenario | What it tests |
|---|---|
health_check | Basic connectivity |
discovery | get_products, list_creative_formats |
full_sales_flow | Full lifecycle: discovery, create, update, delivery |
signals_flow | Signals: get_signals, activate |
capability_discovery | v3: get_adcp_capabilities |
Run adcp test --list-scenarios for all 24 with descriptions.
--json — Machine-readable output for CI--debug — Verbose logging--protocol mcp|a2a — Force protocol--dry-run — Preview steps without executing--brief "text" — Custom brief for product discovery testsLook up brands, properties, agents, and publishers in the AdCP registry.
adcp registry <command> [args] [options]
adcp registry brand nike.com
adcp registry brands nike.com adidas.com --json
adcp registry property nytimes.com
adcp registry enrich-brand nike.com
adcp registry discover https://agent.example.com
adcp registry validate nytimes.com
adcp registry validate-publisher nytimes.com
adcp registry lookup nytimes.com
adcp registry check-auth https://agent.com domain nytimes.com
adcp registry agents --type sales --health
adcp registry search nike --json
adcp registry publishers
adcp registry stats
adcp registry save-brand acme.com "Acme Corp" --auth $KEY
adcp registry save-property example.com https://agent.com --auth $KEY
adcp --save-auth prod https://prod-agent.com # Interactive setup
adcp --save-auth prod https://agent.com --auth $TOKEN # With token
adcp --save-auth prod https://agent.com --no-auth # No auth
adcp --save-auth prod https://agent.com/mcp --oauth # OAuth (MCP only)
adcp --list-agents
adcp --remove-agent prod
adcp --show-config
Config stored at ~/.adcp/config.json.
For long-running operations (e.g. create_media_buy with human-in-the-loop approval):
adcp https://agent.example.com create_media_buy @payload.json --auth $TOKEN --wait
adcp http://localhost:3000/mcp create_media_buy @payload.json --wait --local
--wait — Start webhook listener, wait for async response--local — Local webhook without ngrok (for localhost agents)--timeout MS — Webhook timeout (default: 300000 = 5 min)Remote --wait requires ngrok: brew install ngrok
0 — Success1 — Network or JSON error2 — Invalid arguments3 — Agent error (auth failure, task failed, webhook timeout)which adcp 2>/dev/null && echo "installed" || echo "use npx @adcp/sdk@latest"
If not installed, prefix all commands with npx @adcp/sdk@latest. Requires Node.js 18+.
test-mcpadcp <agent> with no tool nameadcp comply <agent> --jsonadcp storyboard step <agent> <storyboard_id> <step_id> --jsonadcp test <agent> [scenario] (legacy)adcp registry <command>adcp <agent> <tool> '<payload>'--protocol mcp then --protocol a2a, diff resultsdocs/guides/BUILD-AN-AGENT.md for server setup, and storyboards/ for expected tool call sequences. Use docs/llms.txt for the protocol overview.test-mcp and test-a2a have auth included — use for demoscreative alias has no auth bundled — user must provide --auth or ADCP_AUTH_TOKENadcp --list-agents--auth $TOKEN flag or ADCP_AUTH_TOKEN env var--oauth for MCP agents using OAuth (opens browser, saves tokens to alias)--json when piping, parsing, or running in CI--debug when troubleshooting connection or protocol issues--debug--debug, verify agent is reachable--json output, parse and summarize the key fields for the user