# GenReady (npm · @genready/mcp-server)

Scan a website for AI search and agent readiness, then get a fix checklist for your agent.

- Trust score: 72/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-22

## Components

- remote · `genready.ai`: 40/100, [markdown](https://verifymcp.io/servers/odb366-genready/genready.md), [page](https://verifymcp.io/servers/odb366-genready/genready)
- npm · `@genready/mcp-server`: 72/100 (this document), [markdown](https://verifymcp.io/servers/odb366-genready/genready-mcp-server.md), [page](https://verifymcp.io/servers/odb366-genready/genready-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@genready/mcp-server`
- Version: `1.2.5`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-22.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 92 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 75/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (58% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### 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.

### Claude

```bash
claude mcp add odb366-genready -- npx -y @genready/mcp-server
```

### Cursor

```json
{
  "mcpServers": {
    "odb366-genready": {
      "command": "npx",
      "args": [
        "-y",
        "@genready/mcp-server"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "odb366-genready": {
      "command": "npx",
      "args": [
        "-y",
        "@genready/mcp-server"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add odb366-genready -- npx -y @genready/mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "odb366-genready": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@genready/mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add odb366-genready --command npx --arg -y --arg @genready/mcp-server
```

### Hermes

```yaml
mcp_servers:
  odb366-genready:
    command: "npx"
    args: ["-y", "@genready/mcp-server"]
```

### Netclaw

```json
{
  "McpServers": {
    "odb366-genready": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@genready/mcp-server"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add odb366-genready -t stdio -c npx -a -y @genready/mcp-server
```

### Other

```json
{
  "mcpServers": {
    "odb366-genready": {
      "command": "npx",
      "args": [
        "-y",
        "@genready/mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-22 (score 72, +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.

### 2026-10-21 (score 71, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-10-20 (score 56, −15)

- [security regression] Malware scan: pass → unverified
- [functional regression] Schema quality: pass → fail
- [functional] Package version: 1.2.2 → 1.2.5

### 2026-10-18 (score 71)

First indexed and scored.

## MCP tools (12)

### `analyze_website` (~169 tokens)

Scan a page for AI readiness

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.

Input parameters:

- `scope` (string): 'full' (default), 'content' (content quality only) or 'crawlability' (technical checks only)
- `url` (string, required): 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.

Output parameters:

- `fixChecklist`
- `locked` (array)
- `reportId` (string)
- `scope` (string)
- `scores` (object)
- `status` (string)
- `url` (string)

### `get_report` (~171 tokens)

Read a page report

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.

Input parameters:

- `report_id` (string, required): Report ID (UUID) from analyze_website, check_status or list_reports, for example 3f2b8c1e-9a4d-4b7e-8c21-5d6e7f8a9b0c

Output parameters:

- `fixChecklist`
- `locked` (array)
- `reportId` (string)
- `scope` (string)
- `scores` (object)
- `status` (string)
- `url` (string)

### `get_findings` (~188 tokens)

List findings for a page or site

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.

Input parameters:

- `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.

Output parameters:

- `findings` (array)

### `verify_findings` (~150 tokens)

Check whether fixes landed

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.

Input parameters:

- `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

Output parameters:

- `checkedAt` (string)
- `results` (array)
- `summary` (object)

### `get_artifact` (~144 tokens)

Get a file to commit

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.

Input parameters:

- `domain_id` (string): Domain ID, for a site-scoped artifact
- `kind` (string, required): Which file to generate
- `report_id` (string): Report ID, for a page-scoped artifact

Output parameters:

- `changed` (boolean)
- `containsSiteText` (boolean)
- `content` (string)
- `contentType` (string)
- `filename` (string)
- `kind` (string)
- `needsHumanInput` (boolean)
- `notes` (array)

### `update_finding` (~167 tokens)

Record what you did about a finding

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.

Input parameters:

- `finding_id` (string, required): 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, required): 'fixed_pending' after making a change, 'ignored' to silence it, 'open' to undo

### `start_site_analysis` (~187 tokens)

Scan a whole site

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.

Input parameters:

- `domain_id` (string, required): 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

### `check_status` (~142 tokens)

Check scan progress

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.

Input parameters:

- `report_id` (string, required): Report ID (UUID) returned by analyze_website, for the scan to check

### `list_reports` (~216 tokens)

List reports

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.

Input parameters:

- `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.

### `get_usage` (~30 tokens)

Check plan usage

Check the plan, API credits used and remaining, and the billing period. Call before a batch of scans.

### `list_domains` (~36 tokens)

List monitored domains

List the account's monitored domains and their IDs, for use with get_fix_plan. Requires an API key with the domain:read scope.

Output parameters:

- `domains` (array)

### `get_fix_plan` (~114 tokens)

Read a site-wide fix plan

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.

Input parameters:

- `domain_id` (string): Domain ID from list_domains; reads its latest completed run
- `site_analysis_id` (string): A specific site analysis run ID

Output parameters:

- `actions` (array)
- `domainId` (string)
- `generatedAt` (string)
- `siteAnalysisId` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/odb366-genready/genready-mcp-server#diagnostics

## Score history

- 2026-10-22: 72
- 2026-10-21: 71
- 2026-10-20: 56
- 2026-10-19: 71
- 2026-10-18: 71

## Common questions

### 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.

## Links

- npm package: https://www.npmjs.com/package/@genready/mcp-server
- Socket report: https://socket.dev/npm/package/@genready/mcp-server
- Repository: https://github.com/odb366/genready-mcp-server
- Website: https://genready.ai/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/odb366-genready/genready-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/odb366-genready/genready-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/odb366-genready/genready-mcp-server
