=== Parleon AI Layer ===
Contributors: parleon
Tags: ai, llms-txt, mcp, ai-seo, structured-data
Requires at least: 5.9
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Make your site the answer AI gives. llms.txt, markdown pages, an MCP server and agent discovery for ChatGPT, Claude, Gemini and Perplexity.

== Description ==

**Make your site the answer AI gives.**

People now ask ChatGPT, Claude, Gemini and Perplexity before they search. Those assistants, and the AI agents built on them, prefer sites they can read cleanly, search directly and cite with confidence. Most WordPress sites give them a theme full of menus, scripts and pop-ups instead.

Parleon AI Layer gives every AI a clean, machine-readable version of your site, built from the content you already publish. Your visitors see exactly the same site as before.

In our own test, a standard WordPress site running WooCommerce and Yoast SEO went from 7 to 93 out of 100 on isitagentready.com (Level 5) after installing it. The remaining check is a DNS record at your domain provider, which no plugin can set.

= What it adds =

* **llms.txt and llms-full.txt.** An index of your site for language models, following llmstxt.org, with a one-line summary of every page and a full-text version in one file.
* **A markdown version of every page.** Add `.md` to any page address, add `?format=md`, or ask with `Accept: text/markdown`. Clean text with headings, links, lists and tables, without scripts, styles or shortcodes.
* **An MCP server AI agents can search.** A read-only Model Context Protocol endpoint at `/mcp` with tools to search your site, read a page, list what is new and describe the site. WooCommerce stores also get product search and product details.
* **Agent discovery cards.** An MCP server card, an A2A agent card, an AI catalog, an API catalog (RFC 9727), agent skills, `agents.md` and `auth.md`, so agents find all of the above on their own.
* **Link headers and discovery tags** on every page, pointing agents at the right documents.
* **AI crawler rules and Content Signals.** Named rules for the AI crawlers in your robots.txt, and a Content-Signal line that states whether your content may be used for search, AI answers and AI training. Your own robots rules stay first and are never loosened. Optionally block crawlers that only collect training data.
* **Structured data (JSON-LD)** for your organization, website and articles, only when no SEO plugin already provides it.
* **WebMCP**, so AI agents working inside a browser can use the same tools on your pages.
* **Optional agent sign-in.** A small, standards-based OAuth 2.1 server (PKCE, dynamic client registration) lets an agent sign in with a WordPress account for a higher rate limit. It never opens private content.
* **AI agent visit counts** in your WordPress dashboard: which AI agents read your site and how often.
* **A readiness check.** One click to check your site on isitagentready.com.

= Why site owners use it =

* **Be cited, not skipped.** When an assistant can read your pages cleanly it can quote your prices, hours, services and articles accurately, and link back to you.
* **Let agents act on your site.** Agents can search your content and your products through MCP instead of guessing from a crawled copy.
* **Stay in control.** You choose what is covered, whether your content may be used for AI training, and you can pause everything with one checkbox.
* **No theme changes.** Nothing visible changes for people. Every addition is a separate address, a header or a tag in the page head.
* **Private by design.** No cookies, no visitor tracking, no IP addresses stored. Only published, public content is ever exposed. Drafts, private posts and password-protected posts never are.
* **Light.** Documents are built once, cached (in your object cache if you have one) and rebuilt only when you publish or edit. Nothing here calls out to another server while a page loads.

= Free key =

