From adcp-client
Executes AdCP Brand Protocol tasks with brand agents: get brand identities/guidelines, search licensable rights (talent/IP/content), acquire rights for campaigns, manage grants. Use for brand lookups, licensing, rights management.
npx claudepluginhub adcontextprotocol/adcp-client --plugin adcp-clientThis skill uses the workspace's default tool permissions.
This skill enables you to execute the AdCP Brand Protocol with brand agents. The Brand Protocol provides access to brand identity, creative guidelines, and licensable rights (talent, IP, content).
Researches brands from URL or description to generate Brand DNA docs analyzing identity, visuals, typography, colors, photography, packaging, and ad styles. Saves to brands/{brand}/brand-dna.md.
Generates user-level brand guidelines skill through phased workflow: ingest assets like websites/docs/images, interactive discovery, synthesize identity, output SKILL.md for enforcement. Activates on brand queries.
Provides brand identity guidance for voice definition, visual standards, messaging frameworks, asset management, consistency audits, style guides, color palettes, and typography. Includes Node scripts for design token sync to CSS, asset validation, and prompt context injection.
Share bugs, ideas, or general feedback.
This skill enables you to execute the AdCP Brand Protocol with brand agents. The Brand Protocol provides access to brand identity, creative guidelines, and licensable rights (talent, IP, content).
Buyer-side basics — idempotency replay,
oneOfvariants, asyncstatus:'submitted'polling, error recovery fromadcp_error.issues[]— live inskills/call-adcp-agent/SKILL.md. This skill covers per-task semantics only.
The Brand Protocol provides 4 standardized tasks:
| Task | Purpose | Response Time |
|---|---|---|
get_brand_identity | Get brand identity and guidelines | ~1-3s |
get_rights | Search licensable rights | ~1-5s |
acquire_rights | Acquire rights for a campaign | ~1-10s |
update_rights | Modify an existing grant | ~1-5s |
get_brand_identity with brand domain and optional field filterget_rights with natural language query and use typesacquire_rights with selected pricing option and campaign detailsupdate_rights to extend, adjust caps, or pause/resumeGet brand identity data from a brand agent.
Request:
{
"brand_id": "athlete-jane-doe",
"fields": ["description", "logos", "colors", "tone"],
"use_case": "creative_production",
"authorized": true
}
Key fields:
brand_id (string, required): Brand identifier within the agent's rosterfields (array, optional): Sections to include — description, industry, keller_type, logos, colors, fonts, visual_guidelines, tone, tagline, voice_synthesis, assets, rights. Omit for all.use_case (string, optional): Intended use — endorsement, voice_synthesis, likeness, creative_production, media_planningauthorized (boolean, optional): Sandbox only — simulate authorized access to see protected fields. Real agents use OAuth. Default false.Response contains:
brand: Brand identity object with requested fieldsdescription, industry, logos (public subset)colors, fonts, tone, voice_synthesis, visual_guidelines, full assetsSearch for licensable rights (talent, IP, content) from a brand agent.
Request:
{
"query": "Dutch athlete for restaurant brand in Amsterdam, budget 400 EUR/month",
"uses": ["likeness", "endorsement"],
"buyer_brand": {
"domain": "restaurant.nl"
},
"countries": ["NL"],
"include_excluded": false
}
Key fields:
query (string, required): Natural language description of desired rightsuses (array, required): Rights uses — likeness, voice, name, endorsementbuyer_brand (object, optional): Buyer brand for compatibility filtering — { domain, brand_id }countries (array, optional): Countries where rights are needed (ISO 3166-1 alpha-2)brand_id (string, optional): Search within a specific brand onlyinclude_excluded (boolean, optional): Include filtered-out results with reasons. Default false.Response contains:
rights: Array of matching rights offerings with:
rights_id: Use in acquire_rightsbrand_id, name, description: Who/what the rights coveruses: Available use typespricing_options: Array with pricing_option_id, price, currency, periodavailability: Geographic and temporal restrictionsexclusions: Any brand/category conflictsAcquire rights from a brand agent for a campaign.
Request:
{
"rights_id": "rights_jane_doe_endorsement",
"pricing_option_id": "monthly_standard",
"buyer": {
"domain": "restaurant.nl"
},
"campaign": {
"description": "Social media campaign featuring athlete endorsement for Amsterdam restaurant launch",
"uses": ["likeness", "endorsement"],
"countries": ["NL"],
"estimated_impressions": 500000,
"start_date": "2025-03-01",
"end_date": "2025-06-30"
}
}
Key fields:
rights_id (string, required): From get_rights responsepricing_option_id (string, required): Selected pricing optionbuyer (object, required): Buyer brand identity — { domain, brand_id }campaign (object, required): Campaign details for rights clearance
description (string, required): How the rights will be useduses (array, required): Rights uses for this campaigncountries (array, optional): Campaign countriesestimated_impressions (integer, optional): Estimated total impressionsstart_date, end_date (string, optional): Campaign dates (YYYY-MM-DD)Response contains:
status: acquired, pending_approval, or rejectedrights_grant_id: Grant identifier (if acquired)generation_credentials: Credentials for AI generation (voice synthesis, likeness, etc.)rejection_reason: Why the request was rejected (category conflict, exclusivity, etc.)Update an existing rights grant — extend dates, adjust impression caps, or pause/resume.
Request:
{
"rights_id": "grant_abc123",
"end_date": "2025-09-30",
"impression_cap": 1000000,
"paused": false
}
Key fields:
rights_id (string, required): Rights grant identifier from acquire_rightsend_date (string, optional): New end date (must be >= current end date)impression_cap (number, optional): New impression cap (must be >= current)paused (boolean, optional): Pause or resume the grantBrand agents distinguish between public and protected data:
likeness: Use of a person's visual likeness (photos, AI-generated images)voice: Voice synthesis or audio recording rightsname: Use of a person's name in advertisingendorsement: Endorsement/testimonial rightsacquire_rights checks:
Results: acquired (immediate), pending_approval (human review), or rejected (with reason).
Common error codes:
BRAND_NOT_FOUND: Invalid brand_idRIGHTS_NOT_FOUND: Invalid rights_idPRICING_OPTION_NOT_FOUND: Invalid pricing_option_idCATEGORY_CONFLICT: Buyer brand conflicts with existing agreementsGEOGRAPHIC_RESTRICTION: Rights not available in requested countriesAUTHORIZATION_REQUIRED: Protected fields require OAuth