{"_id":"@ascentws/sytecheck-mcp","_rev":"2-ed27835f8b57c787e7750c3761fb2cf8","name":"@ascentws/sytecheck-mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@ascentws/sytecheck-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","sytecheck","website-audit","seo","accessibility","lighthouse","core-web-vitals"],"author":{"name":"Ascent Web Solutions"},"license":"MIT","_id":"@ascentws/sytecheck-mcp@0.1.0","maintainers":[{"name":"esbertrand","email":"Erik@bertpc.com"}],"homepage":"https://sytecheck.app","bugs":{"url":"https://github.com/BertPC/sytecheck-mcp/issues"},"bin":{"sytecheck-mcp":"dist/index.js"},"dist":{"shasum":"eb4c89d14ad6f6b2d894e35090f6f5fed033850a","tarball":"https://registry.npmjs.org/@ascentws/sytecheck-mcp/-/sytecheck-mcp-0.1.0.tgz","fileCount":22,"integrity":"sha512-faJ/8yR8EHWX6LQDDkoabn+YIyb07ljYgvdrDo7iQko3xVvdkgjtx5PppWR2kznT7M3jfBHCn/0AwsvJX7o7kg==","signatures":[{"sig":"MEUCIQCpV8eW41DFCjtEfwkeNlltkwPz9SUpt8z3zVWPDbT4xgIgVjw2JUNBYWDvY42L3uvT5vzzRG845dYi/gd8g7uaBGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64647},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"9d396d1ff47ad50d51d9160c7fce48ad8b3a7a81","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write .","test:watch":"vitest","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"esbertrand","email":"Erik@bertpc.com"},"repository":{"url":"git+https://github.com/BertPC/sytecheck-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Model Context Protocol server for SyteCheck — run website audits and read their reports from Claude, ChatGPT, Cursor, and any other MCP client.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^5.0.0","globals":"^17.12.0","prettier":"^3.4.0","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.10.0","typescript-eslint":"^8.59.2"},"_npmOperationalInternal":{"tmp":"tmp/sytecheck-mcp_0.1.0_1789043581442_0.32626764578133605","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"_id":"@ascentws/sytecheck-mcp@0.1.1","bin":{"sytecheck-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/BertPC/sytecheck-mcp/issues"},"dist":{"shasum":"52a084a70ace5cc32e6b010ee164c5c64fa586fd","tarball":"https://registry.npmjs.org/@ascentws/sytecheck-mcp/-/sytecheck-mcp-0.1.1.tgz","fileCount":22,"integrity":"sha512-iZTrfaiqQxB4civPNCGSEHr3i8MEsZiPhPmnbxIIKMFXqlCd5ouJDxfYWgIU9jo9fvIzEU3JdFHYjpudk1JJwA==","signatures":[{"sig":"MEUCIBRjgPo0gYQfonM+NQzvGn06hFPyGuoPpuRsD3L8DSZ/AiEAxUCmt/vVVq7KG8R29x++KGDpw+XAdqSbg2dn+l0NU8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCZvQ9zXoZBSFREx8YlYc1tSzR1WViKN58aj8ztVbWZBQIgU8JqWRMK+nthZrsk3pk/sD1arE86p/9UwPmL/YMLgt8="}],"unpackedSize":64875},"main":"dist/index.js","name":"@ascentws/sytecheck-mcp","type":"module","types":"./dist/index.d.ts","author":{"name":"Ascent Web Solutions"},"engines":{"node":">=20"},"gitHead":"f24d598fe0933d1292438bf1a06ee7282062f6f2","license":"MIT","mcpName":"com.sytecheck/sytecheck-mcp","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write .","test:watch":"vitest","format:check":"prettier --check .","prepublishOnly":"npm run build"},"version":"0.1.1","_npmUser":{"name":"esbertrand","email":"Erik@bertpc.com"},"homepage":"https://sytecheck.app","keywords":["mcp","model-context-protocol","sytecheck","website-audit","seo","accessibility","lighthouse","core-web-vitals"],"repository":{"url":"git+https://github.com/BertPC/sytecheck-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Model Context Protocol server for SyteCheck — run website audits and read their reports from Claude, ChatGPT, Cursor, and any other MCP client.","directories":{},"maintainers":[{"name":"esbertrand","email":"Erik@bertpc.com"}],"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^5.0.0","globals":"^17.12.0","prettier":"^3.4.0","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.10.0","typescript-eslint":"^8.59.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sytecheck-mcp_0.1.1_1789045709547_0.505883814197285"}}},"time":{"created":"2026-09-10T12:33:01.318Z","modified":"2026-09-10T13:08:29.819Z","0.1.0":"2026-09-10T12:33:01.612Z","0.1.1":"2026-09-10T13:08:29.637Z"},"bugs":{"url":"https://github.com/BertPC/sytecheck-mcp/issues"},"author":{"name":"Ascent Web Solutions"},"license":"MIT","homepage":"https://sytecheck.app","keywords":["mcp","model-context-protocol","sytecheck","website-audit","seo","accessibility","lighthouse","core-web-vitals"],"repository":{"url":"git+https://github.com/BertPC/sytecheck-mcp.git","type":"git"},"description":"Model Context Protocol server for SyteCheck — run website audits and read their reports from Claude, ChatGPT, Cursor, and any other MCP client.","maintainers":[{"name":"esbertrand","email":"Erik@bertpc.com"}],"readme":"# 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","readmeFilename":"README.md"}