Install
openclaw skills install @meelis545/qqq-ai-visibilityCheck how visible a company website is to AI search with the free QQQ AI Visibility Checker (qqq.ee). Runs a technical AI readiness check of a domain (AI crawler access in robots.txt, sitemap, title, meta description, H1, canonical, noindex, Organization JSON-LD, content in HTML, llms.txt) and reads the latest public report of whether ChatGPT, Gemini, Perplexity and Claude name the company and cite its website. Use when the user asks whether AI assistants or AI crawlers can see, mention or cite a website or brand, asks for a GEO or AEO readiness check of a domain, or asks for a domain's QQQ AI visibility report. Do not use for general SEO advice, keyword research, or private, internal or local hosts.
openclaw skills install @meelis545/qqq-ai-visibilityFree tool by QQQ, an SEO and AI search agency in Estonia. It shows three things separately, without a combined score:
Web tool: QQQ AI Visibility Checker (Estonian: AI nähtavuse kontroll). Full reports are public pages: all reports.
https://qqq.ee/mcp only. Use exactly qqq.ee, not www.qqq.ee (www answers with a 301 redirect, which breaks the POST).curl. Nothing is installed.Nothing to set up. The API is public and free, with a daily limit (see Limits).
One endpoint, JSON-RPC 2.0 over HTTP POST. Every call has the same shape; only the tool name and the arguments change:
curl -s https://qqq.ee/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"TOOL","arguments":{ARGS}}}'
The answer is JSON:
result.content[0].text: a ready-to-show text summary with links. Show this to the user.result.structuredContent: the same data as fields, for your own reasoning.result.isError: true: the domain was refused or the limit is reached. The text says why and still gives a link the user can open.language is "en" (default) or "et" (Estonian). Use "et" when the user writes in Estonian.
check_ai_visibility: technical check of a domaincurl -s https://qqq.ee/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_ai_visibility","arguments":{"domain":"example.com","language":"en"}}}'
domain (required): a public domain or URL, for example example.com or https://www.example.com/page.structuredContent fields: readiness (passed, total, checks[] with id and status ok/missing/unknown), blockedAiCrawlers, topFixes, latestReport, links.fullCheck, links.report.links.fullCheck link for that.get_public_report: the latest public AI answer report of a domaincurl -s https://qqq.ee/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_public_report","arguments":{"domain":"example.com","language":"en"}}}'
get_tool_info: what the tool is, limits and linkscurl -s https://qqq.ee/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_tool_info","arguments":{"language":"en"}}}'
check_ai_visibility.get_public_report for the details.links.fullCheck link (QQQ AI Visibility Checker if you have no domain link).isError or a limit message, show the message and the link.localhost. The API refuses them anyway.| Tool | Limit |
|---|---|
check_ai_visibility | 5 per day per IP address, 300 per day in total. An invalid domain does not use an attempt. |
get_public_report | no limit |
get_tool_info | no limit |
The same server works as a remote MCP server at https://qqq.ee/mcp (Streamable HTTP, no auth). Setup for Claude, ChatGPT, Cursor and VS Code: QQQ MCP server docs.