Skip to content

Expose sync_catalogs through decisioning platform specialism advertisement #786

@bokelley

Description

@bokelley

Summary

adcp==5.6.0 includes the sync_catalogs MCP tool definition and SyncCatalogsRequest/response types, but the decisioning platform advertisement path does not currently expose it for any specialism.

In PlatformHandler.advertised_tools_for_instance(), tools are selected from SPECIALISM_TO_ADVERTISED_TOOLS. Current mappings include:

  • sales-catalog-driven -> media-buy lifecycle tools, but not sync_catalogs
  • no other specialism maps to sync_catalogs

The handler method currently falls back to the base ADCPHandler.sync_catalogs() not-supported implementation, so a platform cannot expose catalog discovery/sync through the normal DecisioningPlatform path the same way it can expose get_signals/activate_signal.

Why this matters

The AdCP docs/spec describe sync_catalogs as the task for catalog sync and discovery mode: omitting catalogs should return existing synced catalogs without modification. Catalog-driven sellers need this to let buyers discover existing account catalog state before sync_creatives / catalog-referenced media buys.

Expected SDK behavior

One of these would work:

  1. Add sync_catalogs to an appropriate specialism mapping, likely sales-catalog-driven, and add a PlatformHandler.sync_catalogs decisioning-platform dispatcher analogous to sync_audiences; or
  2. Add a dedicated catalog-sync specialism that advertises sync_catalogs and dispatches to DecisioningPlatform.sync_catalogs.

Observed in

  • package: adcp==5.6.0
  • adcp.server.mcp_tools.ADCP_TOOL_DEFINITIONS contains sync_catalogs
  • adcp.decisioning.handler.SPECIALISM_TO_ADVERTISED_TOOLS does not map any specialism to sync_catalogs
  • PlatformHandler.sync_catalogs resolves to the base not-supported method

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions