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:
- 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
- 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
Summary
adcp==5.6.0includes thesync_catalogsMCP tool definition andSyncCatalogsRequest/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 fromSPECIALISM_TO_ADVERTISED_TOOLS. Current mappings include:sales-catalog-driven-> media-buy lifecycle tools, but notsync_catalogssync_catalogsThe handler method currently falls back to the base
ADCPHandler.sync_catalogs()not-supported implementation, so a platform cannot expose catalog discovery/sync through the normalDecisioningPlatformpath the same way it can exposeget_signals/activate_signal.Why this matters
The AdCP docs/spec describe
sync_catalogsas the task for catalog sync and discovery mode: omittingcatalogsshould return existing synced catalogs without modification. Catalog-driven sellers need this to let buyers discover existing account catalog state beforesync_creatives/ catalog-referenced media buys.Expected SDK behavior
One of these would work:
sync_catalogsto an appropriate specialism mapping, likelysales-catalog-driven, and add aPlatformHandler.sync_catalogsdecisioning-platform dispatcher analogous tosync_audiences; orsync_catalogsand dispatches toDecisioningPlatform.sync_catalogs.Observed in
adcp==5.6.0adcp.server.mcp_tools.ADCP_TOOL_DEFINITIONScontainssync_catalogsadcp.decisioning.handler.SPECIALISM_TO_ADVERTISED_TOOLSdoes not map any specialism tosync_catalogsPlatformHandler.sync_catalogsresolves to the base not-supported method