SyteCheck MCP Server
Run website audits from Claude, Cursor, or any other MCP client, and get the findings back as text you can act on.
SyteCheck scans a page across ten dimensions — HTML validity, SEO, broken links, accessibility (WCAG 2.2 AA via axe-core), performance (a real Lighthouse run), security headers, responsive layout, AI visibility, content freshness, and an AI critique of the visual design — and returns a scored, plain-language report.
A free account works. No card, no trial clock: the free tier includes three scans a month across three categories, which is enough to wire this up and see a real report before deciding whether to pay for more.
Quickstart
- Create an account at sytecheck.app and verify your email.
- Mint a key at Account → API keys. Choose
scans:readonly if you want the model to read existing scans but never spend quota. The secret is shown once. - Add the server to your client, using one of the recipes below.
Claude Code
claude mcp add sytecheck --env SYTECHECK_API_KEY=sck_your_key_here \
-- npx -y @ascentws/sytecheck-mcp
Claude Desktop
Edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"sytecheck": {
"command": "npx",
"args": ["-y", "@ascentws/sytecheck-mcp"],
"env": { "SYTECHECK_API_KEY": "sck_your_key_here" }
}
}
}
Cursor
Add to .cursor/mcp.json in your project, or the global equivalent:
{
"mcpServers": {
"sytecheck": {
"command": "npx",
"args": ["-y", "@ascentws/sytecheck-mcp"],
"env": { "SYTECHECK_API_KEY": "sck_your_key_here" }
}
}
}
Gemini CLI / Antigravity CLI
Add to ~/.gemini/settings.json (or the Antigravity equivalent):
{
"mcpServers": {
"sytecheck": {
"command": "npx",
"args": ["-y", "@ascentws/sytecheck-mcp"],
"env": { "SYTECHECK_API_KEY": "sck_your_key_here" }
}
}
}
OpenAI Agents SDK
from agents import Agent
from agents.mcp import MCPServerStdio
sytecheck = MCPServerStdio(
params={
"command": "npx",
"args": ["-y", "@ascentws/sytecheck-mcp"],
"env": {"SYTECHECK_API_KEY": "sck_your_key_here"},
}
)
agent = Agent(
name="Site auditor",
instructions="Audit sites with SyteCheck and explain what to fix.",
mcp_servers=[sytecheck],
)
Then ask: "Scan https://example.com and tell me what to fix first."
Tools
There is also a scan-and-remediate prompt that scans a URL and turns the
findings into a prioritized fix plan.
A note on cost
run_scan is the only tool that spends anything, and it spends real money: a scan
opens a browser, runs Lighthouse, and calls a vision model. It is marked
non-read-only so your client asks before running it, and its description tells the
model to check remaining quota first and not to re-scan an unchanged page. On a
free account you have three scans a month — an agent looping over run_scan
would exhaust that in one turn.
If you are handing a key to something unattended, mint a scans:read key. It
cannot create scans at all.
Configuration
Note the API host is api.sytecheck.app, not sytecheck.app — the latter
serves the web app and answers API paths with its "page not found" screen.
Using the API directly
The MCP server is a thin client over a plain HTTP API you can call yourself.
- docs/API.md — the full developer guide: authentication, submitting scans, polling, webhooks and their signature verification, rate limits, and versioning.
- public-openapi.json — the OpenAPI 3.1 spec, for generating a client.
- examples/ — runnable clients in curl, Python, Node, Java, and C#, plus a webhook receiver that verifies the delivery signature.
- Interactive docs: Swagger UI · ReDoc
Development
npm install
npm run build
npm test
npm run lint
To run against a local SyteCheck instance:
SYTECHECK_API_KEY=sck_… SYTECHECK_API_URL=http://localhost:8000 node dist/index.js
The server speaks JSON-RPC over stdin and stdout, so nothing may be written to
stdout except protocol messages — a stray console.log corrupts the stream and
the client disconnects with an unhelpful parse error. Diagnostics go to stderr.
Security
See SECURITY.md for how the key is handled, what a leaked key can and cannot do, and how to report a vulnerability.
License
MIT — see LICENSE. The licence covers this code; the SyteCheck name and mark are trademarks of Ascent Web Solutions, and use of the service is governed by its Terms of Service. See TRADEMARK.md for the full terms.