Hermes for Meta Ads: Catalog Automation Playbook
Use Composio Hermes with Meta Ads MCP to automate Advantage+ catalog refreshes, Product Set Optimization, and feed health checks, prompts and patterns.

Meta’s MCP server gave shopping teams catalog control from a Claude conversation. Hermes turns that into a 24/7 agent that monitors Advantage+ catalogs, rebalances Product Sets when performance shifts, and surfaces feed problems before they suppress impressions. This is the playbook for the prompts that have actually paid off.
Why Meta + Hermes is a particularly good pairing
Three structural reasons Meta catalog work suits Hermes better than Google or TikTok:
1. Meta’s catalog cluster is the heaviest of any MCP. Ten tools dedicated to catalogs, product sets, and feeds. There’s enough surface area that the value of an always-on agent compounds.
2. Advantage+ rewards catalog freshness. The algorithm penalises stale catalogs more aggressively than Google Shopping does. A 24-hour-old availability flag costs ROAS in a way that’s expensive to fix manually.
3. Product Set Optimization (March 2026) needs ongoing membership management. SKU-level budget control means Product Sets become the unit of campaign performance. Sets that drift in membership (top performers leaving, new SKUs not added) lose value fast. Hermes maintaining membership on a schedule is a natural fit.
Setup
Step 1: Install and init Hermes
npm install -g @composio/hermes
hermes init
Step 2: Connect Meta via Composio Connect
composio connect meta-ads
Walk through the Meta Business Manager OAuth in the browser. Required scopes: ads_management, business_management, catalog_management. The connection covers every ad account and catalog under the authorized Business Manager.
Step 3: Register Meta Ads MCP as a Hermes skill
hermes skill add meta-ads-mcp
Verify the skill catalog includes Meta tools:
hermes skills list | grep meta
You should see meta-ads-mcp.catalog_list, catalog_product_set_create, product_feed_run_list, and so on through the 29 tools.
Step 4: First prompt, read-only catalog health check
Create ~/.hermes/prompts/meta_catalog_health.md:
---
name: meta_catalog_health
schedule: "0 */4 * * *" # every 4 hours
skills: [meta-ads-mcp]
---
Every 4 hours, run this:
1. Use meta-ads-mcp.catalog_list to enumerate catalogs under business 1234567890.
2. For each catalog, run product_feed_list and product_feed_run_list to get the most recent feed run status.
3. Identify any feed where:
- last run status is 'failed' or 'error'
- last run completed more than 36 hours ago
- last run had > 5% error rate among processed items
4. Write findings to ~/.hermes/logs/meta-catalog-health-$(date +%Y%m%d-%H).md.
5. If any failures found, also write to ~/.hermes/alerts/meta-feed-issues.md (used by my Slack monitor).
Schedule:
hermes schedule meta_catalog_health
This is a no-write prompt; it’s a safe first execution to validate the auth and Meta MCP connection.
Useful prompt patterns once the basics work
Pattern 1: Advantage+ Product Set rebalancing
---
name: aplus_product_set_rebalance
schedule: "0 7 * * *" # daily at 07:00
skills: [meta-ads-mcp]
max_cost: 2.00 # USD-equivalent token budget
---
Daily at 07:00:
1. From meta-ads-mcp, pull 14-day Advantage+ Shopping performance grouped by product_id for advertiser 9876543210.
2. Compute ROAS per product. Bucket products into quartiles: top (Q1), upper-mid (Q2), lower-mid (Q3), bottom (Q4).
3. Read the current membership of these Product Sets in catalog 555666777:
- aplus_top_performers
- aplus_mid_performers
- aplus_low_performers
4. Compute the diff between current membership and the new quartile assignments.
5. DO NOT write changes directly. Instead, write the proposed adds/removes to ~/.hermes/review-queue/aplus-rebalance-$(date +%Y%m%d).md.
6. Send the diff to Slack channel #ads-review.
The agent doesn’t execute the membership changes, it proposes them. A human approves the diff in the morning; an approve-only prompt applies the changes.
Pattern 2: Out-of-stock removal
This is safer to auto-execute because the risk of a wrong removal is small (and reversible).
---
name: meta_oos_removal
schedule: "*/30 * * * *" # every 30 minutes
skills: [meta-ads-mcp, aishoppingfeeds-mcp]
---
Every 30 minutes:
1. From aishoppingfeeds-mcp, get the list of SKUs currently marked out_of_stock in the master catalog.
2. From meta-ads-mcp.catalog_product_list, get current Meta availability for the same SKUs in catalog 555666777.
3. For any SKU that's out_of_stock in master but still in_stock in Meta, call catalog_product_create_or_update to set availability = out_of_stock.
4. Log each change to ~/.hermes/logs/oos-sync-$(date +%Y%m%d).md.
This pattern works because (a) the source of truth is unambiguous, (b) the worst-case error is “we showed a product as out of stock when it was in stock”, recoverable on the next sync, (c) the alternative is letting Meta serve impressions for products buyers can’t purchase, which is more expensive.
Pattern 3: New-SKU onboarding to Advantage+
---
name: new_sku_aplus_onboarding
schedule: "0 9 * * *" # daily at 09:00
skills: [meta-ads-mcp, aishoppingfeeds-mcp]
---
Daily at 09:00:
1. From aishoppingfeeds-mcp, identify SKUs added to the master catalog in the last 24 hours.
2. From meta-ads-mcp, confirm those SKUs have synced into catalog 555666777.
3. For each new SKU, check it has a complete attribute set: title >= 50 chars, valid image_link, brand, price.
4. SKUs with complete attributes: add to Product Set 'aplus_evaluation' (where they get evaluated against early-performance triggers).
5. SKUs with incomplete attributes: queue to ~/.hermes/review-queue/new-sku-incomplete-$(date +%Y%m%d).md for catalog team to fix.
This is the prompt that delivers the most leverage. New SKU onboarding to Advantage+ used to be a weekly batch process. Hermes makes it a continuous, sub-24-hour cycle.
Pairing with a feed manager
The Meta MCP plus Hermes covers the Meta side. It doesn’t cover source-of-truth catalog management, the master record that flows into Meta, Google, TikTok, and other channels.
That’s where a feed manager (AI Shopping Feeds or equivalent) sits. With AI Shopping Feeds MCP also registered in Hermes:
hermes skill add aishoppingfeeds-mcp
The cross-platform prompts become natural:
“Every morning, compare the master catalog to the Meta catalog and the Google Merchant Center catalog. Flag any SKUs where the three sources disagree on price or availability.”
Hermes runs the comparison across three MCPs (AI Shopping Feeds for master, Meta Ads MCP for Meta, Google Ads + a Merchant Center bridge for Google) and produces a daily reconciliation report. This is one of the highest-leverage prompts we’ve seen teams write.
Composio Connect vs raw MCP for Meta
For Meta specifically, the case for Composio Connect is weaker than for Google or Microsoft, because Meta’s MCP is already hosted (no token rotation to manage) and uses standard Business Manager OAuth.
Use raw Meta MCP if you want fewer dependencies. Use Composio Connect if you’re also wiring multiple other platforms, the consistency across platforms is worth the extra layer.
Operational discipline
A few rules that keep autonomous Meta catalog automation safe:
Write quotas per prompt. Set a max_writes_per_run in your prompt (or check via the Hermes guard). A prompt that suddenly tries to modify 50,000 product entries is almost certainly a bug.
Diff-then-apply for set membership. Always compute the diff first, write it to a review queue, apply on next execution. Direct membership writes have caused outages on other people’s accounts.
Don’t auto-pause campaigns. Hermes can detect under-performing campaigns; the pause decision should be human. The exception is well-defined safety pauses (spend anomaly > 200% of budget in 15 minutes), those can auto-pause with explicit human alerting.
Audit log retention. Keep hermes audit outputs for at least 90 days. When something goes wrong (a competitor’s promotion ate your CPM, a feed source changed schema overnight), the audit log is what tells you whether the agent contributed or not.
What this replaces
Three things, all of which were daily-or-weekly manual work:
- Morning Commerce Manager review for feed run status and disapprovals
- Weekly Advantage+ Product Set rebalancing against shifted performance
- New-SKU onboarding to Advantage+ campaigns (used to lag by days)
What it doesn’t replace: campaign strategy, creative direction, audience segmentation logic. Those are still human decisions; Hermes handles the execution mechanics.
Sources
- Composio Hermes documentation
- Composio toolkit, Meta Ads + Hermes
- Meta AI Connectors, product page
- Related reads: Meta Ads MCP for catalog operations · Hermes agent + Google Ads MCP
Why wait? Try it free today.
Stop managing feeds manually. Start optimising with AI in 30 seconds.
- 100% free forever, no credit card required
- 1 brand, 1 feed, 100,000 products per feed
- Full AI Product Optimisation, Rule Engine, and 200+ channel exports
- Pay only for AI credits when you need them