Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .changeset/fix-call-adcp-agent-schema-paths.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

Fix `skills/call-adcp-agent/SKILL.md` bundled-schema path references: replace hardcoded `dist/schemas/` paths (spec-repo source layout, wrong for all SDK consumers) with an ordered probe list (local SDK install → local spec-repo build → HTTP canonical URL at `https://adcontextprotocol.org/schemas/v3/bundled/`). Add underscore→hyphen translation note for tool names in filenames. Removes false claim that `npm run sync-schemas` exists across all SDKs.
13 changes: 9 additions & 4 deletions skills/call-adcp-agent/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type: cross-cutting

## Overview

AdCP (Ad Context Protocol) agents expose a fixed tool surface (`get_products`, `create_media_buy`, `get_signals`, …) over MCP or A2A. Tool names come from `get_adcp_capabilities`; exact request/response shapes live in the spec's bundled JSON Schemas at `dist/schemas/<adcp-version>/bundled/<protocol>/<tool>-{request,response}.json` (or via `get_schema` when the agent exposes it). This skill teaches the invariants that don't live cleanly in any schema: cross-tool patterns, async flow, error recovery.
AdCP (Ad Context Protocol) agents expose a fixed tool surface (`get_products`, `create_media_buy`, `get_signals`, …) over MCP or A2A. Tool names come from `get_adcp_capabilities`; exact request/response shapes are available via `get_schema` when the agent exposes it, or from the spec's bundled JSON Schemas at `https://adcontextprotocol.org/schemas/v3/bundled/<protocol>/<tool>-{request,response}.json`. This skill teaches the invariants that don't live cleanly in any schema: cross-tool patterns, async flow, error recovery.

## When to Use

Expand All @@ -25,7 +25,12 @@ Walk these in order on first contact:
1. **Agent card** (A2A) or **`tools/list`** (MCP): returns tool NAMES. AdCP MCP servers no longer publish per-tool parameter schemas in `tools/list` — everything shows `{type: 'object', properties: {}}`. Don't try to infer shape from here.
2. **`get_adcp_capabilities`**: returns supported protocols (`media_buy`, `signals`, `creative`, …), AdCP major versions, feature flags. Tells you WHICH tools this agent supports, not how to call them.
3. **`get_schema(tool_name)`** *(when the agent exposes it — pending standardization in [#3057](https://github.com/adcontextprotocol/adcp/issues/3057), not yet universal)*: returns the JSON Schema for a tool's request/response. Preferred over reading bundled schemas when available.
4. **Bundled schemas** (offline, authoritative): `dist/schemas/<adcp-version>/bundled/<protocol>/<tool>-request.json` and `-response.json`. The adcp main repo publishes these; SDKs sync them (`npm run sync-schemas` in `@adcp/client`, equivalents in other SDKs). Substitute your target AdCP major version in the path.
4. **Bundled schemas** (authoritative, no agent required): probe in order until one resolves —
1. Local SDK cache — path varies by SDK (e.g., `@adcp/client` caches at `schemas/cache/<semver>/bundled/<protocol>/<tool>-request.json`; check your SDK's README if this path doesn't exist)
2. Local spec-repo build: `dist/schemas/<semver>/bundled/<protocol>/<tool>-request.json`
3. HTTP (always available): `https://adcontextprotocol.org/schemas/v3/bundled/<protocol>/<tool>-request.json` — use the major alias matching `adcp_version` (`"3.x"` → `v3`)

Tool names use hyphens in filenames, not underscores: `create-media-buy-request.json` for `create_media_buy`. For local probes, `<semver>` is a full version string (e.g., `3.0.0`).

## Non-obvious rules every buyer must follow

Expand Down Expand Up @@ -244,12 +249,12 @@ Priority order:

1. Re-read the failure's `issues[]`. The pointer list plus this skill covers 80% of cases.
2. Call `get_schema(tool_name)` if the agent exposes it (see [#3057](https://github.com/adcontextprotocol/adcp/issues/3057) for the pending standard).
3. Read the bundled JSON Schema at `dist/schemas/<adcp-version>/bundled/<protocol>/<tool>-request.json`.
3. Fetch the bundled JSON Schema — probe in order (see Discovery chain step 4 for full probe sequence): local SDK cache, `dist/schemas/<semver>/bundled/<protocol>/<tool>-request.json` (spec-repo build), or `https://adcontextprotocol.org/schemas/v3/bundled/<protocol>/<tool>-request.json` (HTTP, always available). Tool names use hyphens in filenames (`create-media-buy-request.json` for `create_media_buy`).
4. Consult the per-protocol skill in this repo (`skills/adcp-media-buy/`, `skills/adcp-creative/`, …) for specialism-specific patterns.

## Related

- [Calling an agent (docs)](https://adcontextprotocol.org/docs/protocol/calling-an-agent) — human-readable narrative form of this skill
- `skills/adcp-media-buy/`, `skills/adcp-creative/`, `skills/adcp-signals/`, `skills/adcp-governance/`, `skills/adcp-si/`, `skills/adcp-brand/` — per-protocol task skills (layered on top of this one)
- `@adcp/client/skills/build-seller-agent/SKILL.md` — building agents on the other side of the call
- `dist/schemas/<adcp-version>/bundled/`canonical JSON Schemas (every tool, pinned to the AdCP version)
- [Bundled JSON Schemas](https://adcontextprotocol.org/schemas/v3/bundled/)fully dereferenced schemas for every tool, pinned to the AdCP version
Loading