Back to Directory/Security & Auth

SyteCheck

Scan a website for SEO, accessibility, performance and security issues, and read the report.

Security & AuthTypeScriptv0.1.1

SyteCheck MCP Server

Run website audits from Claude, ChatGPT, 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

  1. Create an account at sytecheck.app and verify your email.
  2. Mint a key at Account → API keys. Choose scans:read only if you want the model to read existing scans but never spend quota. The secret is shown once.
  3. 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

ToolWhat it does
run_scanSubmit a URL and wait for the report. Spends quota.
get_scan_reportFull findings for a scan id — the way to collect a scan run_scan left running
list_scansScan history, newest first, with filters
get_scan_trendsScore history per URL across repeat scans
list_categoriesWhat SyteCheck can check, and what your plan includes
get_account_usageScans remaining this month, and when the quota resets

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

VariableDefaultPurpose
SYTECHECK_API_KEY(required)Your sck_ API key
SYTECHECK_API_URLhttps://api.sytecheck.appAPI base URL
SYTECHECK_WAIT_TIMEOUT_MS60000How long run_scan waits before returning a scan id
SYTECHECK_POLL_INTERVAL_MS3000Gap between status checks while waiting

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.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @ascentws/sytecheck-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "com-sytecheck-sytecheck-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ascentws/sytecheck-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@ascentws/sytecheck-mcpnpm

Compatible MCP Clients

SyteCheck works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More