← Back to blog

September 30, 2026 · 11 min read

How to build a Claude agent for competitor ad research

Wire an ad library MCP server into Claude and your agent can search live competitor ads across Meta, Google, TikTok and LinkedIn. Here is the setup, the prompts that work, and an honest verdict.

How to build a Claude agent for competitor ad research

A Claude agent for competitor ad research is Claude connected to an ad library MCP server, so it can call tools like search_meta_ads and read live competitor creatives instead of guessing from training data. Add the server to Claude Desktop, Claude Code, or Claude Web, approve it, then prompt against real ad records.

Most teams already use Claude for ad research. What they get back is usually a summary of what the model remembers about a category, not what a competitor shipped this week. The difference between those two things is whether the model has a tool in scope that can reach a live ad library.

What does a Claude agent for competitor ad research actually do?

Three jobs, in order. It resolves the advertiser you mean to a real page or account id, so you are looking at the right company rather than a reseller whose copy happens to mention the brand. It pulls the creatives that advertiser is running, with copy, format, call to action and delivery window attached. Then it compares those creatives against your own or against a second competitor and writes up what changed.

Claude is not doing anything exotic here. The reasoning was never the weak part. What it lacked was a way to ask a database a question mid-task, which is exactly what the Model Context Protocol provides. MCP is an open standard that lets an assistant call external tools, and the official MCP specification release of 2026-07-28 reports close to half a billion SDK downloads a month across its Tier 1 SDKs.

Why Claude's answers about competitors stay shallow

This is the most common complaint about Claude in a research context, and it has a specific cause. A March 2026 r/ClaudeAI thread titled Competitive analysis with Claude is shallow describes asking Claude who the competitors for a product are and getting back a neat list of five companies with one-paragraph descriptions. Accurate, and useless for planning a campaign.

The failure is not that Claude reasoned badly. It is that the model answered from a training snapshot with no way to check what an advertiser is running today. Ad creative has a short half-life. A messaging angle that was fresh eighteen months ago reads as tired now, and a model trained on the open web is structurally biased toward high-volume, older material.

An April 2026 r/ClaudeAI post shows what changes once tools are in scope: an operator wired up an agent that pulls competitor ads from the Ad Library every morning and transcribes the video creatives, so the daily brief starts from what shipped overnight.

Adding a tool does not just add data. It changes what question you can ask. Once the agent can list creatives for a specific page id, prompts that were impossible an hour earlier become ordinary.

How do you connect an ad intelligence MCP server to Claude?

Three things need to be true before you start. You need a Claude surface that supports MCP, which today means Claude Desktop, Claude Code or Claude Web connectors. You need an ad library server, which is the part that holds the platform access so you do not have to. And you need a scope decision: should the server be available in this one project, or everywhere.

For the server itself, adextract exposes a hosted remote MCP endpoint at https://mcp.adextract.co/mcp covering the Meta, Google, TikTok and LinkedIn ad libraries, plus an ad_reader tool that turns a creative image or video into structured detail. Because it is hosted there is no local process to supervise, and no API key to paste when you connect through Claude Web.

On Claude Web you sign in at adextract.co/connect, pick Claude as the assistant and authorise through OAuth, so nothing is stored in a config file. On Claude Desktop, servers arrive through Settings and the Extensions or Developer section; Anthropic's support documentation, updated September 2026 notes that the reviewed directory installs extensions in one click and keeps sensitive configuration fields in the operating system keychain.

On Claude Code the terminal path is explicit. Claude Code's MCP documentation lists three scopes for `claude mcp add`: local, written to ~/.claude.json and applied only to the current project; project, written to .mcp.json in the repo root so teammates inherit the same server; and user, applied to every project you open. If you would rather version the config, hand-write .mcp.json and commit it.

Then verify rather than assume. In Claude Code, claude mcp list and the /mcp panel report one of four states: Connected, tools fetch failed, Needs authentication, or Failed to connect. A project-scoped server you have not approved sits pending and will not launch a process until you approve it. On Claude Desktop, open the plus button in the chat box and choose Connectors to see the server and the tools it exposes.

