E1 · Scanner with a pinned version
10 minRun the "clone and test" block.
Done when: the output shows ℹ tests 33, ℹ pass 33 and ℹ fail 0.
Lesson 7 · 20 min
WebMCP Readiness is INEMA's open scanner: it opens the page in an isolated browser, only reads, and returns a score in four categories. In this lesson you run the scanner on your machine, with a pinned version, against the example page and against your own site, and you learn to read the result as a diagnosis, not as a promise of ranking.
Start the lesson
Goal: run WebMCP Readiness on your machine and read the diagnosis without confusing score with ranking.
Click each block.
In the scanner's own words: SEO, GEO and AEO measure observable signals; they do not guarantee indexing, ranking or citation by AI systems.
Clone the public inematds/webmcp-readiness repository into a practice folder, pin commit 3f3d1c8 (version 2.2.2, from 09/24/2026), install the dependencies, and run its tests.
E=${TMPDIR:-/tmp}/ensaio-formacao-webmcp-base-v72
mkdir -p $E && cd $E
[ -d webmcp-readiness ] || git clone -q https://github.com/inematds/webmcp-readiness
cd webmcp-readiness && git checkout -q 3f3d1c8 && npm ci --no-audit --no-fund --silent
npm test 2>&1 | grep -E '^ℹ (tests|pass|fail) 'ℹ tests 33 ℹ pass 33 ℹ fail 0
The scanner's own 33 tests pass. If the number is different, you are not on the pinned commit.
node:internal/modules/package_json_reader:316
throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@sparticuz/chromium' imported from /tmp/ensaio-formacao-webmcp-base-v72/webmcp-readiness/lib/readiness.mjs
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:316:9)
saída: 1Without the scanner's dependencies installed, Node can't find @sparticuz/chromium and stops at the import. Run the whole block: npm ci is part of it.
readiness-local.mjs imports the scanner, points it to the kit's Chromium, and, only for the page at 127.0.0.1, allows the local address (the scanner blocks private networks by default).
E=${TMPDIR:-/tmp}/ensaio-formacao-webmcp-base-v72
cd ~/projetos/formacao-webmcp-base-v72/kit
for p in antes depois; do node readiness-local.mjs $E/webmcp-readiness $p; echo "saída: $?"; doneReadiness 2.2.2 · kit/site/antes.html · nota 48 (Precisa de ajustes) WebMCP 43 · SEO 53 · GEO 49 · AEO 49 falhas: 5 · avisos: 20 · ok: 5 · ferramentas WebMCP: 0 · document.modelContext no Chromium do scan: não [falha] webmcp · Ferramentas descobertas [falha] webmcp · Nomes e descrições [falha] webmcp · Parâmetros estruturados [falha] seo · Descrição nos resultados [falha] seo · URL canônica lembrete do próprio scanner: SEO, GEO e AEO medem sinais observáveis; não garantem indexação, ranking ou citação por sistemas de IA. saída: 0 Readiness 2.2.2 · kit/site/depois.html · nota 52 (Precisa de ajustes) WebMCP 43 · SEO 59 · GEO 56 · AEO 49 falhas: 5 · avisos: 18 · ok: 7 · ferramentas WebMCP: 0 · document.modelContext no Chromium do scan: não [falha] webmcp · Ferramentas descobertas [falha] webmcp · Nomes e descrições [falha] webmcp · Parâmetros estruturados [falha] seo · Descrição nos resultados [falha] seo · URL canônica lembrete do próprio scanner: SEO, GEO e AEO medem sinais observáveis; não garantem indexação, ranking ou citação por sistemas de IA. saída: 0
Clearing the 10 problems in the tree raised the score from only 48 to 52. Readiness measures other things (description, canonical, WebMCP tools); you check the tree with arvore.mjs. The three WebMCP failures are expected: the page doesn't register tools, and that is course 2.
The same command against inema.club, which belongs to INEMA and registers WebMCP tools with an origin trial token. --json saves the full report.
E=${TMPDIR:-/tmp}/ensaio-formacao-webmcp-base-v72
cd ~/projetos/formacao-webmcp-base-v72/kit
node readiness-local.mjs $E/webmcp-readiness https://inema.club/ --json ${TMPDIR:-/tmp}/readiness-inema.json; echo "saída: $?"E=${TMPDIR:-/tmp}/ensaio-formacao-webmcp-base-v72
cd ~/projetos/formacao-webmcp-base-v72/kit
node readiness-local.mjs $E/webmcp-readiness https://<your-site>/ --json ~/readiness-<your-site>.json; echo "saída: $?"Readiness 2.2.2 · https://www.inema.club/ · nota 92 (Estrutura forte) WebMCP 95 · SEO 100 · GEO 88 · AEO 77 falhas: 0 · avisos: 4 · ok: 26 · ferramentas WebMCP: 8 · document.modelContext no Chromium do scan: sim lembrete do próprio scanner: SEO, GEO e AEO medem sinais observáveis; não garantem indexação, ranking ou citação por sistemas de IA. saída: 0
Score 92 with 8 tools discovered at runtime, because the kit's Chromium 153 is within the origin trial range. A high score means signals are present; it doesn't mean a search engine or an AI will cite the site.
Scanner installed, the example, and your site.
Run the "clone and test" block.
Done when: the output shows ℹ tests 33, ℹ pass 33 and ℹ fail 0.
Run the "before and after" block and compare the categories. Explain, in one sentence, why the score barely changed.
Done when: both lines start with Readiness 2.2.2, the depois.html one shows nota 52, and your sentence mentions what Readiness measures that arvore.mjs does not.
Run the template against your site's main page. Pick the three failures or warnings to handle first and say why. WebMCP tool failures with no registered tool are expected.
Done when: the file ~/readiness-[your-site].json exists, the output ends with saída: 0, and the plan has the score with a date and the three choices.
Question 1 of 4
Does Readiness run a site's WebMCP tools to test them?skill
Question 2 of 4
Your site scored 92. What does that score guarantee?skill
Question 3 of 4
depois.html cleared the tree check, but the score went up only 4 points. Why?
Question 4 of 4
Why pin commit 3f3d1c8 instead of using the newest version?
Pick an answer. The explanation shows up after you try.