sitelens-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sitelens-mcpexport a severity-ordered fix checklist from my latest report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sitelens-mcp
Local companion MCP for the SiteLens Chrome extension.
Flow (no manual export):
Cursor starts this MCP over stdio (see config below).
MCP also listens on
127.0.0.1:19527(bridge).In Chrome, run SiteLens analysis → click Send to MCP on the floating panel.
The extension
POSTs the currentAnalysisReportto the bridge.Agent tools (
sitelens_get_latest_report, …) read the in-memory cache.
Everything stays on your machine. No cloud upload.
Install
git clone https://github.com/SiteLens-team/sitelens-mcp.git
cd sitelens-mcp
pnpm install
pnpm buildRequires Node.js ≥ 18.
Related MCP server: AgenticSEO MCP Server
Cursor mcp.json
Point at the built entry (use your absolute path):
{
"mcpServers": {
"sitelens": {
"command": "node",
"args": [
"/absolute/path/to/sitelens-mcp/dist/index.js"
]
}
}
}Optional port override:
{
"mcpServers": {
"sitelens": {
"command": "node",
"args": [
"/absolute/path/to/sitelens-mcp/dist/index.js"
],
"env": {
"SITELENS_MCP_PORT": "19527"
}
}
}
}Pairing
Step | Who | What |
1 | Cursor | Starts |
2 | You | Analyze a page with the SiteLens extension |
3 | You | Click Send to MCP on the panel toolbar |
4 | Extension |
|
5 | Agent | Calls |
Health probe:
curl -s http://127.0.0.1:19527/healthTools
Tool | Purpose |
| Bridge up?, port, cached report count |
| Full latest |
| Summaries only (last ~20) |
| Severity-ordered fix checklist (no AI) |
Environment
Variable | Default | Meaning |
|
| Localhost bridge port |
The Chrome extension defaults to the same port. Optional override in extension storage key mcpPort.
Privacy
Bridge binds only
127.0.0.1.Logs never include full report bodies (url + timestamp only).
Reports live in MCP process memory (ring buffer of 20); they vanish when the MCP process exits.
License
MIT
Available Tools
4 toolssitelens_export_checklistA
Build a severity-ordered actionable checklist from the latest (or url-matched) report: SEO warn/fail, image suggestions, a11y, security. No AI.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional URL substring to pick a report |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses that the checklist is severity-ordered, includes specific categories, and is produced with 'No AI', which adds useful behavioral context beyond the schema. But it does not clarify whether the operation is read-only, whether 'export' writes a file, what permissions are needed, or what the response format is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero waste: the action, output, source selection, categories, and the 'No AI' note are all packed efficiently. Nothing is repeated or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one optional parameter and no output schema, the description gives enough context to call it: it explains the source report selection and the contents of the generated checklist. It is slightly incomplete because it does not specify the return format (e.g., text, markdown, file) or clarify the 'export' behavior, but the core calling information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional url parameter. The description adds only 'latest (or url-matched)' nuance, which the schema already covers as 'Optional URL substring to pick a report'; the schema does the heavy lifting, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and output ('Build a severity-ordered actionable checklist') with source options ('latest (or url-matched) report') and the checklist categories (SEO warn/fail, image suggestions, a11y, security). It clearly distinguishes itself from a raw report fetch, though it does not explicitly name sibling tools like sitelens_get_latest_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the tool is used when an agent wants a checklist derived from the latest or a url-matched report rather than the raw report itself. However, it gives no explicit when-to-use versus alternatives, no when-not conditions, and does not name sitelens_get_latest_report or sitelens_list_reports as the alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sitelens_get_latest_reportA
Return the latest AnalysisReport JSON pushed by the SiteLens extension. Optional url substring filter.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional URL substring to match (case-insensitive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the data source ('pushed by the SiteLens extension'), which signals the report may not exist, but it is silent on what happens on an empty store, how 'latest' is determined, and whether the filter searches only history.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler, and the core action is front-loaded ahead of the optional filter detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description does not characterize what an AnalysisReport contains or what is returned when nothing matches. For a simple single-parameter read tool this is close, but the undefined return shape leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single `url` parameter is fully documented, including case-insensitivity. The description's 'Optional url substring filter' merely restates the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Return) and resource (the latest AnalysisReport JSON), and 'latest' implicitly separates it from sitelens_list_reports. It never names that sibling explicitly, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: fetch the most recent report, optionally narrowed by a URL substring. There is no explicit statement of when to prefer this over sitelens_list_reports or what to do when no report has been pushed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sitelens_list_reportsA
List cached SiteLens reports as summaries only (url, analyzedAt, score, module issue counts). Newest first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it discloses the data source (cache, hence possibly stale), the reduced return shape, and the sort order. It omits what happens when the cache is empty or whether results are truncated, so it falls short of fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, and the return shape is front-loaded in parentheses where an agent will read it first. Every clause (cached, summaries only, field list, newest first) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, read-only listing tool with no output schema, the description supplies the critical missing piece: the exact fields returned and their ordering. Only the empty-result and staleness edge cases are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. The parenthetical field list describes the output shape, not inputs, and adds no parameter meaning because none exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ("List cached SiteLens reports") and constrains the payload ("summaries only") with the exact fields returned. It clearly contrasts with fetching a full report, but never names the sibling sitelens_get_latest_report, leaving that differentiation implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Cached" implies this reads existing local data rather than triggering a new analysis, which is an indirect usage signal, and "summaries only" implies there is a heavier retrieval elsewhere. However, no explicit when-to-use statement or named alternative (e.g., sitelens_get_latest_report) is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sitelens_pingA
Health check: whether the local SiteLens bridge is up, which port it uses, and how many reports are cached.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the return contents (up/down state, port, cached report count) and implies no mutation, but says nothing about auth/prerequisites, latency, or whether the bridge can be started by this call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence that front-loads 'Health check' and enumerates the three returned facts with no waste. The colon construction is slightly terse but readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param diagnostic with no annotations and no output schema, the description supplies the key return semantics (status, port, cache count), which is the main information gap. Only prerequisite/how-to-react guidance is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the schema is trivially complete and the description need only be consistent, which it is. No parameter-level detail is required or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (health check) and a specific resource (the local SiteLens bridge), and by describing connectivity status it is implicitly distinguishable from the report-oriented siblings. It stops just short of explicitly contrasting itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'health check' implies it is called before or when troubleshooting other calls, but no explicit when/when-not guidance or named alternatives are given. Usage must be inferred from the sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
sitelens_export_checklist - First observed
sitelens_get_latest_report - First observed
sitelens_list_reports - First observed
sitelens_ping
TDQS
Scored across 4 tools
Each tool targets a distinct action: health check (ping), retrieve the newest full report, enumerate cached report summaries, and derive a checklist. The only near-overlap (get_latest_report vs list_reports) is clearly separated by 'full AnalysisReport JSON' versus 'summaries only, newest first.' An agent can select correctly from names alone.
All four tools share the sitelens_ prefix and a verb_noun pattern (get_latest_report, list_reports, export_checklist), which is predictable. The lone deviation is sitelens_ping, a bare verb with no noun, but that is idiomatic for a health check.
Four tools is on the lean side but each covers a genuinely separate need (health, fetch, enumerate, transform). Nothing appears redundant, though the surface is thin enough that a couple of convenience tools could reasonably have been added.
The domain is a read-only bridge over cached reports, and the surface covers discovery (list), retrieval (get latest, with url filtering), health, and one derived output (checklist). Minor gap: there is no way to fetch an older or specific report by id/url beyond 'latest matching,' and no cache-clearing operation.
Maintenance
Related MCP Connectors
Accessibility and WCAG data for your own websites: fix lists, live checks, and fix validation.
Scan URLs or HTML for WCAG 2.2 violations. 75-rule manifest, weighted score, shareable reports.
Automated accessibility check (axe-core, Lighthouse) of one public web page; fetch saved results.
Scan a web page for accessibility, security, privacy, quality and SEO issues, with fixes.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables auditing of websites for performance, SEO, accessibility, security, and mobile readiness, with tools to validate URLs, run page audits, save results, and retrieve reports.1-
- AlicenseNot gradedqualityCmaintenanceEnables coding agents to audit public or localhost pages, gather structured SEO evidence, and retrieve compact reports, finding details, and next actions for triage.5 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to analyze public websites, follow progress, retrieve shareable reports, compare multiple URLs, list checks and recent activity, and surface fixes ranked by impact.Apache 2.0

a11yscopeofficial
FlicenseNot gradedqualityBmaintenanceWCAG 2.2 AA accessibility checks for a URL or for HTML the agent just wrote, run locally in headless Chrome. 31 checks with CSS selectors, snippets and fix guidance; the same engine as the A11yScope Chrome extension.1-