Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Klyo Website Analyzer

FreeNot checked

Website analyzer API: detect tech stack (WordPress/Wix/Shopify), SEO issues, AI-crawler visibility (GPTBot/ClaudeBot), real transfer size and keyword targeting.

GitHubEmbed

About

Website analyzer API: detect tech stack (WordPress/Wix/Shopify), SEO issues, AI-crawler visibility (GPTBot/ClaudeBot), real transfer size and keyword targeting. Free tier, no signup. Polish-first. | Prześwietlarka stron — API

README

Analyze any website with one HTTP request. Detect what it runs on, how Google sees it, whether AI assistants can read it, how much a phone actually downloads, which keywords it targets, and what to fix — ranked.

🇵🇱 Polska wersja tego pliku · 🔧 Live tool · 📖 Docs (PL)

This repository contains documentation and usage examples. The analysis engine is closed source.


Why another one

Ahrefs costs $29–1499/mo, Semrush $139–500/mo, BuiltWith $295–995/mo, Wappalyzer $250–450/mo (2026 pricing). They are built for specialists and speak their language.

This one answers questions a business owner asks, and adds two things the others don't have:

  • AI visibility — does the site let GPTBot, ClaudeBot, PerplexityBot and Google-Extended in? A site blocked from AI crawlers simply doesn't exist in ChatGPT answers. We read the target's robots.txt the way each assistant would.
  • Real transfer size — not the uncompressed HTML, but the bytes a phone actually downloads. Most tools report the former, which is 3–8× larger.

Polish-first: reports are written for people who run a business, not for SEO consultants. The API itself is language-neutral.


Quick start

Reading a stored result needs no key at all:

curl https://klyo.pl/api-przeswietlarki/przeswietl/v1/wynik/mtu9hfexbh

The 10-character result key comes from the URL after analyzing any site in the browser, or from a new analysis response.


Endpoints

GET /api/przeswietl/v1/wynik/{key}

Returns a stored report. No authentication, no rate limit — the key itself is the credential (49 bits of entropy). Served from an in-memory cache.

200 report · 400 malformed key · 404 no such result

POST /api/przeswietl/v1/badaj

Analyzes a site from scratch. Requires a key with the przeswietl scope, because every call fetches somebody else's page.

curl -X POST https://klyo.pl/api-przeswietlarki/przeswietl/v1/badaj \
  -H "Authorization: Bearer klyo_sk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"adres":"yourcompany.com","konkurent":"competitor.com"}'

Pass konkurent (competitor) to also get their report plus co_dorobic — a ranked list of what they have and you don't.

200 report · 401 bad/missing key · 403 key lacks scope · 409 site blocks automated access · 429 rate limit · 503 queue busy

klwprzeswietl.surowy (binary, over WebSocket)

The same report as raw msgpack bytes straight from storage — no unpacking, no JSON assembly. Connect to wss://klyo.pl/klw?gosc=1.

klw.rpc("przeswietl.surowy", { klucz: "mtu9hfexbh" })
// → { content_type: "application/vnd.msgpack", size: 7760, bytes: Uint8Array }

MCP — a tool for AI assistants

An MCP server exposes the analyzer as klyo_przeswietl_strone, so Claude, ChatGPT and other assistants can use it themselves.

Endpoint https://panel.klyo.pl/mcp
Auth OAuth, scope klyo:read
Arguments adres (required), konkurent (optional)
Rate limit 120 analyses per hour per account

Read-only: it changes nothing, here or on the analyzed site.


Response fields

Field names are Polish (the engine's native language). Full example: przyklady/odpowiedz.json.

Field Type Meaning
klucz string 10-char result key — also the sharing URL
adres, host string Final address after redirects
oceny.ogolna 0–100 Overall score
oceny.google 0–100 Search visibility. Zero if the page is noindex
oceny.ai 0–100 AI assistant visibility
oceny.szybkosc 0–100 Speed, based on real transfer size
oceny.zaufanie, oceny.sprzedaz 0–100 Trust signals; whether the page leads to contact
silnik.nazwa string WordPress, Wix, Shopify, custom-built…
silnik.kreator bool Runs on a subscription site builder
silnik.koszt_rocznie string? Yearly builder cost, when known
kb_pobierane / kb_kodu number Bytes downloaded vs uncompressed size
pakowanie string? br, gzip, zstd or null
ukryta_przed_google bool noindex — invalidates everything else
ai.zablokowane string[] AI assistants denied access
ai.ma_llms, ai.ma_markdown bool Has llms.txt / machine-readable version
frazy[] array Keyword targeting: count, density, position
google object Title, description, headings, word count, structured data
kontakt object Phone, e-mail, form, map, social profiles
sledzenie[], platnosci[], czat, mailing, opinie Detected tools
usterki[] array Issues: severity 0–2, title, consequence, fix
wnioski[] array Top three things to do, in order
co_dorobic[] array With a competitor: what they have, you don't

Performance

Measured on production, single server:

Operation Time Throughput
Read stored result 6.4 µs internal, 0.47 ms over HTTP 12,000+ req/s
Binary read (przeswietl.surowy) bytes straight from storage same, less work both ends
New analysis 13.9 ms + target server time ~70/s per core

Reads are stateless and cached, so they scale horizontally. New analyses are rate limited on purpose: there's someone else's server on the other end.


How our crawler behaves

User agent: klyo-przeswietlarka/1.0 (+https://klyo.pl/robot/)

  • fetches one URL, never walks the site
  • reads and respects robots.txt
  • max 6 fetches per domain per hour; a 15-minute result cache absorbs the rest
  • backs off a domain for 6 hours after three refusals
  • never logs in, never bypasses protection, never hides its identity

Block us in two lines:

User-agent: klyo-przeswietlarka
Disallow: /

Security

The API fetches third-party pages, so it is built so nothing internal is reachable through it:

  • DNS is resolved once and the connection goes to that verified IP — swapping the DNS answer between check and connect achieves nothing
  • private, loopback, link-local and cloud-metadata addresses are rejected, including after redirects
  • http/https only, ports 80/443 only, at most two redirects
  • limits: 6 fetches per domain/hour, 40 per minute total, 6 concurrent
  • decompression capped at 8 MB, request body at 4 kB

Found a hole? Write to [email protected]. Please don't disclose publicly before we patch it.


Terms & privacy

Short version: commercial use is fine, attribution required, no bulk data collection, don't circumvent anyone's refusal.


Getting a key

Write to [email protected] with one sentence about what you're building. Keys are free, including for commercial projects.


License

Docs: CC BY 4.0. Code examples in przyklady/: MIT. The analysis engine remains klyo's property and is not covered by either.

from github.com/krastranseu-lang/klyo-website-analyzer

Installing Klyo Website Analyzer

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/krastranseu-lang/klyo-website-analyzer

FAQ

Is Klyo Website Analyzer MCP free?

Yes, Klyo Website Analyzer MCP is free — one-click install via Unyly at no cost.

Does Klyo Website Analyzer need an API key?

No, Klyo Website Analyzer runs without API keys or environment variables.

Is Klyo Website Analyzer hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Klyo Website Analyzer in Claude Desktop, Claude Code or Cursor?

Open Klyo Website Analyzer on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Klyo Website Analyzer with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs