Skip to main content

lv24-seo-optimizer

ci PyPI npm license python

Free-first SEO control plane for humans and AI agents.

Your site's SEO, without a dashboard. Pull Search Console, Yandex Webmaster and Metrika, Bing, CrUX and your own crawl into one history — then get a weekly diff by email, an MCP server and a CLI that agents can actually use. No paid platform, no SERP scraping, no vendor account.

🚀 Start 🧠 Use 🛠 Operate
Install · See it work · Docs CLI · MCP tools · Skills Scheduling · Data limits · Security

One tool that pulls Google Search Console, Yandex Webmaster, Yandex Metrika, Bing Webmaster, Chrome UX Report and PageSpeed Insights into a single normalized model, crawls your site for technical SEO regressions, and turns all of it into scheduled email reports, MCP tools, CLI commands and agent skills.

No paid SEO platform required. Everything in the default path has a free tier.

┌──────────── data sources (free) ────────────┐      ┌──── surfaces ────┐
│ GSC · Yandex Webmaster · Metrika · Bing ·    │ ───▶ │ CLI (--json)     │
│ CrUX · PSI · your own crawl + nginx logs     │      │ MCP server       │
└──────────────────────────────────────────────┘      │ Skills / AGENTS  │
                                                      │ Email / Telegram │
                                                      │ SQLite history   │
                                                      └──────────────────┘

Why another SEO tool

  • Free-first fusion. Existing MCP servers wrap one vendor each and hand raw vendor shapes to the model. We join GSC + Bing + Yandex + Metrika per property, and we say out loud what the APIs cannot give you (Yandex has no query×page join, GSC caps at 50k rows/day, data lags 2–3 days). Every response carries truncated, total, data_age and limitations[].
  • Diffs, not dashboards. Reports compare against the last stored snapshot and only email you when something material changed (traffic drop, new indexing errors, sitemap regressions, TLS expiry).
  • Agent-native. A small, stable MCP tool surface (read-only by default), a JSON envelope on every CLI command, and skills that encode audit → plan → fix → verify against a real repository.
  • Zero spend. Public-repo CI, SQLite storage, SMTP/Telegram delivery, no SaaS in the default path. Paid providers (Ahrefs, Semrush, DataForSEO, SerpApi) are optional adapters that use your key.

Status

Alpha (v0.1.0 in progress). Working today: six provider adapters (GSC, Yandex Webmaster, Yandex Metrika, Bing/IndexNow, CrUX, PSI), a 30-rule crawler, SQLite history, analysis (deltas, opportunities, indexing triage, multi-engine fusion, nginx log stats), report builders + HTML/text/Markdown renderers, SMTP/Telegram delivery with idempotency, the full CLI, the MCP server (10 tools, 3 resources, 3 prompts) and scheduler generators.

Still missing before v0.1.0 is declared stable: GSC service-account auth (OAuth token only today), write operations for sitemap/recrawl (IndexNow is wired; the others return an honest WRITE_DISABLED), and an end-to-end run against a live property. See docs/plans/2026-11-10-implementation-plan.md for the wave status.

Install

# Python (recommended)
uvx --from lv24-seo lv24-seo doctor
pipx install lv24-seo                 # or: uv tool install lv24-seo

# Node users: thin launcher over the same CLI
npx @lv24/seo doctor --json
lv24-seo init --property https://example.com   # writes seo.toml + data/
lv24-seo auth set --provider gsc --stdin       # token in the OS keychain
lv24-seo report weekly --json --out reports/
lv24-seo mcp serve                             # stdio MCP server
lv24-seo install --client claude|opencode|vscode|cursor

npx @lv24/seo requires uv (or an installed lv24-seo binary): the npm package is a launcher, not a second implementation.

See it work

$ lv24-seo doctor

[OK  ] python: 3.13.12
[OK  ] platform: Windows 11
[OK  ] config: C:\work\seo.toml
[OK  ] cwd_writable: C:\work
[FAIL] tokens: not configured yet (gsc / yandex / metrika / bing / crux)
$ lv24-seo report weekly --days 7 --json --out reports/