If you have not yet decided which server shape you want, our breakdown of what an MCP server for competitor analysis can actually see covers the read-only versus read-write distinction and the data each platform exposes.

The prompts a Claude agent actually runs

Prompting an agent that has tools is different from prompting a chat. You describe the outcome and let the agent choose the calls, because you usually do not know which advertiser id it needs until it looks. State the platform, the advertiser, the window and the shape of the output. Then stop talking.

Resolve first. "Find the Meta Ad Library page for Notion, confirm it is the verified advertiser, then list every ad that page has run in the last 30 days with format and start date." The verification clause matters, because a keyword search on a brand name matches ad text rather than accounts and pulls in fan pages and resellers.

Then compare. "Group those ads by message theme, count creatives per theme, and tell me which theme the advertiser has increased most in the last two weeks compared with the previous two." The agent is doing what an analyst would do across a spreadsheet, except it has the raw records.

Then widen the frame. "Repeat the analysis against their Google Ads Transparency Center entries and their TikTok Ads Library, then list the three themes that appear on every platform and the two that appear on only one." Cross-platform overlap is where a single-platform ad spy tool runs out of road.

Finally, ask for the artifact. "Write this as a one-page brief with a competitor messaging map, three gaps we could test, and the specific ad records behind each claim." Requesting the supporting records in the same prompt is what keeps the output checkable by someone who was not in the chat.

The step-by-step variant for paid search, including the auction intelligence and ad copy stages, is in our guide to using AI agents for PPC competitor analysis.

What data comes back from each ad library tool call

The return shapes decide what your prompts can ask for, so it is worth knowing them. The Meta tools are the deepest: search_meta_ads returns matching ad records, search_meta_pages resolves a brand to a page id, get_meta_page_info returns the advertiser profile, and get_meta_ad_details returns the full creative record for a single ad.

The Google tools mirror that structure against the Google Ads Transparency Center: search_google_ads for creatives, search_google_ads_advertisers to resolve a name, get_google_ad_details for one creative and get_google_ads_advertiser_info for the profile. For the Meta side specifically, our guide to monitoring competitor Facebook ads with the Meta Ads Library API walks through the same records at the API level.

TikTok and LinkedIn are search-first. search_tiktok_ads and search_tiktok_advertisers cover the TikTok Ads Library, get_tiktok_ad_details pulls one record, and search_linkedin_ads covers B2B creatives. Then ad_reader is the tool that raises the ceiling: point it at any ad image or video and it returns structured marketing detail rather than leaving you to describe the creative yourself.

One practical note on TikTok. Its library returns delivery history, meaning the start and end dates of when an ad flighted, not a live is-running flag. A record that appears in a search today may have stopped delivering months ago, so pull the end date before writing that a competitor is running something right now.

A workable evaluation checklist for any ad library server, in order: one, does it resolve a brand name to a verified advertiser id; two, does it return per-ad records with a delivery window; three, does it cover search, social and video or only one of them; four, can it read an image or video creative; five, are failed calls billed. The last item is not cosmetic, because a research agent retries.

How to turn agent output into a competitor ad research report

An agent transcript is not a report. Three moves turn one into the other. First, pin the evidence: keep the ad records you cited in a file beside the brief, so any claim can be re-checked next month against the same page id.

Second, separate observation from inference. That a competitor is running nine video ads on one offer with three different hooks is an observation. That they are scaling a winning angle is an inference. Agents produce both in the same confident voice, and readers trust the brief more when the two are labelled.

Third, date the baseline. A competitor comparison is only useful relative to a previous snapshot, so store the record set under the date you pulled it. The next run can then answer what actually changed instead of restating the category.

For the document structure itself, our walkthrough on writing a competitor ad strategy analysis report covers the sections that survive a review and the ones that get cut.

What can a Claude agent still not see about a competitor?

Public ad libraries show creative that ran, not results. You get the ad, the copy, the format and the dates. You do not get impressions, spend, conversion rate, revenue or audience targeting detail unless the platform publishes it, and most platforms deliberately do not.

