{
  "markdown": "# SyteCheck MCP Server\n\nRun website audits from Claude, ChatGPT, Cursor, or any other MCP client, and get\nthe findings back as text you can act on.\n\n[SyteCheck](https://sytecheck.app) scans a page across ten dimensions — HTML\nvalidity, SEO, broken links, accessibility (WCAG 2.2 AA via axe-core), performance\n(a real Lighthouse run), security headers, responsive layout, AI visibility,\ncontent freshness, and an AI critique of the visual design — and returns a scored,\nplain-language report.\n\n**A free account works.** No card, no trial clock: the free tier includes three\nscans a month across three categories, which is enough to wire this up and see a\nreal report before deciding whether to pay for more.\n\n## Quickstart\n\n1. **Create an account** at [sytecheck.app](https://sytecheck.app) and verify your\n   email.\n2. **Mint a key** at Account → API keys. Choose **`scans:read` only** if you want\n   the model to read existing scans but never spend quota. The secret is shown\n   once.\n3. **Add the server** to your client, using one of the recipes below.\n\n### Claude Code\n\n```bash\nclaude mcp add sytecheck --env SYTECHECK_API_KEY=sck_your_key_here \\\n  -- npx -y @ascentws/sytecheck-mcp\n```\n\n### Claude Desktop\n\nEdit `claude_desktop_config.json` (Settings → Developer → Edit Config):\n\n```json\n{\n  \"mcpServers\": {\n    \"sytecheck\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ascentws/sytecheck-mcp\"],\n      \"env\": { \"SYTECHECK_API_KEY\": \"sck_your_key_here\" }\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to `.cursor/mcp.json` in your project, or the global equivalent:\n\n```json\n{\n  \"mcpServers\": {\n    \"sytecheck\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ascentws/sytecheck-mcp\"],\n      \"env\": { \"SYTECHECK_API_KEY\": \"sck_your_key_here\" }\n    }\n  }\n}\n```\n\n### Gemini CLI / Antigravity CLI\n\nAdd to `~/.gemini/settings.json` (or the Antigravity equivalent):\n\n```json\n{\n  \"mcpServers\": {\n    \"sytecheck\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ascentws/sytecheck-mcp\"],\n      \"env\": { \"SYTECHECK_API_KEY\": \"sck_your_key_here\" }\n    }\n  }\n}\n```\n\n### OpenAI Agents SDK\n\n```python\nfrom agents import Agent\nfrom agents.mcp import MCPServerStdio\n\nsytecheck = MCPServerStdio(\n    params={\n        \"command\": \"npx\",\n        \"args\": [\"-y\", \"@ascentws/sytecheck-mcp\"],\n        \"env\": {\"SYTECHECK_API_KEY\": \"sck_your_key_here\"},\n    }\n)\n\nagent = Agent(\n    name=\"Site auditor\",\n    instructions=\"Audit sites with SyteCheck and explain what to fix.\",\n    mcp_servers=[sytecheck],\n)\n```\n\nThen ask: _\"Scan https://example.com and tell me what to fix first.\"_\n\n## Tools\n\n| Tool                | What it does                                                                    |\n| ------------------- | ------------------------------------------------------------------------------- |\n| `run_scan`          | Submit a URL and wait for the report. **Spends quota.**                         |\n| `get_scan_report`   | Full findings for a scan id — the way to collect a scan `run_scan` left running |\n| `list_scans`        | Scan history, newest first, with filters                                        |\n| `get_scan_trends`   | Score history per URL across repeat scans                                       |\n| `list_categories`   | What SyteCheck can check, and what your plan includes                           |\n| `get_account_usage` | Scans remaining this month, and when the quota resets                           |\n\nThere is also a **`scan-and-remediate` prompt** that scans a URL and turns the\nfindings into a prioritized fix plan.\n\n### A note on cost\n\n`run_scan` is the only tool that spends anything, and it spends real money: a scan\nopens a browser, runs Lighthouse, and calls a vision model. It is marked\nnon-read-only so your client asks before running it, and its description tells the\nmodel to check remaining quota first and not to re-scan an unchanged page. **On a\nfree account you have three scans a month** — an agent looping over `run_scan`\nwould exhaust that in one turn.\n\nIf you are handing a key to something unattended, mint a `scans:read` key. It\ncannot create scans at all.\n\n## Configuration\n\n| Variable                     | Default                     | Purpose                                              |\n| ---------------------------- | --------------------------- | ---------------------------------------------------- |\n| `SYTECHECK_API_KEY`          | _(required)_                | Your `sck_` API key                                  |\n| `SYTECHECK_API_URL`          | `https://api.sytecheck.app` | API base URL                                         |\n| `SYTECHECK_WAIT_TIMEOUT_MS`  | `60000`                     | How long `run_scan` waits before returning a scan id |\n| `SYTECHECK_POLL_INTERVAL_MS` | `3000`                      | Gap between status checks while waiting              |\n\nNote the API host is **`api.sytecheck.app`**, not `sytecheck.app` — the latter\nserves the web app and answers API paths with its \"page not found\" screen.\n\n## Using the API directly\n\nThe MCP server is a thin client over a plain HTTP API you can call yourself.\n\n- **[docs/API.md](docs/API.md)** — the full developer guide: authentication,\n  submitting scans, polling, webhooks and their signature verification, rate\n  limits, and versioning.\n- **[public-openapi.json](public-openapi.json)** — the OpenAPI 3.1 spec, for\n  generating a client.\n- **[examples/](examples/)** — runnable clients in curl, Python, Node, Java, and\n  C#, plus a webhook receiver that verifies the delivery signature.\n- Interactive docs: [Swagger UI](https://api.sytecheck.app/api/docs) ·\n  [ReDoc](https://api.sytecheck.app/api/redoc)\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\nnpm run lint\n```\n\nTo run against a local SyteCheck instance:\n\n```bash\nSYTECHECK_API_KEY=sck_… SYTECHECK_API_URL=http://localhost:8000 node dist/index.js\n```\n\nThe server speaks JSON-RPC over stdin and stdout, so **nothing may be written to\nstdout except protocol messages** — a stray `console.log` corrupts the stream and\nthe client disconnects with an unhelpful parse error. Diagnostics go to stderr.\n\n## Security\n\nSee [SECURITY.md](SECURITY.md) for how the key is handled, what a leaked key can\nand cannot do, and how to report a vulnerability.\n\n## License\n\nMIT — see [LICENSE](LICENSE). The licence covers this code; the SyteCheck name and\nmark are trademarks of Ascent Web Solutions, and use of the service is governed by\nits [Terms of Service](https://sytecheck.app/terms). See [TRADEMARK.md](TRADEMARK.md)\nfor the full terms.\n",
  "bytes": 6517,
  "sha": "dd693a931e84c1f138367799ff43d6a3e5f74ba411b7da6267e34e5914bc63b6",
  "repo_slug": "bertpc/sytecheck-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_sytecheck_sytecheck_mcp_a5c21968/readme"
}