You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22-16Lines changed: 22 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,19 +4,25 @@ All notable changes to `@automatelab/ai-seo-mcp` are documented in this file.
4
4
5
5
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
7
+
## [1.0.0] - 2026-06-08
8
+
9
+
### Changed
10
+
11
+
**Breaking:** MCP wire names no longer use dots. Anthropic's Messages API (and MCP clients that forward tool definitions to it — Claude Desktop, Claude Code, Zed, etc.) reject tool names outside `^[a-zA-Z0-9_-]{1,64}$`. All 19 tools renamed: namespace separator is now `_` instead of `.` (e.g. `audit.page` → `audit_page`). Semantics unchanged.
12
+
7
13
## [0.6.1] - 2026-06-02
8
14
9
15
### Fixed
10
16
11
-
-**`llms_txt.generate` output-schema validation.** The handler omitted the required `domain` field, so the SDK rejected every response with `MCP error -32602` (invalid `structuredContent`). `domain` is now populated, and `llms_full_txt` is relaxed to nullable to match the handler's `null`-when-`include_full=false` return.
12
-
-**`llms_txt.generate` now follows sitemap-index files.** It previously parsed only a top-level `<urlset>`, so sites whose `sitemap.xml` is an index pointing at child sitemaps fell back to the homepage only. It now walks the referenced child sitemaps (bounded breadth-first) and indexes the full `max_pages`.
17
+
-**`llms_txt_generate` output-schema validation.** The handler omitted the required `domain` field, so the SDK rejected every response with `MCP error -32602` (invalid `structuredContent`). `domain` is now populated, and `llms_full_txt` is relaxed to nullable to match the handler's `null`-when-`include_full=false` return.
18
+
-**`llms_txt_generate` now follows sitemap-index files.** It previously parsed only a top-level `<urlset>`, so sites whose `sitemap.xml` is an index pointing at child sitemaps fell back to the homepage only. It now walks the referenced child sitemaps (bounded breadth-first) and indexes the full `max_pages`.
13
19
14
20
## [0.6.0] - 2026-06-01
15
21
16
22
### Added
17
23
18
-
-**`score.agentic_browsing`** — new tool scoring a page against Lighthouse's Agentic Browsing signals: `llms_txt`, `webmcp`, `accessibility_tree`, and `layout_stability` (0-100 each), with a letter grade and findings.
19
-
-**Chunk-level extractability in `score.citation_worthiness`** — section-by-section scoring of how cleanly an LLM can lift a self-contained answer from each chunk, surfaced as a length-weighted `extractability_score` plus per-chunk analysis and the most/least extractable sections.
24
+
-**`score_agentic_browsing`** — new tool scoring a page against Lighthouse's Agentic Browsing signals: `llms_txt`, `webmcp`, `accessibility_tree`, and `layout_stability` (0-100 each), with a letter grade and findings.
25
+
-**Chunk-level extractability in `score_citation_worthiness`** — section-by-section scoring of how cleanly an LLM can lift a self-contained answer from each chunk, surfaced as a length-weighted `extractability_score` plus per-chunk analysis and the most/least extractable sections.
20
26
21
27
## [0.5.1] - 2026-06-01
22
28
@@ -27,14 +33,14 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
27
33
### Added
28
34
29
35
-**`openclaw.plugin.json`** + a clawhub `SKILL.md` so the MCP lists on clawhub / OpenClaw.
30
-
- Expanded the `audit.site` description (Glama listing) with behavioral transparency and when-to-use guidance.
36
+
- Expanded the `audit_site` description (Glama listing) with behavioral transparency and when-to-use guidance.
31
37
32
38
## [0.5.0] - 2026-05-26
33
39
34
40
### Added
35
41
36
-
-**Body-quality dimensions in `audit.page`** — image alt-text coverage, anchor-text quality, heading hierarchy, Title↔H1 overlap, and readability.
37
-
-**Response-header dimensions in `audit.page`** — mixed-content detection plus HSTS, `X-Content-Type-Options`, and `Referrer-Policy` checks.
42
+
-**Body-quality dimensions in `audit_page`** — image alt-text coverage, anchor-text quality, heading hierarchy, Title↔H1 overlap, and readability.
43
+
-**Response-header dimensions in `audit_page`** — mixed-content detection plus HSTS, `X-Content-Type-Options`, and `Referrer-Policy` checks.
38
44
-**`.mcp.json`** at repo root for Open Plugins / cursor.directory compatibility.
39
45
40
46
## [0.4.1] - 2026-05-23
@@ -52,25 +58,25 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
52
58
53
59
### Changed
54
60
55
-
-**Breaking: tool rename to dot-notation.** All tools migrated from flat snake_case (`audit_page`, `check_robots`, …) to a navigable dot-notation tree (`audit.page`, `check.robots`, …). Categories: `audit.*`, `check.*`, `score.*`, `llms_txt.*`, `rewrite.*`, `extract.*`, `diff.*`, `report.*`. Update any saved invocations.
61
+
-**Breaking: tool rename to dot-notation.** All tools migrated from flat snake_case (`audit_page`, `check_robots`, …) to a navigable dot-notation tree (`audit_page`, `check_robots`, …). Categories: `audit.*`, `check.*`, `score.*`, `llms_txt.*`, `rewrite.*`, `extract.*`, `diff.*`, `report.*`. Update any saved invocations.
56
62
57
63
### Added
58
64
59
65
-**`outputSchema` (Zod) on every tool** — callers can type-check responses; hosts can reason about return shape before calling. Returns now also surface `structuredContent` alongside the legacy `content` text block.
60
66
-**MCP `annotations` on every tool** — `title`, `readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`. Hosts use these to decide whether to auto-approve a call, prompt the user, or block.
61
-
-**`.describe()` on every input parameter** that lacked one (`audit.site`, `report.save`) — input schemas are now fully self-documenting.
67
+
-**`.describe()` on every input parameter** that lacked one (`audit_site`, `report_save`) — input schemas are now fully self-documenting.
| `audit.site` | Single-call site sweep: `audit.page`+ `check.robots` + `check.sitemap` + `audit.schema` with overall grade and top-5 fixes. |
141
-
| `audit.sitemap` | Site-wide content audit: stride-sample N URLs from the sitemap, run `audit.page` on each, return distribution + worst pages + top findings. |
142
-
| `check.robots` | Parse `robots.txt` and report per-crawler allow/disallow for all known AI crawlers. Surfaces the GPTBot-blocked-but-OAI-SearchBot-allowed trap. |
| `check.technical` | HEAD tag audit: canonical, OpenGraph, Twitter Card, hreflang, HTTPS, noindex, title hygiene. |
145
-
| `score.ai_overview_eligibility` | Score a page's probability of appearing in Google AI Overviews using current correlation factors. |
146
-
| `score.citation_worthiness` | Score how citable a page or text block is for Perplexity, ChatGPT, Google AI Overviews, and Claude. Includes per-section `chunk_analysis` / `extractability_score`: how cleanly an LLM can lift a standalone answer from each heading. |
147
-
| `score.agentic_browsing` | Score a page against the Lighthouse "Agentic Browsing" category (May 2026): llms.txt, WebMCP, accessibility-tree integrity, and layout stability. |
148
-
| `score.test_citation` | Simulate "would an AI engine cite this for this query?" via MCP sampling, with deterministic heuristic fallback. |
149
-
| `llms_txt.generate` | Generate `llms.txt` and optionally `llms-full.txt` from a domain's sitemap. |
150
-
| `llms_txt.validate` | Lint an existing `llms.txt` for spec compliance and broken links. |
151
-
| `rewrite.aeo` | Rewrite content for Answer Engine Optimization (BLUF structure, FAQ format, schema additions). |
| `extract.entities` | Extract named entities, `sameAs` links, and citation-density score from a page's content and structured data. |
154
-
| `diff.pages` | Compare two URLs for AI citation-worthiness: side-by-side dimension scores, gap analysis, and prioritized fix recommendations for url_a. |
155
-
| `report.save` | Render an `audit.page` / `audit.site` result as a Markdown report and write it to disk under `MCP_WORKSPACE_ROOT`. |
156
-
157
-
> **v0.4.0** renamed tools from flat `snake_case` to dot-notation (`audit.page`, `check.robots`, …) for a navigable hierarchy. Update any saved invocations.
| `audit_site` | Single-call site sweep: `audit_page`+ `check_robots` + `check_sitemap` + `audit_schema` with overall grade and top-5 fixes. |
141
+
| `audit_sitemap` | Site-wide content audit: stride-sample N URLs from the sitemap, run `audit_page` on each, return distribution + worst pages + top findings. |
142
+
| `check_robots` | Parse `robots.txt` and report per-crawler allow/disallow for all known AI crawlers. Surfaces the GPTBot-blocked-but-OAI-SearchBot-allowed trap. |
| `check_technical` | HEAD tag audit: canonical, OpenGraph, Twitter Card, hreflang, HTTPS, noindex, title hygiene. |
145
+
| `score_ai_overview_eligibility` | Score a page's probability of appearing in Google AI Overviews using current correlation factors. |
146
+
| `score_citation_worthiness` | Score how citable a page or text block is for Perplexity, ChatGPT, Google AI Overviews, and Claude. Includes per-section `chunk_analysis` / `extractability_score`: how cleanly an LLM can lift a standalone answer from each heading. |
147
+
| `score_agentic_browsing` | Score a page against the Lighthouse "Agentic Browsing" category (May 2026): llms.txt, WebMCP, accessibility-tree integrity, and layout stability. |
148
+
| `score_test_citation` | Simulate "would an AI engine cite this for this query?" via MCP sampling, with deterministic heuristic fallback. |
149
+
| `llms_txt_generate` | Generate `llms.txt` and optionally `llms-full.txt` from a domain's sitemap. |
150
+
| `llms_txt_validate` | Lint an existing `llms.txt` for spec compliance and broken links. |
151
+
| `rewrite_aeo` | Rewrite content for Answer Engine Optimization (BLUF structure, FAQ format, schema additions). |
| `extract_entities` | Extract named entities, `sameAs` links, and citation-density score from a page's content and structured data. |
154
+
| `diff_pages` | Compare two URLs for AI citation-worthiness: side-by-side dimension scores, gap analysis, and prioritized fix recommendations for url_a. |
155
+
| `report_save` | Render an `audit_page` / `audit_site` result as a Markdown report and write it to disk under `MCP_WORKSPACE_ROOT`. |
156
+
157
+
> **v0.4.0** renamed tools from flat `snake_case` to dot-notation (`audit_page`, `check_robots`, …) for a navigable hierarchy. Update any saved invocations.
0 commit comments