{"id":284847,"date":"2026-03-06T12:05:19","date_gmt":"2026-03-06T12:05:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/whisper\/"},"modified":"2026-05-23T08:21:29","modified_gmt":"2026-05-23T08:21:29","slug":"mescio-for-agents","status":"publish","type":"plugin","link":"https:\/\/sr.wordpress.org\/plugins\/mescio-for-agents\/","author":16166350,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.7.0","stable_tag":"1.7.0","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Mescio for Agents","header_author":"Mescio","header_description":"Mescio for Agents serves your posts, pages and WooCommerce products as clean Markdown to AI agents and GPT crawlers \u2014 using HTTP content negotiation (Accept: text\/markdown). Human visitors never notice a thing.","assets_banners_color":"367378","last_updated":"2026-05-23 08:21:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/mescio-for-agents\/","header_author_uri":"https:\/\/mescio.it\/","rating":5,"author_block_rating":0,"active_installs":100,"downloads":934,"num_ratings":1,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.3":{"tag":"1.2.3","author":"vinsmach","date":"2026-03-06 12:05:18"},"1.3.0":{"tag":"1.3.0","author":"vinsmach","date":"2026-03-09 06:28:02"},"1.4.0":{"tag":"1.4.0","author":"vinsmach","date":"2026-03-10 17:41:34"},"1.5.0":{"tag":"1.5.0","author":"vinsmach","date":"2026-03-11 08:25:04"},"1.6.0":{"tag":"1.6.0","author":"vinsmach","date":"2026-03-11 11:41:07"},"1.6.1":{"tag":"1.6.1","author":"vinsmach","date":"2026-03-11 11:58:47"},"1.6.2":{"tag":"1.6.2","author":"vinsmach","date":"2026-03-11 12:32:44"},"1.6.3":{"tag":"1.6.3","author":"vinsmach","date":"2026-03-11 13:48:20"},"1.6.4":{"tag":"1.6.4","author":"vinsmach","date":"2026-04-19 14:57:46"},"1.6.5":{"tag":"1.6.5","author":"vinsmach","date":"2026-04-19 08:05:45"},"1.6.6":{"tag":"1.6.6","author":"vinsmach","date":"2026-04-19 08:18:58"},"1.6.7":{"tag":"1.6.7","author":"vinsmach","date":"2026-04-19 14:45:32"},"1.6.8":{"tag":"1.6.8","author":"vinsmach","date":"2026-04-19 14:59:50"},"1.6.9":{"tag":"1.6.9","author":"vinsmach","date":"2026-04-20 07:40:36"},"1.7.0":{"tag":"1.7.0","author":"vinsmach","date":"2026-05-23 08:21:29"}},"upgrade_notice":{"1.6.0":"<p>Adds rate limiting and sensitive data protection for custom fields. Recommended for all sites exposed to public AI agents.<\/p>","1.5.0":"<p>Custom fields and ACF data now automatically included in Markdown front matter.<\/p>","1.4.0":"<p>Adds \/agents.txt endpoint following the IETF draft standard for AI agent access policy.<\/p>","1.3.0":"<p>Major update: new REST endpoints, pagination, improved caching, and better Markdown output for page builder sites.<\/p>","1.1.0":"<p>Adds multilingual support and significantly improved Markdown output quality for page builder sites. Upgrade recommended for all users.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3476362,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3476362,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3476362,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3476362,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.3","1.3.0","1.4.0","1.5.0","1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.7.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page \u2014 post types and language configuration","2":"Example Markdown output with YAML front matter","3":"WooCommerce product rendered as Markdown with product details table"}},"plugin_section":[],"plugin_tags":[15643,2353,226124,4608,23853],"plugin_category":[],"plugin_contributors":[257333],"plugin_business_model":[],"class_list":["post-284847","plugin","type-plugin","status-publish","hentry","plugin_tags-agents","plugin_tags-ai","plugin_tags-llm","plugin_tags-markdown","plugin_tags-rest-api","plugin_contributors-vinsmach","plugin_committers-vinsmach"],"banners":{"banner":"https:\/\/ps.w.org\/mescio-for-agents\/assets\/banner-772x250.png?rev=3476362","banner_2x":"https:\/\/ps.w.org\/mescio-for-agents\/assets\/banner-1544x500.png?rev=3476362","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mescio-for-agents\/assets\/icon-128x128.png?rev=3476362","icon_2x":"https:\/\/ps.w.org\/mescio-for-agents\/assets\/icon-256x256.png?rev=3476362","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Mescio for Agents<\/strong> makes your WordPress site AI-ready by silently serving posts, pages and WooCommerce products as clean, structured Markdown to any AI agent or LLM pipeline that requests it \u2014 using the standard HTTP <code>Accept: text\/markdown<\/code> content negotiation header.<\/p>\n\n<p>Human visitors using a browser are <strong>completely unaffected<\/strong>. Mescio for Agents only activates when an AI agent or crawler explicitly asks for Markdown.<\/p>\n\n<h4>Why Markdown?<\/h4>\n\n<p>Feeding raw HTML to an AI is expensive and noisy. A heading like <code>## About Us<\/code> costs ~3 tokens in Markdown vs 12\u201315 tokens as HTML \u2014 before accounting for <code>&lt;div&gt;<\/code> wrappers, navigation bars and script tags that carry zero semantic value. This blog post you are reading takes 16,180 tokens in HTML and 3,150 tokens in Markdown. That is an 80% reduction.<\/p>\n\n<p>Markdown has become the <em>lingua franca<\/em> for AI systems. Mescio for Agents lets your site speak it natively, at zero cost to your human visitors.<\/p>\n\n<h4>How it works<\/h4>\n\n<p>When an HTTP client sends a request with <code>Accept: text\/markdown<\/code>, Mescio for Agents intercepts the WordPress request lifecycle before any template is rendered, converts the post content to clean Markdown, and returns it with the correct <code>Content-Type: text\/markdown<\/code> header.<\/p>\n\n<pre><code>curl https:\/\/yoursite.com\/your-post\/ \\\n  -H \"Accept: text\/markdown\"\n<\/code><\/pre>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Zero configuration<\/strong> \u2014 works out of the box on any singular post, page or custom post type<\/li>\n<li><strong><code>\/llms.txt<\/code> endpoint<\/strong> \u2014 auto-generated index of all your content in the <a href=\"https:\/\/llmstxt.org\">llmstxt.org<\/a> standard format, so AI agents can discover what's on your site<\/li>\n<li><strong><code>\/llms-full.txt<\/code> endpoint<\/strong> \u2014 full site content in a single Markdown file, ready for RAG pipelines<\/li>\n<li><strong>WooCommerce support<\/strong> \u2014 product pages include price, SKU, stock status, rating, attributes and gallery; products are grouped by category in <code>llms.txt<\/code><\/li>\n<li><strong>YAML front matter<\/strong> \u2014 every document includes structured metadata (title, description, URL, date, categories, tags, featured image)<\/li>\n<li><strong>Multilingual<\/strong> \u2014 detects language via WPML, Polylang, TranslatePress or WordPress locale; emits <code>Content-Language<\/code> and <code>Link: rel=alternate<\/code> headers<\/li>\n<li><strong>REST API endpoint<\/strong> \u2014 <code>\/wp-json\/mescio-for-agents\/v1\/markdown?id=&lt;post_id&gt;<\/code> or <code>?url=&lt;permalink&gt;<\/code><\/li>\n<li><strong>Page builder cleanup<\/strong> \u2014 aggressively strips Elementor, Divi, WPBakery and Beaver Builder layout noise<\/li>\n<li><strong>Token count header<\/strong> \u2014 <code>X-Markdown-Tokens<\/code> tells AI pipelines how large the document is before processing<\/li>\n<li><strong>Content Signals<\/strong> \u2014 emits <code>Content-Signal: ai-train=yes, search=yes, ai-input=yes<\/code><\/li>\n<li><strong>Correct HTTP caching<\/strong> \u2014 <code>Vary: Accept<\/code> ensures CDNs cache HTML and Markdown versions separately<\/li>\n<\/ul>\n\n<h4>Response headers<\/h4>\n\n<ul>\n<li><code>Content-Type: text\/markdown; charset=utf-8<\/code><\/li>\n<li><code>Content-Language: it<\/code> (or detected language)<\/li>\n<li><code>Vary: Accept<\/code><\/li>\n<li><code>X-Markdown-Tokens: 725<\/code><\/li>\n<li><code>Content-Signal: ai-train=yes, search=yes, ai-input=yes<\/code><\/li>\n<li><code>Link: &lt;url&gt;; rel=\"alternate\"; hreflang=\"en\"<\/code> (when translations available)<\/li>\n<\/ul>\n\n<h4>Multilingual plugin support<\/h4>\n\n<ul>\n<li><strong>WPML<\/strong> \u2014 reads language and available translations automatically<\/li>\n<li><strong>Polylang<\/strong> \u2014 reads language and links to translated post IDs<\/li>\n<li><strong>TranslatePress<\/strong> \u2014 reads <code>trp_language<\/code> post meta<\/li>\n<li><strong>Manual<\/strong> \u2014 configure primary language and additional languages in Settings \u2192 Mescio for Agents<\/li>\n<\/ul>\n\n<h4>REST API<\/h4>\n\n<pre><code>GET \/wp-json\/mescio-for-agents\/v1\/markdown?id=42\nGET \/wp-json\/mescio-for-agents\/v1\/markdown?url=https:\/\/yoursite.com\/my-page\/\n<\/code><\/pre>\n\n<h4>Developer hooks<\/h4>\n\n<p><strong>Filter: <code>mescio_enabled_post_types<\/code><\/strong> \u2014 add or remove post types dynamically.<\/p>\n\n<p><strong>Filter: <code>mescio_pre_convert_content<\/code><\/strong> \u2014 modify the HTML before conversion to Markdown.<\/p>\n\n<p><strong>Filter: <code>mescio_post_convert_content<\/code><\/strong> \u2014 modify the Markdown after conversion.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not collect, store or transmit any personal data. It does not set cookies. It does not make external HTTP requests.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>mescio-for-agents<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install directly from the WordPress plugin directory.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Optionally configure it at <strong>Settings \u2192 Mescio for Agents<\/strong>.<\/li>\n<li>Test it: <code>curl https:\/\/yoursite.com\/any-post\/ -H \"Accept: text\/markdown\"<\/code><\/li>\n<\/ol>\n\n<p>No API keys, no external services, no additional dependencies required.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20wp%20rocket%20or%20other%20full-page%20cache%20plugins%3F\"><h3>Does it work with WP Rocket or other full-page cache plugins?<\/h3><\/dt>\n<dd><p><strong>Yes, with a caveat worth understanding.<\/strong><\/p>\n\n<p>HTTP Link headers (the <code>Link: &lt;...&gt;; rel=\"...\"<\/code> response headers) are injected by PHP at request time. Full-page cache plugins like WP Rocket, LiteSpeed Cache, and W3 Total Cache serve cached HTML directly \u2014 bypassing PHP entirely \u2014 so those HTTP headers are not present on cached responses. This is intentional behavior by those plugins and affects every WordPress plugin that relies on PHP-injected headers, not just Mescio for Agents.<\/p>\n\n<p><strong>What Mescio for Agents does to work around this:<\/strong><\/p>\n\n<p>Starting from version 1.7.0, the plugin also emits equivalent HTML <code>&lt;link&gt;<\/code> tags in the <code>&lt;head&gt;<\/code> of your homepage via <code>wp_head<\/code>:<\/p>\n\n<pre><code>`html\n<\/code><\/pre>\n\n<p>\n\n\n    `<\/p>\n\n<p>These tags are part of the HTML content and are cached along with the page \u2014 so they are present even on cached responses and are readable by AI agents and checkers that parse the HTML <code>&lt;head&gt;<\/code>.<\/p>\n\n<p>If you want to disable the HTML tags and keep only HTTP headers (or disable both), use these filters in your theme's <code>functions.php<\/code>:<\/p>\n\n<pre><code>`php\n<\/code><\/pre>\n\n<p>\/\/ Disable only the HTML  tags\nadd_filter( 'mescio_link_html_tags_enabled', '__return_false' );<\/p>\n\n<p>\/\/ Disable both HTTP headers and HTML tags\nadd_filter( 'mescio_link_headers_enabled', '__return_false' );\n    `<\/p><\/dd>\n<dt id=\"will%20this%20affect%20my%20site%27s%20seo%20or%20how%20google%20crawls%20it%3F\"><h3>Will this affect my site's SEO or how Google crawls it?<\/h3><\/dt>\n<dd><p>No. The plugin only responds with Markdown when an HTTP client sends <code>Accept: text\/markdown<\/code>. Standard browsers and Googlebot never send this header, so they receive the normal HTML page. The Markdown responses include <code>X-Robots-Tag: noindex<\/code> to be safe.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20gutenberg%20block%20editor%3F\"><h3>Does it work with the Gutenberg block editor?<\/h3><\/dt>\n<dd><p>Yes. The plugin applies WordPress's <code>the_content<\/code> filter, which fully processes Gutenberg blocks into HTML before conversion.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%2C%20divi%20or%20other%20page%20builders%3F\"><h3>Does it work with Elementor, Divi or other page builders?<\/h3><\/dt>\n<dd><p>Yes. The HTML cleaner aggressively strips layout wrapper elements, data attributes and icon-only links produced by visual page builders, resulting in clean semantic Markdown.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20woocommerce%3F\"><h3>Does it work without WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce is completely optional. Without it, the plugin works normally for posts and pages.<\/p><\/dd>\n<dt id=\"does%20it%20require%20wpml%20or%20polylang%3F\"><h3>Does it require WPML or Polylang?<\/h3><\/dt>\n<dd><p>No. Both are optional. Without them, Mescio for Agents detects the site language from the WordPress locale setting. You can also configure languages manually in Settings \u2192 Mescio for Agents.<\/p><\/dd>\n<dt id=\"can%20i%20add%20custom%20post%20types%3F\"><h3>Can I add custom post types?<\/h3><\/dt>\n<dd><p>Yes, either from the settings page or via the <code>mescio_enabled_post_types<\/code> filter:<\/p>\n\n<pre><code>add_filter( 'mescio_enabled_post_types', function( $types ) {\n    $types[] = 'my_cpt';\n    return $types;\n});\n<\/code><\/pre><\/dd>\n<dt id=\"is%20there%20a%20%22powered%20by%22%20link%20added%20to%20my%20site%3F\"><h3>Is there a \"powered by\" link added to my site?<\/h3><\/dt>\n<dd><p>No. The plugin adds no frontend links, scripts or styles to your site.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.6<\/h4>\n\n<p>solve problem robots.txt<\/p>\n\n<h4>1.6.5<\/h4>\n\n<ul>\n<li>Security: added two-layer burst protection to rate limiter \u2014 IPs sending more than 20 req\/5s are auto-blocked for 10 minutes; blocked IPs rejected with a single transient read before any WordPress processing<\/li>\n<li>All burst thresholds filterable: <code>mescio_burst_limit<\/code>, <code>mescio_burst_window<\/code>, <code>mescio_block_duration<\/code><\/li>\n<li>REST 429 responses now include <code>Retry-After<\/code>, <code>X-RateLimit-Remaining<\/code>, <code>X-RateLimit-Reset<\/code> headers<\/li>\n<li>New: Content Signals support (draft-romm-aipref-contentsignals) \u2014 site owners can now declare AI usage preferences<\/li>\n<li>Content Signals published in <code>robots.txt<\/code> via <code>Content-Signal:<\/code> directive and in all Markdown\/REST response headers<\/li>\n<li>Default values: <code>ai-train=no, search=yes, ai-input=yes<\/code> (conservative \u2014 protects owners who install without reading docs)<\/li>\n<li>Configurable from Settings \u2192 Mescio for Agents with live preview<\/li>\n<li>Filterable by developers via <code>mescio_content_signals<\/code> filter<\/li>\n<li>Replaced hardcoded <code>Content-Signal: ai-train=yes<\/code> header with dynamic value from settings<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>New: HTML <code>&lt;link&gt;<\/code> tags in <code>&lt;head&gt;<\/code> for discovery \u2014 cache-proof fallback for WP Rocket and all full-page cache plugins; emitted on the homepage via <code>wp_head<\/code><\/li>\n<li>New: added FAQ entry explaining WP Rocket \/ full-page cache compatibility and the HTML tag fallback<\/li>\n<li>Improved: <code>wp_headers<\/code> filter replaces <code>send_headers<\/code> action for HTTP Link headers \u2014 more compatible with standard setups<\/li>\n<li>Added: <code>api-catalog<\/code> Link (RFC 9727) pointing to <code>\/.well-known\/api-catalog<\/code><\/li>\n<li>Added: <code>service-doc<\/code> Link alongside <code>service-desc<\/code> \u2014 broader checker compatibility<\/li>\n<li>Fixed: OpenAPI <code>service-desc<\/code> now uses correct media type <code>application\/vnd.oai.openapi+json<\/code><\/li>\n<li>Fixed: Content Signals settings now save correctly \u2014 option group mismatch resolved<\/li>\n<li>Security: two-layer burst protection in rate limiter (20 req\/5s \u2192 10-minute auto-block)<\/li>\n<li>New filter: <code>mescio_link_html_tags_enabled<\/code> to disable HTML <code>&lt;link&gt;<\/code> tags independently<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Fix: shortcode builder tags (WPBakery, WoodMart, ecc.) rimossi anche dagli excerpt nel llms.txt index<\/li>\n<li>Fix: llms.txt ora serve titoli, excerpt e permalink nella lingua corretta su siti multilingua (WPML\/Polylang)<\/li>\n<li>Fix: llms-full.txt ora serve il contenuto completo dei post nella lingua corretta (WPML\/Polylang)<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Fixed 404 on multilingual sites using WPML or Polylang: <code>llms.txt<\/code> and <code>llms-full.txt<\/code> now resolve correctly under language-prefixed URLs (e.g. <code>\/it\/llms.txt<\/code>, <code>\/en\/llms-full.txt<\/code>)<\/li>\n<li>Added <code>parse_request<\/code> early intercept (priority 1) as fallback for language plugins that rewrite REQUEST_URI before WordPress rewrite rules run<\/li>\n<li>Added rewrite rule variant matching <code>\/xx\/llms.txt<\/code> and <code>\/xx-XX\/llms.txt<\/code> patterns<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added rate limiting: per-IP request throttling on all endpoints via WordPress transients<\/li>\n<li><code>llms-full.txt<\/code> limited to 10 req\/60s, REST search to 20, other REST to 30, default to 60<\/li>\n<li>Returns 429 Too Many Requests with <code>Retry-After<\/code> header when limit exceeded<\/li>\n<li>Respects Cloudflare, nginx and standard <code>X-Forwarded-For<\/code> proxy headers<\/li>\n<li>Added sensitive meta key filter: fields containing <code>password<\/code>, <code>token<\/code>, <code>email<\/code>, <code>phone<\/code>, <code>iban<\/code> and similar patterns are never exposed in Markdown front matter<\/li>\n<li>Both rate limiting and sensitive key filter are filterable by developers<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added automatic custom fields support in Markdown front matter<\/li>\n<li>If ACF is active, uses <code>get_fields()<\/code> with label-keyed, typed values; nested groups and repeaters flattened to dot notation (e.g. <code>group.field<\/code>)<\/li>\n<li>Without ACF, exposes plain post meta \u2014 skipping internal keys (<code>_<\/code> prefix), serialized data, JSON blobs and known plugin internals<\/li>\n<li>Added <code>mescio_custom_meta<\/code> filter for developer overrides<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added <code>\/agents.txt<\/code> endpoint following IETF draft-srijal-agents-policy-00<\/li>\n<li>SHA-256 hash computed automatically from directive content<\/li>\n<li>Configurable directives (path, ALLOW\/DISALLOW, optional params) via admin settings<\/li>\n<li>Live preview of generated file with hash in settings page<\/li>\n<li>Default directives: <code>\/ ALLOW<\/code>, <code>\/wp-admin DISALLOW<\/code>, <code>\/wp-login.php DISALLOW<\/code><\/li>\n<li>Added <code>\/agents.txt<\/code> link in Quick Links table<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Refactored monolith into modular architecture (6 separate class files)<\/li>\n<li>Added REST endpoint <code>\/wp-json\/mescio-for-agents\/v1\/context<\/code> \u2014 site metadata + llms.txt in JSON for MCP servers<\/li>\n<li>Added REST endpoint <code>\/wp-json\/mescio-for-agents\/v1\/search<\/code> \u2014 full-text search with Markdown output<\/li>\n<li>Added REST endpoint <code>\/wp-json\/mescio-for-agents\/v1\/page<\/code> \u2014 page by slug or ID<\/li>\n<li>Added REST endpoint <code>\/wp-json\/mescio-for-agents\/v1\/openapi<\/code> \u2014 OpenAPI 3.1 schema<\/li>\n<li>Added <code>llms-full.txt<\/code> pagination via <code>?limit=N&amp;offset=N<\/code> with <code>X-LLMS-Next<\/code> header<\/li>\n<li>Improved caching: real <code>Last-Modified<\/code> from content timestamp, <code>ETag<\/code> from body hash, full 304 support<\/li>\n<li>Fixed excess blank lines in Markdown output from Elementor and other page builders<\/li>\n<li>Expanded admin API Examples panel with 8 tabs and copy buttons<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added <code>\/llms.txt<\/code> endpoint \u2014 auto-generated site index in the llmstxt.org standard format<\/li>\n<li>Added <code>\/llms-full.txt<\/code> endpoint \u2014 full site content in a single Markdown file for RAG pipelines<\/li>\n<li>Products in <code>llms.txt<\/code> grouped by WooCommerce category with price and stock status<\/li>\n<li>Added <code>mescio_llms_txt_posts_limit<\/code>, <code>mescio_llms_txt_products_limit<\/code>, <code>mescio_llms_full_txt_limit<\/code> filters<\/li>\n<li>Added flush rewrite rules on plugin activation\/deactivation<\/li>\n<li>Added <code>\/llms.txt<\/code> and <code>\/llms-full.txt<\/code> clickable links in the settings test panel<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added multilingual support: WPML, Polylang, TranslatePress and manual configuration<\/li>\n<li>Added <code>Content-Language<\/code> and <code>Link: rel=alternate<\/code> response headers<\/li>\n<li>Improved HTML to Markdown converter with aggressive page builder noise removal<\/li>\n<li>Added UTF-8 and mojibake encoding auto-correction<\/li>\n<li>Improved whitespace normalisation<\/li>\n<li>Added 27-language selector in admin with flags and native names<\/li>\n<li>Added plugin detection badges in settings page<\/li>\n<li>Added test panel with ready-to-use curl and Python examples<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Content negotiation via <code>Accept: text\/markdown<\/code> header<\/li>\n<li>YAML front matter with post metadata<\/li>\n<li>WooCommerce product support<\/li>\n<li>REST API endpoint <code>\/wp-json\/mescio-for-agents\/v1\/markdown<\/code><\/li>\n<li><code>X-Markdown-Tokens<\/code> header with token count estimate<\/li>\n<li><code>Content-Signal<\/code> header<\/li>\n<li><code>Vary: Accept<\/code> for correct HTTP caching<\/li>\n<\/ul>","raw_excerpt":"Mescio for Agents serves your WordPress content as clean Markdown to AI agents and GPT crawlers. Human visitors never notice a thing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/284847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=284847"}],"author":[{"embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vinsmach"}],"wp:attachment":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=284847"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=284847"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=284847"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=284847"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=284847"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=284847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}