GenReady
NPM · @GENREADY/MCP-SERVER · 2 COMPONENTS
Scan a website for AI search and agent readiness, then get a fix checklist for your agent.
Available components
Last scanned (14 hours ago)
Scores higher than 41% of npm servers
Category Marketing and SEO
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 1 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1714 tokens (~142/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (58% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 22 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 20 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- Schema quality: pass → fail ▼ functional
- Package version: 1.2.2 → 1.2.5 functional
- 18 Oct 26 71
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 22 Oct 2026 · Analysed npm/@genready/mcp-server@1.2.5
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
analyze_website Scan a page for AI readiness ~169
Scan one URL for readiness to be cited by AI search engines (ChatGPT, Perplexity, Google AI Overviews) and used by AI agents. Returns scores and the fix checklist: prioritized problems with concrete fixes. Uses one API credit per call, so re-scan only after deploying a change. scope='content' or 'crawlability' runs a narrower, faster scan.
| Name | Type | Req | Description |
|---|---|---|---|
| scope | string | – | 'full' (default), 'content' (content quality only) or 'crawlability' (technical checks only) |
| url | string | yes | Full http(s) URL of the page to scan |
| wait | boolean | – | Wait up to about 25s for the result (default). Slower scans, or false, return a report ID to poll with check_status. |
| Name | Type | Req | Description |
|---|---|---|---|
| fixChecklist | – | – | – |
| locked | array | – | – |
| reportId | string | – | – |
| scope | string | – | – |
| scores | object | – | – |
| status | string | – | – |
| url | string | – | – |
No examples provided.
check_status Check scan progress ~142
Check the progress of one page scan by report ID. Returns its status (queued, processing, complete or failed), a progress percentage when known, and which tool to call next. Use it when analyze_website returned a report ID before the scan finished, or after you started a scan with wait=false. Poll every few seconds, not in a tight loop. For a whole-site run started with start_site_analysis, call get_fix_plan instead. Returns an error if the report ID is unknown. Read-only. Free: does not use a credit.
| Name | Type | Req | Description |
|---|---|---|---|
| report_id | string | yes | Report ID (UUID) returned by analyze_website, for the scan to check |
No output schema declared.
No examples provided.
get_artifact Get a file to commit ~144
Generate a file that fixes a deterministic finding: 'robots_txt' (unblocks AI crawlers while leaving other rules alone), 'llms_txt' (lists the site's real pages) or 'jsonld' (a script block for one page). Anything we did not measure comes back as TODO rather than a guess, so check needsHumanInput before committing. Pass exactly one of report_id or domain_id. Free: does not use a credit.
| Name | Type | Req | Description |
|---|---|---|---|
| domain_id | string | – | Domain ID, for a site-scoped artifact |
| kind | string | yes | Which file to generate |
| report_id | string | – | Report ID, for a page-scoped artifact |
| Name | Type | Req | Description |
|---|---|---|---|
| changed | boolean | yes | – |
| containsSiteText | boolean | yes | – |
| content | string | yes | – |
| contentType | string | yes | – |
| filename | string | yes | – |
| kind | string | yes | – |
| needsHumanInput | boolean | yes | – |
| notes | array | yes | – |
No examples provided.
get_findings List findings for a page or site ~188
Findings are the fix list keyed by rule: each carries a stable id that survives re-scans, a policy saying whether an agent may apply the fix unattended ('apply') or should only propose it, and whether a fix can be confirmed by one cheap fetch. Pass exactly one of report_id (the findings of one page) or domain_id (the findings of the latest site analysis), otherwise it returns an error. Use get_report instead if you only need scores. Pass the ids it returns to verify_findings, update_finding and get_artifact. Read-only. Free: does not use a credit.
| Name | Type | Req | Description |
|---|---|---|---|
| domain_id | string | – | Domain ID (UUID) from list_domains, for the latest site analysis. Omit if you pass report_id. |
| report_id | string | – | Report ID (UUID), for the findings of one page. Omit if you pass domain_id. |
| Name | Type | Req | Description |
|---|---|---|---|
| findings | array | yes | – |
No examples provided.
get_fix_plan Read a site-wide fix plan ~114
Read the ranked, site-wide fix plan from a domain's latest site analysis: each action says how many pages it affects, how to fix it, and which URLs to verify on. Pass exactly one of domain_id (latest run) or site_analysis_id (a specific run). Free: does not use a credit. Requires the domain:read scope.
| Name | Type | Req | Description |
|---|---|---|---|
| domain_id | string | – | Domain ID from list_domains; reads its latest completed run |
| site_analysis_id | string | – | A specific site analysis run ID |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | yes | – |
| domainId | string | – | – |
| generatedAt | string | – | – |
| siteAnalysisId | string | – | – |
No examples provided.
get_report Read a page report ~171
Read a stored page report by report ID: the scores and the prioritized fix checklist, with a note on any fixes locked on the account's plan. Use it when you already have a report ID (from analyze_website, check_status or list_reports). It reads saved data and never rescans, so it shows the page as it was when scanned; call analyze_website to see changes. Returns an error if the ID is unknown or belongs to another account. Free: does not use a credit.
| Name | Type | Req | Description |
|---|---|---|---|
| report_id | string | yes | Report ID (UUID) from analyze_website, check_status or list_reports, for example 3f2b8c1e-9a4d-4b7e-8c21-5d6e7f8a9b0c |
| Name | Type | Req | Description |
|---|---|---|---|
| fixChecklist | – | – | – |
| locked | array | – | – |
| reportId | string | – | – |
| scope | string | – | – |
| scores | object | – | – |
| status | string | – | – |
| url | string | – | – |
No examples provided.
get_usage Check plan usage ~30
Check the plan, API credits used and remaining, and the billing period. Call before a batch of scans.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_domains List monitored domains ~36
List the account's monitored domains and their IDs, for use with get_fix_plan. Requires an API key with the domain:read scope.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| domains | array | yes | – |
No examples provided.
list_reports List reports ~216
List the page reports this account has generated, newest first. Each entry has the report ID, URL, overall score, status and creation time. Use it to find a report ID for get_report or get_findings, or to see which pages were already scanned before spending a credit on analyze_website. Filter by URL or status; results come in pages of up to 100, so check the page count at the top of the output and request the next page for more. Read-only. Free: does not use a credit. Returns 'No reports found.' when nothing matches.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Results per page, 1 to 100 (default 20) |
| page | integer | – | Page number, starting at 1 |
| status | string | – | Only reports with this status: 'complete', 'processing', 'queued' or 'failed'. Omit for all. |
| url | string | – | Only reports whose URL contains this text, for example 'example.com/pricing'. Omit for all. |
No output schema declared.
No examples provided.
start_site_analysis Scan a whole site ~187
Start a site-wide analysis and let it pick its own pages: the homepage first, then the sections covering the most pages, since a template problem there repeats across the site. Spends one credit per page scanned, so it can cost a lot at once; the plan cap and the credits left both apply and the smaller wins. When connected through OAuth (for example from Claude), a run scans at most 25 pages unless you pass max_pages. Returns immediately. Over an API key it requires the Start site analyses (site:analyze) scope.
| Name | Type | Req | Description |
|---|---|---|---|
| domain_id | string | yes | Domain ID from list_domains |
| exclude | array | – | Never scan URLs matching these. Applied after include. |
| include | array | – | Only scan URLs matching these patterns. `*` is the wildcard. |
| max_pages | integer | – | Your own ceiling on pages, and therefore on credits |
No output schema declared.
No examples provided.
update_finding Record what you did about a finding ~167
Remember a decision so a later session does not redo it. 'fixed_pending' means you changed something and it is not deployed or confirmed yet; 'ignored' silences a finding and requires a reason; 'open' undoes either. You cannot set 'verified': that is earned by calling verify_findings against the live site. Free: does not use a credit.
| Name | Type | Req | Description |
|---|---|---|---|
| finding_id | string | yes | Finding id from get_findings |
| ignored_until | string | – | ISO timestamp when an ignore should lapse. Omit to ignore indefinitely. |
| reason | string | – | Why. Required when ignoring, and worth writing for the next session. |
| status | string | yes | 'fixed_pending' after making a change, 'ignored' to silence it, 'open' to undo |
No output schema declared.
No examples provided.
verify_findings Check whether fixes landed ~150
Re-check findings after deploying a fix. Fetches the live page once per check, with no analysis and no credit, and answers verified, still_failing or unverifiable per finding. Use this instead of re-running analyze_website. Pass exactly one of report_id, domain_id or site_analysis_id, and optionally the finding ids to check. Included with Pro and Agency.
| Name | Type | Req | Description |
|---|---|---|---|
| domain_id | string | – | Domain ID, for its latest site analysis |
| finding_ids | array | – | Finding ids from get_findings. Omit to check them all. |
| report_id | string | – | Report ID whose findings to re-check |
| site_analysis_id | string | – | A specific site analysis run |
| Name | Type | Req | Description |
|---|---|---|---|
| checkedAt | string | – | – |
| results | array | yes | – |
| summary | object | – | – |
No examples provided.
How do I install the GenReady MCP server?
GenReady runs locally as an npm package, launched with npx -y @genready/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @genready/mcp-server
claude mcp add odb366-genready -- npx -y @genready/mcp-server
What is the GenReady MCP server?
GenReady is an MCP server listed in the public MCP registry as io.github.odb366/genready. Scan a website for AI search and agent readiness, then get a fix checklist for your agent. This page covers its npm package (@genready/mcp-server).
Is the GenReady MCP server safe to use?
GenReady scores 72 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 22 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the GenReady MCP server expose?
GenReady exposes 12 tools: analyze_website, get_report, get_findings, verify_findings, get_artifact, and 7 more. Their descriptions and schemas cost roughly 1,714 tokens of context every time the server is loaded.
Is the GenReady MCP server still maintained?
GenReady is still listed as active in the MCP registry. We last reached this channel on 22 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the GenReady MCP server under?
GenReady declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.