Hermes Agent for Meta Ads: connect Facebook and Instagram Ads in 3 steps, plus 10 prompts and 5 routines
Quick answer: Hermes Agent, Nous Research's open-source AI agent, can check and manage Meta Ads (Facebook and Instagram) once it's connected through AdPlug. Setup takes three steps: install AdPlug's Hermes plugin, add AdPlug's Meta Ads server with one command, and connect Meta Ads in AdPlug with a Facebook sign-in (no developer app or token). The scheduled checks on this page only read and report, and on a paid plan Hermes makes the changes you approve after AdPlug's preview, with anything new created paused.
I wrote the Meta skill in AdPlug's Hermes plugin the way I'd brief a paid social specialist: judge delivery by what should be running, creative by frequency and cost per result, and lead ads by what the leads become. I built AdPlug too, and I still want to see every Meta change before it happens, so that's how this setup works.

Hermes Agent can check your Meta Ads every morning and change nothing until you say yes.
Hermes keeps working after you've closed the chat, so the first thing to settle is what it can do to a Meta account while you're not looking (in this setup, nothing). The scheduled checks only read and anything new starts paused. Before any change, the plugin has Hermes show AdPlug's preview, and one line in Hermes' config makes it stop for your yes.
I can do Meta ads, I just don't enjoy the daily checks. So they're the jobs I'd hand Hermes: ads that should be running and aren't, a pixel gone quiet, creative wearing out (on Meta the creative does most of the targeting now).
Connecting Meta takes a Facebook sign-in, with no developer app to build and no token to copy.
Connect Hermes Agent to Meta Ads in 3 steps
You need Hermes Agent 0.21.6 or later and the Facebook profile you use in Ads Manager.
- Install AdPlug's Hermes plugin. It's 16 PPC skills, one of them for Meta, and no code (it's public on GitHub).
hermes plugins install adplug-app/adplug-hermes-plugin --enable - Add AdPlug's Meta Ads server and sign in. That's AdPlug's Meta Ads MCP: 10 tools that read the account and make 37 kinds of change.
hermes mcp add adplug-meta-ads --url https://api.adplug.app/mcp/meta-ads \ --auth oauth --connect-timeout 300Sign in to AdPlug in the tab that opens (or create a free account), click Approve and answer Y to enable the tools. The
--connect-timeout 300part gives you five minutes to do that.
Steps 1 and 2: the plugin installs, then Hermes finds AdPlug's 10 Meta Ads tools and saves the server. - Connect Meta Ads in AdPlug. On the Connections page, click Connect Meta Ads, sign in with Facebook and pick the ad accounts and Pages Hermes can use. That covers Facebook and Instagram. AdPlug keeps Meta's access token encrypted on its own servers, and it never passes through Hermes.
Type /reload-mcp and ask Hermes which Meta ad accounts it can see.
On a server or VPS with no browser, add the server to Hermes' config by hand, run hermes mcp login adplug-meta-ads and follow Hermes' OAuth over SSH guide.
Running Google, LinkedIn, Microsoft or Reddit Ads too? Add https://api.adplug.app/mcp as adplug instead, which carries all five (see Hermes Agent for marketing). Don't add both, or Hermes sees every Meta tool twice.
10 Meta Ads prompts I'd start with
Swap Acme for your client. Most of these read the client's brief, so first ask Hermes to use adplug:client-brief for Acme. It reads the website and ad accounts, then asks only what it couldn't find.
Start with a full account analysis
Once the brief's in, it's the first thing I'd ask on any Meta account. Hermes reads every campaign, ad set and ad, including the ones that should be running and aren't, and ranks the fixes by what each one is worth:
Analyse Acme's Meta Ads over the last 30 days at campaign, ad set and ad level: what's delivering, what isn't, what's wearing out and what's over target. Give me the top 5 fixes ranked by impact on the account, and what you'd do about each.

Creative fatigue and new ads
Which of Acme's Meta ads are wearing out, with frequency up, click-through rate down and cost per result up? Tell me which to replace first.
I'd add replacements as new ads in the same ad set, so old and new results stay apart:
Write new primary text and headlines for Acme's tired Meta ads from the brief's personas, each as a new ad in the same ad set. Show me the preview first.

Cost per result and the learning phase
Put the target in the brief, so Hermes doesn't guess it:
Which of Acme's Meta ad sets are over target cost per result, or under target ROAS, and have spent enough to judge? Say what you'd pause or where you'd move the budget, and show me the preview first.
An ad set needs about 50 optimisation events in the 7 days after its last significant edit to leave learning (Meta's guidance):
Which of Acme's Meta ad sets are stuck in learning or Learning limited, and why: too little budget, too many ad sets, an event that rarely fires or edits that reset it? Tell me what you'd change.
A new campaign, built paused
Pick the objective with care, because Meta locks it once the campaign exists:
Build a new Meta prospecting campaign for Acme from the brief, all paused. Preview the campaign, then the ad sets, then the ads, and wait for my yes at each step.
Lead ads, judged by what the leads become
A cheap cost per lead can hide a lot of junk. AdPlug reads Meta's lead forms, not the leads, so add AdPlug's HubSpot MCP (paid plans) and make sure each Meta lead reaches HubSpot tagged with its campaign and ad set, or there's nothing to match on:
hermes mcp add adplug-hubspot --url https://api.adplug.app/mcp/hubspot \
--auth oauth --connect-timeout 300Which of Acme's Meta ad sets bring leads that become qualified leads and deals in HubSpot, and which bring junk? Show me cost per qualified lead by ad set.
Audiences and lookalikes
Under Advantage+ audience, I'd start with customer lists, website visitors and lookalikes before hand-building interest stacks:
Which audiences is Acme missing on Meta? Suggest website, customer list and lookalike audiences from the brief, and preview them before you create anything.
What competitors run in the Ad Library
Meta's Ad Library API only returns commercial ads that reached the EU or the UK (so a US-only competitor looks suspiciously quiet), and Meta asks you for a one-off identity check first (Hermes gives you the link):
What are Acme's competitors running on Meta? Check the Ad Library for the competitors in the brief: their offers, the angles they test and the ads that have run longest.
The monthly client report
A PDF for you to check and send:
Build a client-ready PDF report on Acme's Meta Ads last month: a short summary, results and cost per result against target and the month before, the insights behind them, and what changes next.
That's the 10. Anything you'd ask every week works better as a routine.
5 Meta Ads routines that only read
Hermes has a built-in scheduler it calls cron, and it sends each run to Telegram, Slack or Discord. Every run starts fresh, so each of these 5 routines names the client, and each ends with “Change nothing”.
1. Morning check:
Every weekday at 8am, check Acme's Meta Ads: spend and results against a normal day, ads that should be running and aren't, ad sets not spending their budget, and pixels that stopped firing. Message me only what needs me. If nothing does, say so. Change nothing.
A quiet morning still sends a message (“If nothing does, say so”), so silence means the job didn't run.
2. Monday creative and cost check:
Every Monday at 9am, review Acme's Meta Ads: last week against the week before, ads wearing out, ad sets over target cost per result or stuck in learning, and what changed in the activity log. Tell me what you'd change next. Change nothing.
3. Monthly client report:
At 9am on the 1st of each month, build Acme's client-ready PDF report on last month's Meta Ads: a short summary, results against target and the month before, the insights behind them, and what changes next. Change nothing.
4. Monthly competitor sweep:
At 9am on the 15th of each month, check the Meta Ad Library for the competitors in Acme's brief: ads they started in the last month, their offers and what they seem to be testing. Say which show nothing. Change nothing.
5. Quarterly audit:
At 10am on the 1st of January, April, July and October, audit Acme's Meta Ads against the brief: tracking, structure, audiences, creative and budgets, ranked by severity, plus the growth opportunities that matter most. Change nothing.
Paste a routine into a Hermes chat, or create it in the terminal:
hermes cron create "0 8 * * 1-5" "Run the morning check on Acme's Meta Ads: spend and results against a normal day, ads that should be running and aren't, ad sets not spending their budget, and pixels that stopped firing. Message me only what needs me. If nothing does, say so. Change nothing." --skill adplug:ppc-agent --skill adplug:performance-review --name "Acme Meta morning check" --deliver telegramWithout --deliver telegram, the job writes to local files instead of messaging you. Hermes' gateway runs the jobs (hermes gateway install, then hermes gateway start), and each run uses AdPlug requests. The other routines, including one morning digest across every client, are in the 9 Hermes routines for PPC.
Hermes Agent for Meta Ads in an agency
One Facebook sign-in reaches every ad account you pick, so an agency connects Meta once, not once per client. Every AdPlug plan includes unlimited ad accounts. Each client's brief names their ad accounts, and every skill reads it first.
On Max and Agency, the team owner sets each teammate to View only or Can edit on Meta, and AdPlug enforces it when each person signs Hermes in as themselves. Every call lands in AdPlug's Usage and Audit Log, and the rest of the agency setup is in Hermes Agent for marketing.
How Meta changes stay safe in Hermes Agent
An extra zero on a daily budget is the Meta mistake I'd least like to explain to a client. Meta accepts it like any other budget and starts spending.
- Everything new starts paused. Switching it on is a change of its own, so the worst a bad build can do is sit there looking unfinished.
- A preview, then your yes. On an edit, AdPlug's preview shows the budget before and after with the change in per cent, so $50 to $500 reads +900%. The plugin's skills also have Hermes spell out the cost per day and per month. That's where an extra zero shows up.
- Meta checks it too. Campaign, ad set and most ad previews run Meta's own dry run, so a change Meta would reject fails before anything moves.
- Paced to Meta's limit. Meta currently allows about 20 changes per ad account every five minutes, and AdPlug tells Hermes to slow down past 75% of that.
Then make your yes a hard stop. Add trust: untrusted to the server in ~/.hermes/config.yaml and type /reload-mcp:
mcp_servers:
adplug-meta-ads:
url: https://api.adplug.app/mcp/meta-ads
auth: oauth
trust: untrustedReads and previews still run freely, because AdPlug marks them read-only. Before a change, Hermes says MCP server 'adplug-meta-ads' is asking and offers [o]nce | [s]ession | [a]lways | [d]eny. Choose once. With nobody there to answer, as in a scheduled run, the change doesn't happen.
Don't use /yolo or approvals.mode: off, because both skip the question. The full list is in why I'd trust Hermes Agent with client ad accounts.
What you still do yourself in Meta
- Accept Meta's terms. No API can accept the Custom Audience or Lead Ads terms, so Hermes gives you Meta's link.
- Link Instagram to the Page. Without it, ads run on Facebook only.
- Switch things on, if you'd rather. Hermes can turn an ad on after a preview and your yes. I'd still take that click myself on a client account.
What Hermes Agent and AdPlug cost for Meta Ads
Hermes Agent is free and open source, and you pay your model provider.
AdPlug's free plan covers one ad platform, which can be Meta Ads, and it's view only. Pro is $29 a month with 5,000 AI requests and 200 AI edits, Max is $89 with unlimited requests and edits, and Agency is priced per seat. Pro and Max start with a 7-day free trial. A daily morning check across clients needs a paid plan, because every run uses AdPlug requests and the free plan has 50 a month after its first 5 days.
Prices checked on the pricing page on 10 November 2026.