Skip to content
Conduit

mcp server

AiVisibility

Maximize site visibility for AI engines — llms.txt, Markdown endpoints, robots.txt AI directives, AI discovery files, and MCP abilities.

Pollora/AiVisibilitycommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 26, 2026

AI Visibility is a WordPress plugin that makes a site legible to AI engines: LLMs, AI search and AI agents. The site already publishes HTML for browsers and a sitemap for search crawlers; this plugin adds the formats the newer readers want: a structured index at /llms.txt, a Markdown twin of every page, explicit crawler permissions in robots.txt, and machine-readable identity files under /.well-known/.

Installation

Download the zip from the latest release and install it through Plugins → Add New → Upload Plugin, or with Composer:

composer require pollora/ai-visibility

The package declares "type": "wordpress-plugin", so with composer/installers present in the consuming project it lands in wp-content/plugins/ rather than in vendor/. That one is the project's to declare, not this package's to pull in: requiring it here would put a Composer plugin into the tree.

Then visit Settings → AI Visibility.

Requirements

  • PHP 8.3 or newer
  • WordPress 6.7 or newer
  • Pretty permalinks (Settings → Permalinks, anything but "Plain")

What it publishes

URLWhat it is
/llms.txtIndex of the site following the llmstxt.org specification: title, description, and a linked list of pages with summaries
/llms-full.txtEvery tracked page's full content as one Markdown document
/any-page.mdThe Markdown representation of a single page — also reachable as /any-page/?format=md
/index.mdThe static front page, when there is one
/.well-known/ai.txtDeclared AI usage permissions and pointers to the files above
/.well-known/identity.jsonschema.org Organization description of the site
/robots.txtGains explicit Allow and Disallow blocks per AI crawler

/.well-known/ paths are blocked outright by some nginx configurations (the default location ~ /\. rule). The discovery files are therefore also served from /ai-discovery/ai.txt and /ai-discovery/identity.json.

Every HTML page advertises its Markdown twin, both in the head and in the headers, so a client that does not know the URL convention can still find it:

<link rel="alternate" type="text/markdown" href="https://example.com/page.md">
Link: <https://example.com/page.md>; rel="alternate"; type="text/markdown"

What it never publishes

Content that is not public stays that way. Password-protected posts, drafts and anything an SEO plugin has marked noindex are excluded from llms.txt and llms-full.txt, answer 404 at their .md URL, and are not advertised as having a Markdown alternate.

Languages

The admin screen and every user-facing message are translatable. Shipped translations: French (fr_FR), German (de_DE), Italian (it_IT), Spanish (es_ES), Brazilian Portuguese (pt_BR), Dutch (nl_NL). WordPress loads the right one automatically from the site's own language setting; nothing to configure. Untranslated locales fall back to English.

Configuration

Everything is optional; the defaults publish post and page, allow the mainstream AI search crawlers, and block the two best-known training-only ones.

SettingDefaultNotes
Post typespost, pageAny public post type can be added
Posts per type50Capped at 200
Site descriptionemptyFalls back to the WordPress tagline
Allowed crawlersGPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Google-Extended, Amazonbot
Blocked crawlersCCBot, Bytespider

Files are regenerated automatically when a tracked post is saved, debounced by 60 seconds so a burst of edits costs one pass.

SEO plugin integration

Descriptions and noindex flags are read from whichever of these is installed, in this order: The SEO Framework, Yoast SEO, Rank Math, SEOPress. With none installed, the excerpt is used, falling back to the first 30 words.

WP-CLI

wp ai-visibility generate all              # regenerate every file
wp ai-visibility generate llms-txt         # just one
wp ai-visibility generate llms-txt --dry-run   # print it, write nothing
wp ai-visibility status                    # what exists, how big, how old

A failed write is an error with a non-zero exit code, not a silent no-op.

MCP / Abilities API

On WordPress 6.9 and newer the plugin registers three abilities, which any MCP client connected to the site can call:

AbilityCapability required
ai-visibility/get-llms-txtread
ai-visibility/get-site-summaryread
ai-visibility/regeneratemanage_options

Hooks

Every hook receives the value it should filter, and falls back to the unfiltered value if a callback returns the wrong type.

FilterFilters
ai_visibility_llms_txtThe complete llms.txt
ai_visibility_llms_full_txtThe complete llms-full.txt
ai_visibility_ai_txtThe complete ai.txt
ai_visibility_identity_jsonThe identity array, before encoding
ai_visibility_markdownA page's complete Markdown
ai_visibility_markdown_contentJust the converted body
ai_visibility_markdown_meta['Key' => 'Value'] metadata lines
ai_visibility_markdown_before_contentMarkdown inserted above the body
// Add structured metadata to events, above the prose.
add_filter( 'ai_visibility_markdown_meta', function ( array $meta, WP_Post $post ): array {
    if ( $post->post_type === 'event' ) {
        $meta['Starts']   = get_post_meta( $post->ID, 'start_date', true );
        $meta['Location'] = get_post_meta( $post->ID, 'venue', true );
    }

    return $meta;
}, 10, 2 );

Development

composer install
composer qa            # lint, style, PHPCS, PHPStan, tests — what CI runs
composer test          # tests alone
composer format        # apply the code style

The quality gate is described in CONTRIBUTING.md. Reporting a vulnerability: SECURITY.md.

Contributing

Contributions are welcome: see the contributing guide. Report security issues privately, as described in the security policy.

License

AI Visibility is open-source software licensed under the GPL-2.0-or-later. © RuBee group

↑↓ navigate openesc close