ChatGPT, Perplexity, and Claude don't browse your site the way
a human does. They look for specific signals — and if those
signals aren't there, your site doesn't exist to them.
I built lyveca.com as a live demo of what
an agent-friendly website actually looks like. Here's exactly
what I implemented, why each piece matters, and how long it took.
The problem: 60% of searches now end without a click
AI Overviews, zero-click answers, agent-mediated browsing. The
model that drove web traffic for 30 years is breaking. By 2028,
40%+ of complex web tasks will be handled by agents who never
load your homepage.
If your site isn't structured for that — you're invisible to an
increasingly large share of how people find things.
What "agent-friendly" actually means
Three things:
- AI agents can read and understand your site (not just crawl it)
- AI engines can cite it (structured data they can extract)
- AI agents can act on it (callable tools via MCP)
Here's how I implemented all three.
Layer 1: llms.txt
The simplest and most overlooked piece. A plain-text markdown file
at /llms.txt that describes your site to AI agents — what it is,
what it offers, how to contact you.
Think of it as a README for AI agents. When ChatGPT looks for a
web studio, it reads llms.txt to understand the business before
deciding whether to recommend it.
Mine is at lyveca.com/llms.txt.
It covers: what I build, pricing, FAQ, MCP server details, and
contact info — all in clean markdown that any LLM can parse
without ambiguity.
Time to implement: 30 minutes. No library needed. Just a
markdown file in your public/ folder.
Layer 2: Schema.org JSON-LD
Structured data that tells AI engines who the business is,
what it sells, and what facts to cite. I included four types:
-
Organization— name, URL, what we do, offers -
Person— founder entity linked bidirectionally viafounder/worksFor -
WebSite— publisher link -
FAQPage— 8 Q&A pairs that AI engines can extract and cite directly
The bidirectional link between Organization and Person matters.
AI engines traverse entity graphs — if the Person points to the
Organization and the Organization points back, both entities
get corroborated together.
I also added sameAs links pointing to X and GitHub, so the
entity can be matched across sources.
json
{
"@type": "Organization",
"@id": "https://lyveca.com/#organization",
"name": "LYVECA AI",
"founder": { "@id": "https://lyveca.com/#sona" },
"sameAs": [
"https://x.com/LyvecaAI",
"https://github.com/Sonya2301/agentix-ai"
]
}
Time to implement: 2–3 hours (Claude Code generated most of it
from a business description, I reviewed and refined).
Layer 3: AI crawler permissions
Most websites accidentally block AI crawlers. The default
robots.txt often doesn't include the new bot names — so
GPTBot, ClaudeBot, and PerplexityBot get blocked or
unspecified, and they won't index the site.
My robots.ts (Next.js App Router) explicitly allows:
GPTBot, ClaudeBot, PerplexityBot,
GoogleExtendedBot, Applebot-Extended, cohere-ai
One afternoon to research all the bot names and add them.
Zero technical complexity.
Layer 4: MCP Server
This is the advanced piece — and the one nobody else in my
market has.
MCP (Model Context Protocol) is Anthropic's open standard for
connecting AI agents to external tools. An MCP server on your
website lets AI agents call it directly — without opening a
browser. Book a meeting, get pricing, check availability.
My server is at https://lyveca.com/api/mcp and exposes 3 tools:
get_pricing — returns full pricing for all tiers
get_service_info(topic) — returns info on any service layer
book_meeting(name?, email?) — returns a pre-filled Calendly link
Built with @modelcontextprotocol/sdk on Next.js API routes,
deployed on Vercel serverless. Stateless transport — no session
management needed.
Discovery is handled by two signals:
/.well-known/mcp.json — machine-readable tool manifest
<link rel="mcp" href="https://lyveca.com/api/mcp"> in <head>
Time to implement: 2–3 days (first time). The SDK is well-documented
and Claude Code writes the boilerplate.
You can test it live in the interactive playground at
lyveca.com — scroll to Chapter 5.
What the full stack looks like together
public/
├── llms.txt ← AI agent README
└── .well-known/mcp.json ← MCP tool manifest
src/app/
├── layout.tsx ← JSON-LD (Organization, Person, FAQPage)
├── robots.ts ← AI crawler permissions
├── sitemap.ts ← Auto-generated XML sitemap
└── api/mcp/route.ts ← MCP Server (3 callable tools)
Total implementation time for the full stack: ~1 week.
Most of it was learning, not building.
Does it work?
Google indexed it within 48h of submitting the sitemap.
Bing followed. The MCP server responds correctly to tool calls.
For AI citation visibility — that's the part that takes time.
AI engines need external corroboration before they'll cite a
domain confidently. The technical layer is ready; the backlink
layer is what I'm building now (hence this post).
I'll update with results after retesting in Perplexity and
ChatGPT Browse in 2–3 weeks.
The gap nobody is talking about
The people who know about llms.txt and MCP are AI developers.
The people selling websites are web designers. These two worlds
almost never overlap — which means most websites being built
right now are already obsolete for the agentic web.
That gap is exactly what LYVECA AI is built around.
If you're curious about the full implementation or want to
see the live demo: lyveca.com.
Questions welcome below.
Top comments (0)