That limits what any claim about competitor performance can honestly say. You can say a competitor has increased the number of active creatives in a theme, which is a real signal of testing. You cannot say the theme is working. Only their account data would tell you that, and you do not have it.

There is a second limit that is easy to miss. A search matching ad text rather than a verified advertiser will return a fan page, an affiliate, or an unrelated brand that happened to use the name. Any metric built on an unresolved keyword search is a metric about a keyword, not about a company.

Speed claims in this space deserve a caveat. Vendor material from Ryze AI, published 2026-04-08, puts manual competitive research at 6 to 8 hours monthly per account against 3 to 5 minutes for an automated pass, and says automated teams spot market shifts 3 to 5 weeks earlier. Those figures come from a company selling the automation, so read them as a directional claim rather than a measured result.

Is a Claude agent worth it for competitor ad research?

Yes, if you already pay for Claude and you run this research more than once a month. The marginal cost is an ad library server and the credits it burns, not another subscription, and the agent adds capability to work you are already doing rather than creating a new workflow to maintain.

The arithmetic is small enough to test. adextract starts every account with 50 free credits, then charges one credit per successful tool call with failed calls refunded, and paid packs begin at $10 for 1,000 calls. A monthly pass across three competitors and two platforms is a few hundred calls at most, so the real question is never the bill. It is whether the output changes a decision.

No, if any of these are true. You research one competitor once a year, in which case exporting records by hand into a Claude project is fine. You need spend and conversion numbers, which no public library will give you. Or your team will not read a brief, in which case automating the production of an unread document only makes the waste faster.

The honest middle case is the common one. A Claude agent replaces the two hours a week someone spends clicking through ad libraries, and it makes the output consistent across competitors. That is a real gain and a modest one.

Mistakes that make Claude ad research useless

Trusting an unresolved advertiser. If the agent searches a brand name and reports back without confirming the page id or advertiser id, you are reading about whoever happened to use those words.

Asking for a verdict the data cannot support. Which competitor has the best ads invites confident prose that no public ad library can justify. Ask what changed, what is new, and what is repeated.

Leaving out the window. Without a date range the agent will mix a campaign from last year with one from last week. Every research prompt should carry its window, and every stored record set should carry its pull date.

Letting the report drift from the records. If a claim in the brief cannot be traced to an ad record from the same run, it came from the model's memory, and it is the first thing a sceptical stakeholder will pull on.

For the wiring side, including which servers to run read-only and how to keep the tool catalog stable across reconnects, see our guide to building an MCP-powered competitive ad intelligence stack.

Start with one platform, one advertiser, and one prompt that resolves the advertiser before it reports anything. Run it weekly for a month, keep the record sets, and compare the second output against the first. If the second run tells you something the first could not, the agent is earning its place. If it just restates the category, you saved yourself an integration.

Frequently asked questions

What is a Claude agent for competitor ad research?

It is Claude connected to an ad library MCP server, which lets the model call tools such as search_meta_ads or search_google_ads during a task. Instead of answering from a training snapshot, the agent reads live competitor creatives with their copy, format and delivery dates.

Do I need the Claude API to connect an ad library MCP server?

No. Claude Web connectors, Claude Desktop extensions and the Claude Code CLI all speak MCP on normal consumer plans. adextract recommends the Claude Web route because it authorises through OAuth, so no API key is stored in a local config file.

Which ad platforms can a Claude agent search?

With a server that covers all four, the Meta Ad Library, the Google Ads Transparency Center, the TikTok Ads Library and the LinkedIn Ad Library. Coverage varies by provider, so confirm the platform list before assuming a competitor's video or B2B campaigns are visible.

Can a Claude agent tell me a competitor's ad spend or ROAS?

No. Public ad libraries publish creative and delivery windows, not impressions, spend or conversion data. The agent can show what a competitor is testing and how their creative volume changed, but any spend figure is an estimate built from impression share and keyword volume.

How much does Claude competitor ad research cost to run?

Plan cost plus server credits. adextract gives 50 free credits, charges 1 credit per successful tool call and refunds failures, with packs starting at $10 for 1,000 calls. A monthly pass over three competitors on two platforms is typically a few hundred calls.