# Agents and AI visibility

People increasingly meet a business through an assistant: ChatGPT, Claude, Perplexity, Google's AI answers. Sonor gives a site three ways to be understood and used by them, and tells you which agents showed up.

| Layer     | What it does                                                                              | Where it lives                                                                                   |
| --------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| **Read**  | llms.txt, answer-engine blocks and schema, so an assistant quotes the business correctly  | [llms.txt and AEO](https://sonor.dev/site-kit/llms), [SEO](https://sonor.dev/site-kit/seo)       |
| **Use**   | MCP tools, so an agent can look up services, hours, FAQs and reviews, and send an inquiry | [MCP and agent tools](https://sonor.dev/site-kit/mcp)                                            |
| **Build** | A machine-readable contract, so a coding agent can wire a site correctly and prove it     | [For coding agents](https://sonor.dev/site-kit/agents), [sonor-setup CLI](https://sonor.dev/cli) |

## Read: llms.txt and answer engines

`npx sonor-setup scaffold` writes `/llms.txt` and `/llms-full.txt` at build time from what Sonor knows about the business: its summary, services, pages and FAQs. Answer-engine blocks (`AEOBlock`, `AEOSummary`, `AEOSteps`) and Speakable schema put direct answers in the page itself, and the proxy's discovery headers point crawlers at all of it. Everything's in [llms.txt and AEO](https://sonor.dev/site-kit/llms).

## Use: agent tools over MCP

```bash
npx sonor-setup mcp --inquiry-form contact
```

That gives the site a Model Context Protocol endpoint at `/api/mcp`, a server card at `/.well-known/mcp-server-card`, and the built-in Sonor tools: the business profile, services, FAQ search, pages, articles and reviews. With `--inquiry-form`, an agent can also send an inquiry for a person.

A few rules hold for every site:

- **An inquiry has a person behind it.** `send_inquiry` refuses unless the person asked to be contacted and agreed to share their details, and only for a form with "Agent inquiries" turned on in Sonor. Each one arrives with the agent's name on it.
- **Tools read what visitors read.** The built-in tools use the same data the site's pages do, so an agent never learns something a visitor couldn't.
- **You can bring your own server.** A site that runs its own MCP server keeps it; site-kit won't overwrite it, and you can still mix in the built-in tools.

The full setup, including rate limiting on Netlify and writing good tool descriptions, is in [MCP and agent tools](https://sonor.dev/site-kit/mcp).

## See which agents came

Pass `onToolCall: reportToolCallsToSonor()` to the MCP handler, and Sonor records each call: which agent, which tool, and whether it worked. Never the arguments or the answer. The **AI Visibility** tab in Sonor lists them, and Echo flags a tool that keeps failing along with the fix.

## Build: coding agents

site-kit ships a guide written for coding agents, a machine-readable manifest, and a CLI where every command answers in one JSON envelope with a stable exit code:

```bash
npx sonor-setup manifest --json   # modules, env, patterns and failure modes
npx sonor-setup verify --json     # exit 0 means done
```

An agent can go from a bare Next.js repo to a verified Sonor site without guessing. Start with [For coding agents](https://sonor.dev/site-kit/agents).

## This site is agent-readable too

Every page on sonor.dev is available as markdown: add `.md` to its URL. [llms.txt](https://sonor.dev/llms.txt) indexes them, [llms-full.txt](https://sonor.dev/llms-full.txt) has all of them in one file, and `https://sonor.dev/api/mcp` serves `search_docs` and `get_doc` tools so an agent building a Sonor site can read these docs directly.
