seo 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PRIVACY.md +10 -10
- package/README.md +38 -27
- package/SECURITY.md +2 -2
- package/dist/cli.js +85 -229
- package/dist/cli.js.map +1 -1
- package/dist/dist-DjclF3Qk.js +334 -0
- package/dist/dist-DjclF3Qk.js.map +1 -0
- package/dist/{dist-C9P8dY80.js → dist-FO7n-64s.js} +1 -1
- package/dist/index.d.ts +507 -1657
- package/dist/index.js +11229 -14720
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.js +5079 -8890
- package/dist/mcp.js.map +1 -1
- package/dist/{package-7H_jIpAz.js → package-CeYsRRpB.js} +2 -2
- package/dist/{package-7H_jIpAz.js.map → package-CeYsRRpB.js.map} +1 -1
- package/evals/seo.json +2 -2
- package/package.json +5 -4
- package/skills/seo/SKILL.md +10 -11
- package/dist/dist-wSAqXmM1.js +0 -698
- package/dist/dist-wSAqXmM1.js.map +0 -1
package/evals/seo.json
CHANGED
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
{
|
|
19
19
|
"id": 2,
|
|
20
20
|
"prompt": "No MCP tools are connected in this session. Get me the main SEO report for example.com as JSON.",
|
|
21
|
-
"expected_output": "Should use the CLI. Should check `command -v seo` first, and if it is missing, install it with `npm i -g seo` and tell the person to run `seo start` to sign in with Google. Should then run `seo report --site example.com --json
|
|
21
|
+
"expected_output": "Should use the CLI. Should check `command -v seo` first, and if it is missing, install it with `npm i -g seo` and tell the person to run `seo start` to sign in with Google. Should then run `seo report --site example.com --json`, and run `seo sites` first if the site is unknown. Should note that JSON mode never prompts. Should read the result before summarizing and should not fabricate output if sign-in is missing.",
|
|
22
22
|
"assertions": [
|
|
23
23
|
"Checks whether the seo command is installed before the first call",
|
|
24
24
|
"Uses `npm i -g seo` and `seo start` when the command or sign-in is missing",
|
|
25
|
-
"Runs `seo report` with --json and
|
|
25
|
+
"Runs `seo report` with --json and --site",
|
|
26
26
|
"Does not fabricate report output when the command cannot run"
|
|
27
27
|
],
|
|
28
28
|
"files": []
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
|
+
"mcpName": "io.github.iannuttall/seo",
|
|
4
5
|
"description": "The SEO command for AI agents: a free Google Search Console MCP server and CLI. Reads your real Search Console, Google Analytics and Bing data for traffic drops, quick wins, content decay, cannibalization and indexing, plus DataForSEO and Ahrefs keyword research.",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"license": "Apache-2.0",
|
|
@@ -80,7 +81,7 @@
|
|
|
80
81
|
"deploy:web": "pnpm --filter @seo/web secrets:check && pnpm --filter @seo/web exec wrangler d1 migrations apply seo-telemetry --remote && pnpm --filter @seo/web exec wrangler deploy",
|
|
81
82
|
"deploy:web:dry-run": "pnpm --filter @seo/web exec wrangler deploy --dry-run",
|
|
82
83
|
"hooks:install": "node scripts/install-git-hooks.mjs",
|
|
83
|
-
"lint": "biome check . && node scripts/check-emdashes.mjs && node scripts/check-report-parity.mjs && pnpm run skills:validate
|
|
84
|
+
"lint": "biome check . && node scripts/check-emdashes.mjs && node scripts/check-report-parity.mjs && pnpm run skills:validate",
|
|
84
85
|
"lint:static": "biome check . && node scripts/check-emdashes.mjs && node scripts/check-report-parity.mjs && pnpm run skills:validate",
|
|
85
86
|
"lint:fix": "biome check . --write",
|
|
86
87
|
"loc:audit": "node scripts/loc-audit.mjs",
|
|
@@ -93,9 +94,9 @@
|
|
|
93
94
|
"secrets:web:check-local": "pnpm --filter @seo/web secrets:check-local",
|
|
94
95
|
"secrets:web:publish": "pnpm --filter @seo/web secrets:publish",
|
|
95
96
|
"skills:validate": "node scripts/validate-skills.mjs",
|
|
96
|
-
"test": "turbo run test && pnpm run
|
|
97
|
+
"test": "turbo run test && pnpm run test:contracts:built",
|
|
97
98
|
"test:built": "turbo run test && pnpm run test:contracts:built",
|
|
98
|
-
"test:contracts:built": "node --test scripts/package.test.mjs scripts/provider-packages.test.mjs
|
|
99
|
+
"test:contracts:built": "node --test scripts/package.test.mjs scripts/provider-packages.test.mjs",
|
|
99
100
|
"test:resources": "pnpm run build:package && pnpm run test:resources:built",
|
|
100
101
|
"test:resources:built": "node scripts/resource-harness.mjs && node scripts/provider-resource-harness.mjs && node scripts/provider-extension-resource-harness.mjs",
|
|
101
102
|
"test:package-install": "pnpm --filter @seo/core build && pnpm --filter @seo/mcp build && pnpm run build:package && node --test scripts/installed-package.test.mjs",
|
package/skills/seo/SKILL.md
CHANGED
|
@@ -34,12 +34,13 @@ the CLI or the local MCP server.
|
|
|
34
34
|
| `seo crawl` | `seo_crawl` | A site crawl with technical issues and the URLs they affect |
|
|
35
35
|
| `seo internal-links --url <url>` | `seo_internal_links` | Pages that could link to a target page |
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
Run `seo_sites` (or `seo sites`) when you do not know the property.
|
|
38
|
+
CLI commands need `--site` (or `--url`): `example.com`, a URL or
|
|
39
|
+
`sc-domain:example.com`. Nothing is saved between runs; keep your own notes.
|
|
39
40
|
|
|
40
41
|
## How to run them
|
|
41
42
|
|
|
42
|
-
1. Run `seo report
|
|
43
|
+
1. Run `seo report --site <site>` (or `seo_report`) without a section. It shows totals
|
|
43
44
|
against the previous period, the pages and queries that moved, and a short
|
|
44
45
|
count with top rows for each section.
|
|
45
46
|
2. Pick the one section that matters and run it with `--section <id>` (or
|
|
@@ -51,9 +52,8 @@ Sites can be given as `example.com`, a URL or `sc-domain:example.com`.
|
|
|
51
52
|
4. Each result ends with the command to run next. Follow it when it fits the
|
|
52
53
|
question.
|
|
53
54
|
|
|
54
|
-
Each command takes
|
|
55
|
-
|
|
56
|
-
in the output.
|
|
55
|
+
Each command takes a target and optional dates. Everything else is automatic
|
|
56
|
+
and shown in the output.
|
|
57
57
|
|
|
58
58
|
## Common jobs
|
|
59
59
|
|
|
@@ -78,7 +78,8 @@ The report overview shows Google and Bing clicks for the same dates. The
|
|
|
78
78
|
add Bing to Google. Bing lists only its top rows by week, so a missing row is
|
|
79
79
|
unknown, not zero. Bing runs in the CLI and local MCP server: connect it once
|
|
80
80
|
with `seo providers bing connect` (or `SEO_BING_API_KEY`). The hosted server
|
|
81
|
-
has no Bing yet
|
|
81
|
+
has no Bing yet, so its totals are Google only: no Bing data there is not
|
|
82
|
+
"no Bing traffic". Run `npx -y seo report --site <site> --section bing --json`.
|
|
82
83
|
|
|
83
84
|
## Research keys
|
|
84
85
|
|
|
@@ -99,8 +100,6 @@ as a free column next to domains; credit it as "Domain Rating by Ahrefs".
|
|
|
99
100
|
- A Google update in the same window is timing, not cause.
|
|
100
101
|
- Intentional `noindex`, canonicals and redirects are observations until the
|
|
101
102
|
person says they are wrong.
|
|
102
|
-
-
|
|
103
|
-
- Show the facts, for example in a table, and ask before you edit any page.
|
|
103
|
+
- Show the facts in a table and ask before you edit any page.
|
|
104
104
|
|
|
105
|
-
Old report names
|
|
106
|
-
0.3 and print their new command. Use the new commands.
|
|
105
|
+
Old 0.2 report names, such as `seo quick-wins`, print their new command.
|