Agent Tools / MCP install guides / SEO Audit in Pi

SEO Audit in Pi

SEO and local AI readiness. The MCP server is https://seoaudit.openkrill.app/mcp. No key. The steps below are only for Pi. A call to audit_page was checked against that server on 2026-10-01.

What this server answers

Audit a website for technical and on-page SEO problems. Ask "audit example.com", "what SEO problems does https://example.com/docs have?" or "which pages on my site have missing titles or duplicate descriptions?".

audit_site reads the homepage, the sitemap and the pages they link to (up to 25 pages), respecting robots.txt, and returns the rules that failed grouped by priority, each with the affected pages, the fix and the link to the documentation the rule comes from. It covers robots.txt and sitemap problems, broken links and redirect chains, noindex, nofollow and canonical issues, crawlable links and URL tidiness, titles, descriptions, headings, thin and duplicate content, image alt text, structured data and review markup, share tags, language and hreflang, mixed content and page weight. For sites with many similar pages (a page per city or product) it compares the pages it read: groups of near-identical pages, pages with little text of their own once the shared template wording is removed, hreflang links the other page does not return or sets without x-default, and sitemap pages that no page links to. For local businesses it checks LocalBusiness markup (name, address, telephone, opening hours, map or coordinates), whether those details match what the page shows, and whether each location has its own page. audit_page applies the page rules to one address.

local_ai_readiness checks whether that same site is ready to be named in AI search. It reads only the business's own public pages and returns pass, warn or fail for a page per service, location or service-area pages, visible prices, an FAQ, LocalBusiness schema (name, address, phone, hours, geo, sameAs), consistent name address and phone, on-site proof, a clear one-line description and recent dated content. Each check names the page it was seen on and a concrete fix. It adds what Gemini (first-party site, 41.9%), OpenAI (directories, 40.9%) and Anthropic (reviews, 20.5%) leaned on in a Yext study of 492,000 local queries, as of 2026-10-01, plus advice about claimed profiles, cover photos and attributes. It does not query those engines and does not fetch directories or review sites. It is limited per day and per network.

check_ai_instructions reports whether a public site publishes /llms.txt and /llms-full.txt, an AI page, home-page links, and whether the file matches the site's own name, products and facts. generate_ai_instructions drafts an llms.txt from those pages for the owner to review and does not publish it. Both cite https://x.com/chris_nectiv/status/2105655128162468334 (2026-10-01) as the reason they exist. They do not query AI engines and do not promise an effect on AI Overviews.

The rules follow Google Search Central documentation; the catalog is adapted from the MIT-licensed jev-seo project, and rules that are conventions rather than requirements are marked as heuristics. Optionally, a judgement step (off unless requested) reads the pages' text with a language model service to say what each page is for, how specific it is, and which pages compete for the same searches. It is limited per day and per network, and when it is unavailable the rule results are returned with a note. local_ai_readiness does not use that step.

Only the site you name is crawled: public websites on the standard ports, robots.txt respected, a small number of requests at a time, with a User-Agent that names Agent Tools. Private, local and internal addresses and redirects into them are refused. It does not run JavaScript, does not measure rankings, traffic or backlinks, and does not test whether a firewall blocks crawlers.

It stores nothing about you or the site: pages are read, turned into findings and dropped. Answers are cached for ten minutes. The only lasting records are a daily count of calls, daily totals for the optional judgement step, and daily totals for local AI-readiness checks (a day count, plus a count per coarse daily hash of the network, deleted after a few days).

What it can do

Tools

Add SEO Audit in Pi

Pi does not speak MCP on its own. The pi-mcp-adapter extension (these steps match version 2.34.0) loads remote servers and keeps their schemas out of the prompt until you ask. Install it once, then restart Pi:

pi install npm:pi-mcp-adapter

Add the server to a shared MCP file. Use .mcp.json in the project if only that project needs SEO Audit, or ~/.config/mcp/mcp.json if you want it in every project. Pi also reads ~/.agents/mcp.json. A Pi-only override lives in ~/.pi/agent/mcp.json or .pi/mcp.json and wins over the shared file.

{
  "mcpServers": {
    "seo-audit": {
      "url": "https://seoaudit.openkrill.app/mcp"
    }
  }
}

The url is enough. Do not set command: that field is for a local process. No API key header. After restart, run /mcp and confirm the server is listed. The first call connects lazily. Ask: Audit example.com for SEO problems The adapter should offer audit_site, audit_page, local_ai_readiness, check_ai_instructions, generate_ai_instructions.

Leave directTools off unless you want those schemas in every turn. With a handful of tools the cost is small. The default proxy is the better fit: search for the tool, then call it. /mcp disable seo-audit writes a project override in .pi/mcp.json without editing the shared file. Run /reload after that change.

Pi will not find this server by scanning Cursor or Claude config unless you run /mcp setup and import it. Putting the url in .mcp.json is the direct path and the one this page tests against. The server is the same public endpoint the other clients use, with the same limits and the same privacy rules.

A call checked on 2026-10-01

example.com is one public page. Judgement stays off, so no page text is sent to a language model. The request below was posted to https://seoaudit.openkrill.app/mcp as tools/call. HTTP 200. Source: the SEO Audit server, read 2026-10-01.

{
  "method": "tools/call",
  "params": {
    "name": "audit_page",
    "arguments": {
      "url": "https://example.com",
      "judge": false
    }
  }
}

Repeat the call yourself if you need a newer reading. Cached answers expire. A rate limit is not a result: wait and try again. Nothing in the call is a ranking, a filing, or advice.

Same server, other clients

Roles that use SEO Audit

Terms used on this page

Source: plugin listing for seo-audit in this repository, and a live tools/call on 2026-10-01. As of 2026-10-01.