# headline   clicks +18.2%, impressions +6.4%, position -1.1
# traffic    gsc 1 240 clicks · yandex 310 · metrika 92 sessions
# indexing   3 new "crawled - not indexed" URLs, 0 regressions
# actions    5 opportunities, expected +41 clicks/week
# honesty    data_age_days=2, yandex: top_3000_queries, no_query_page_join

The same data is available as MCP tools (seo_weekly_report, gsc_search_analytics, yandex_query_stats, seo_indexing_triage, …) and as three skills that encode audit → plan → fix → verify.

What it will do

Surface Examples
Reports weekly search performance + delta, indexing triage, striking-distance opportunities, content decay, technical regressions
MCP tools gsc_search_analytics, yandex_query_stats, yandex_indexing_state, crawl_site, seo_weekly_report, seo_indexing_triage, seo_opportunities, seo_recrawl_request (gated)
CLI init, doctor, auth, gsc, yandex, crawl, audit, report, schedule, mcp serve
Skills seo-weekly, seo-indexing-triage, seo-technical-audit — decision trees + tool recipes + output contracts
Automation cron / systemd timer / Windows Task Scheduler generators, GitHub Actions recipe, nginx log ingest

Supported sources

Source Free tier Used for Write operations
Google Search Console yes (OAuth or service account) queries, pages, countries, devices, URL inspection, sitemaps sitemap submit (gated)
Yandex Webmaster yes (OAuth) queries, indexing history, diagnostics, sitemaps, recrawl recrawl queue (quota-gated)
Yandex Metrika yes organic sessions, landing pages, goals —
Bing Webmaster + IndexNow yes queries, crawl issues, instant URL ping IndexNow submit
Chrome UX Report yes (API key) origin-level field CWV —
PageSpeed Insights yes lab audits per URL —
Your site — crawl, robots, sitemap, JSON-LD, hreflang, links —
nginx access logs — bot crawl budget, 5xx to bots —

Documents

For AI agents

Read AGENTS.md first. It is the canonical contract: repo layout, how to run things, what is read-only, how to propose a change. Machine-readable helpers:

  • schemas/tools.json — generated tool schemas (works without MCP)
  • llms.txt — doc map for LLM crawlers
  • skills/*/SKILL.md — portable skills (Claude Code, OpenCode, Codex)
  • MCP Registry: io.github.LevapVeeskela/lv24-seo

License

Apache-2.0. See LICENSE and TRADEMARKS.md. Data pulled from Google/Yandex/Bing belongs to the property owner — this project never resells it.

Metadata

Release files for lv24-seo 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lv24-seo 0.1.2
File Size Uploaded Provenance Actions
lv24_seo-0.1.2.tar.gz 420.0 kB With provenance Details for lv24_seo-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for lv24-seo 0.1.2
File Interpreter ABI Platform Actions
lv24_seo-0.1.2-py3-none-any.whl Python 3 none any Details for lv24_seo-0.1.2-py3-none-any.whl

Total release size: 632.4 kB

Release files / lv24_seo-0.1.2.tar.gz

Download URL lv24_seo-0.1.2.tar.gz
Size 420.0 kB
Tags Source
SHA-256 checksum
How to use checksums
844de056e6e0dd47cf51ab026d7fd6bef9bf7ef935e693dfdec28b062b660197
BLAKE2b-256 checksum
How to use checksums
d53928b9847fd20b5f5d79a4faf8a596c853f50b91a6bb827713a9e9258339df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Release files / lv24_seo-0.1.2-py3-none-any.whl

Download URL lv24_seo-0.1.2-py3-none-any.whl
Size 212.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
71dc86c0b73fd26f269f2ba62b3b226ba81c765842768555da0833c315b3dced
BLAKE2b-256 checksum
How to use checksums
cacac6417964db700373825dc54723b827abab20a0e7c164d01ffed6ef72befa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Security for lv24-seo 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for lv24_seo-0.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page