How to advertise a product to AI agents (2026 guide)
AI agents do not see banners. When an agent running in Claude, ChatGPT, Cursor or a custom framework needs a tool, a data source or a service, it reads machine surfaces: MCP registries, tool catalogs, llms.txt files, agent cards and the first few hundred characters of your homepage HTML. Advertising to agents means being present, legible and honest on those surfaces. This guide explains what that looks like in practice and how to tell real agent traffic from crawlers.
What an agent actually reads
| Surface | What the agent gets | Who reads it |
|---|---|---|
| MCP registry entry (official registry, Smithery, Glama, PulseMCP) | Server name, one-line description, tool list from tools/list | MCP clients, registry indexers, agents picking a tool |
/llms.txt | A short Markdown map of your product with links | Agent frameworks, research agents, AI search crawlers |
| Tool catalogs and indexes (JSON) | Structured "what does this do, where do I go" records | Orchestrators that choose among many tools |
/.well-known/agent-card.json | Capabilities, endpoints, skills (A2A style) | Agent-to-agent protocols |
| Homepage HTML and JSON-LD | Title, description, structured data, extractable text | Everything, including AI provider crawlers |
What a labeled placement is
A placement is an entry for your product on a surface an agent already reads: a named MCP server that answers with your product's index, a line in a catalog, a link in an llms.txt file, a redirect hop that records the referral. Three rules keep it honest:
- Label it. Sponsored entries say so in their description. Agents and their operators can tell a placement from an editorial listing.
- Never impersonate a provider. No fake Anthropic, OpenAI or Google endpoints, no injected instructions, nothing that changes what an agent was told to do.
- Only surfaces you operate or have permission to use. Your own domain, registries that accept listings, catalogs you run.
How to measure agent traffic honestly
This is where most "get found by AI" products go wrong. On the Agent Observatory sensor we separate four things and report them separately:
- Impressions: an MCP handshake or an index read. Registry indexers create thousands of these. They are not visits.
- Hops: an agent followed a 302 redirect to your page. Each hop carries a per-hop id so a later signup can be attributed.
- Hop agents: distinct daily HMAC nicknames behind those hops. No raw IP or user agent is stored.
- Who: search crawlers (Yandex, Bing, Google), SEO crawlers, identified AI providers (OpenAI, Anthropic, Perplexity, Amazon and others), browsers, and unknown automation.
Observed on our own campaign, 2026-09-23: after listing 1,024 doors, every one of the 134 hop agents in the 12-hour window was a search crawler that followed URLs we had pinged to IndexNow. Zero identified AI agents. We publish that number because a hop count without the "who" column is marketing, not measurement.
A five-step plan
- Run a readiness check. Make sure robots.txt allows identified crawlers, the homepage returns real HTML over HTTPS, and there is a title, a description and at least a few hundred characters of server-rendered text.
- Publish
/llms.txt. One screen: what the product does, the canonical docs, pricing, limits, how to authenticate, where the machine endpoints are. See the llms.txt guide. - List on MCP registries. A remote MCP server with two or three well-described tools, published to the official registry and Smithery. See the registry listing guide.
- Add labeled placements on surfaces you can measure. A door on a catalog agents read, hops that record referrals, and a desk that shows who followed them.
- Attribute the humans. Agents rarely buy; their operators do. Carry the hop id into your signup and your billing metadata so a paying customer can be traced back to the placement that produced it.
What to expect
Registry indexers arrive within hours. Search crawlers arrive within a day of an IndexNow ping. Identified AI provider crawlers (Amazonbot, Googlebot, PerplexityBot) fetch pages that other pages link to. Task-driven agents calling your tools are rarer and depend on the usefulness of the tool itself: a tool that returns a real result gets called; a tool that only advertises gets a handshake. Build the useful thing first, then place it.