Get a free key on [parleon.ai](https://parleon.ai/wordpress) and connect with one click, or paste it on the **AI Layer** screen. Connecting adds a verified status, daily AI visit totals kept on record with Parleon (counts only), and AI crawler lists kept current by Parleon. Prefer not to connect? You can turn the AI layer on locally without a key; everything is then built on your server and nothing is sent anywhere.

= Works with your stack =

* **SEO plugins:** Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework and Slim SEO keep their structured data and sitemaps. This plugin adds no JSON-LD when one of them is active.
* **Existing llms.txt:** a real llms.txt file, or one another plugin serves, always wins. This plugin only fills the gap.
* **robots.txt:** a physical robots.txt file is never touched. The settings screen shows the lines to add yourself.
* **WooCommerce:** products, prices and stock in markdown and through the MCP tools, honouring catalog visibility.
* **Page caches:** answers for agents are marked uncacheable, and WP Super Cache is configured so markdown requests are never served cached HTML.

== Installation ==

1. Install the plugin from **Plugins, Add New** (search for "Parleon AI Layer"), or upload the zip, then activate it.
2. Open **AI Layer** in the admin menu.
3. Press **Get your free key** and follow the steps on parleon.ai. The key is sent back to your site and connected for you. Or paste a key you already have and press **Activate**, or choose **Turn on without a key**.
4. Press **Check my score** to see your site on isitagentready.com, and **Run self-check** to confirm every address answers.

Pretty permalinks (Settings, Permalinks) are recommended so `/llms.txt`, `/mcp` and the `.md` addresses work on every server.

== Frequently Asked Questions ==

= Does it change how my site looks? =

No. Visitors get exactly the same pages. The plugin adds separate addresses for agents (such as `/llms.txt` and `/mcp`), a `Link` response header, a few tags in the page head and a small script that registers WebMCP tools. Nothing is rendered on the page.

= Is it free? =

Yes. The plugin and the Parleon key are free. Every feature in the plugin works with or without a key.

= Do I need a key? =

No. You can turn the AI layer on without one. A key connects your site to Parleon for a verified status, daily AI visit totals kept on record with Parleon (counts only), and AI crawler lists kept up to date.

= What does it send to Parleon? =

Nothing until you connect a key. After that: the key and your site address when you connect and once a day to refresh the configuration, and once a day a summary of AI agent visit counts (totals per agent name) and the number of published pages. Never visitor data, IP addresses, page addresses or content. See "External services" below.

= Can AI agents change my site? =

No. Every MCP tool is read-only and only reads published, public content. Agents that sign in with OAuth get a higher rate limit, nothing more.

= Can I stop my content being used to train AI models? =

Yes. The Content-Signal line in robots.txt says `ai-train=no` by default, and one checkbox blocks the crawlers that only collect training data while still letting AI search and assistants read your site. Signals state your preference; each crawler decides whether to honour it.

= I already use Yoast SEO or Rank Math. Will I get duplicate structured data? =

No. When a supported SEO plugin is active, this plugin adds no JSON-LD and leaves the sitemap to it.

= I already have an llms.txt. =

Yours wins. A real file is served by your web server before WordPress runs, and when another plugin serves llms.txt this plugin steps aside.

= Will it slow my site down? =

No measurable difference for visitors. Documents for agents are built on demand, cached, and rebuilt only after you edit content. Page views add a header and a few head tags, read from memory, with no outside requests.

= What is MCP? =

The Model Context Protocol is the open standard AI assistants use to connect to tools and data. Your site's MCP endpoint lets an agent search and read your content directly. Its address is shown on the AI Layer screen.

= What score will I get on isitagentready.com? =

It depends on your site and host. The plugin covers every check a WordPress plugin can serve. DNS records (DNS-AID) cannot be set by a plugin; your DNS provider handles those. Use **Check my score** to see your result.

= Does it work on multisite? =

Yes. Activate it per site or network-wide; each site has its own settings and key.

= My site is in a subfolder. =

Everything works except the `/.well-known/` discovery files, which belong at the root of the domain.

== External services ==

This plugin connects to services run by Parleon (https://parleon.ai) **only after you connect a Parleon key**. With no key, or with the layer turned on locally without a key, it makes no outside requests. Terms of service: https://parleon.ai/terms. Privacy policy: https://parleon.ai/privacy.

* **Get a free key** (`https://parleon.ai/wordpress/get-key`). Opened in your browser when you press "Get your free key". The page receives your site address, the address of your site's connect handler and a single-use value that ties the reply to your session. You enter your email there. The key is posted back to your site's `wp-admin/admin-post.php`.
* **Activation** (`POST https://app.parleon.ai/api/lite/wp/v1/license/activate`). When you activate a key. Sends: the license key, your site address, and the plugin, WordPress and PHP versions. Parleon then requests `/wp-json/parleon-ai-layer/v1/verify` on your site with a random value; your site answers with a code computed from that value and your key, which proves the key is installed on this site. Returns a signed configuration.
* **Configuration refresh** (`GET https://app.parleon.ai/api/lite/wp/v1/license/config.json`). Once a day, and when you press "Refresh now". Sends: the license key (as a bearer token) and your site's host name. Returns a signed configuration (enabled features, Content-Signal defaults, the AI crawler list).
* **Usage report** (`POST https://app.parleon.ai/api/lite/wp/v1/license/report`). Once a day. Sends: your site's host name, the reporting period, the number of AI agent visits per agent name (for example "GPTBot (OpenAI)": 12), the number of published pages and the plugin version. No page addresses, no IP addresses, no visitor data.
* **Deactivation** (`POST https://app.parleon.ai/api/lite/wp/v1/license/deactivate`). When you press "Disconnect" or deactivate the plugin. Sends: the license key.
* **Parleon stores only** (connector mode): if Parleon provisioned your site as a Parleon store, the signed configuration names a hosted AI layer. The plugin then fetches a signed manifest and the store's AI pages from `https://app.parleon.ai` and the store's AI origin, and forwards agent requests to its MCP and chat endpoints. Request headers carry no cookies or WordPress credentials. This mode is never enabled for an ordinary site.
* **isitagentready.com** (`https://isitagentready.com/`). A link that opens in your browser when you press "Check my score". It receives your site address. Run by Cloudflare; see https://www.cloudflare.com/website-terms/ and https://www.cloudflare.com/privacypolicy/.

AI agents that use your site's MCP server or documents connect to your site directly. Those requests are answered by your own server and are not sent to Parleon.

== Privacy ==

The plugin sets no cookies and stores no visitor data. AI agent visits are counted by the agent's User-Agent as daily totals per agent name; no IP address, page address or other request detail is stored. Rate limiting of the MCP server keeps a salted hash of the client IP address for one minute and then discards it. Agents that sign in with OAuth are linked to the WordPress account that approved them; you can sign every agent out on the AI Layer screen.

== Screenshots ==

1. First run: get a free key, paste one, or turn the layer on without a key.
2. Status and the checklist of everything AI agents can use on your site, with a self-check.
3. AI agent visits: which assistants read your site, and how often.
4. What an agent reads: a page as markdown, with title, date and clean content.
5. Optional agent sign-in: the consent screen a logged-in user sees.

== Changelog ==

= 1.0.0 =
* First release of Parleon AI Layer.
* llms.txt and llms-full.txt, markdown versions of every page (".md", "?format=md" and Accept: text/markdown).
* Read-only MCP server with site search, page reading, recent content, site info, and WooCommerce product tools; A2A endpoint.
* MCP server card, A2A agent card, AI catalog, API catalog, agent skills, agents.md and auth.md.
* Optional OAuth 2.1 sign-in for agents (PKCE, dynamic client registration, Ed25519-signed tokens).
* AI crawler rules and Content-Signal in robots.txt, Link headers, JSON-LD when no SEO plugin provides it, WebMCP.
* Free Parleon key with one-click connect, daily signed configuration, AI agent visit counts and reports.

== Upgrade Notice ==

= 1.0.0 =
First release. Install, open AI Layer, and connect a free key or turn the layer on locally.
