{
  "markdown": "# CleanSlice MCP Server\n\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=cleanslice&config=eyJ1cmwiOiJodHRwczovL21jcC5jbGVhbnNsaWNlLm9yZy9tY3AifQ%3D%3D)\n\nMCP (Model Context Protocol) server that gives AI coding agents access to the CleanSlice architecture documentation. Connect it to Claude, Cursor, Windsurf, or any MCP-compatible client so the AI knows how to build apps using CleanSlice conventions.\n\n## Installation\n\n<details>\n<summary><b>Install in Claude Code</b></summary>\n\nRun this command. See [Claude Code MCP docs](https://docs.anthropic.com/en/docs/claude-code/mcp) for more info.\n\n```sh\nclaude mcp add --scope user --transport http cleanslice https://mcp.cleanslice.org/mcp\n```\n\n> Remove `--scope user` to install for the current project only.\n\n**Tip: enforce MCP usage with CLAUDE.md**\n\nTo make sure Claude Code always consults the CleanSlice MCP **before** writing any code, add the following to your project's `CLAUDE.md`:\n\n```markdown\n## CleanSlice MCP — Required\n\nBefore writing or modifying any code you MUST consult the CleanSlice MCP:\n\n1. Call `get-started` to load the core architecture rules.\n2. Call `list-categories` to see available documentation areas.\n3. Call `search` with at least 2 task-relevant queries covering:\n   (a) core implementation details for the feature you are building,\n   (b) edge cases, constraints, or standards that apply.\n4. Call `read-doc` to read the full document when search snippets aren't enough.\n\nDo NOT guess conventions — always verify against MCP results first.\n```\n\nThis ensures the agent reads CleanSlice docs at the start of every task, not after the fact.\n\n**Optional: add a Stop hook as a safety net**\n\nTo catch cases where the agent skips the MCP despite the `CLAUDE.md` instruction, add this to `.claude/settings.json`:\n\n```json\n{\n  \"hooks\": {\n    \"Stop\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"agent\",\n            \"timeout\": 180,\n            \"prompt\": \"You are a verification subagent. Your job: ensure the main Claude Code agent used the `cleanslice` MCP knowledge sufficiently and did not guess.\\n\\nContext JSON:\\n$ARGUMENTS\\n\\nVerification requirements:\\n1) Identify what the user asked for (deliverables + constraints) from the conversation/transcript in $ARGUMENTS.\\n2) Verify the agent consulted the `cleanslice` MCP server for relevant knowledge BEFORE finalizing:\\n   - Must call `cleanslice` \\\"get-started\\\" at least once (or equivalent) to confirm the server's purpose and usage.\\n   - Must call \\\"list-categories\\\" to understand the available knowledge areas.\\n   - Must call \\\"search\\\" with task-relevant queries (at least 2 searches) covering: (a) core implementation details, (b) edge cases / constraints.\\n   - May call \\\"read-doc\\\" to get full document content when search snippets are insufficient.\\n3) Validate coverage:\\n   - If any required category is relevant but not checked, fail.\\n   - If answers include specifics that are not supported by MCP results, fail.\\n4) Output STRICT JSON only:\\n   - If everything is verified: {\\\"ok\\\": true}\\n   - If anything is missing/unsupported: {\\\"ok\\\": false, \\\"reason\\\": \\\"What is missing + exact MCP calls the main agent must run next (e.g., run list-categories, then search for X/Y, then update the solution).\\\"}\\n\\nImportant:\\n- `cleanslice` tools will appear as MCP tools. Use whatever exact tool names are available in this environment (they follow the mcp__<server>__<tool> naming pattern).\\n- Do not allow stopping until MCP-backed evidence is sufficient.\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>Install in Cursor</b></summary>\n\nGo to: `Settings` -> `Cursor Settings` -> `MCP` -> `Add new global MCP server`\n\nPaste the following into your Cursor `~/.cursor/mcp.json` file. You may also install in a specific project by creating `.cursor/mcp.json` in your project folder. See [Cursor MCP docs](https://docs.cursor.com/context/model-context-protocol) for more info.\n\n```json\n{\n  \"mcpServers\": {\n    \"cleanslice\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.cleanslice.org/mcp\"\n    }\n  }\n}\n```\n\n**Tip: enforce MCP usage with a Cursor rule**\n\nCreate `.cursor/rules/cleanslice.mdc` in your project to make Cursor always consult the MCP before writing code:\n\n```markdown\n---\ndescription: CleanSlice architecture rules\nglobs: **/*.{ts,vue,prisma}\nalwaysApply: true\n---\n\n## CleanSlice MCP — Required\n\nBefore writing or modifying any code you MUST consult the CleanSlice MCP:\n\n1. Call `get-started` to load the core architecture rules.\n2. Call `list-categories` to see available documentation areas.\n3. Call `search` with at least 2 task-relevant queries covering:\n   (a) core implementation details for the feature you are building,\n   (b) edge cases, constraints, or standards that apply.\n4. Call `read-doc` to read the full document when search snippets aren't enough.\n\nDo NOT guess conventions — always verify against MCP results first.\n```\n\n</details>\n\n<details>\n<summary><b>Install in Windsurf</b></summary>\n\nAdd to your Windsurf MCP config file. See [Windsurf MCP docs](https://docs.windsurf.com/windsurf/mcp) for more info.\n\n```json\n{\n  \"mcpServers\": {\n    \"cleanslice\": {\n      \"type\": \"http\",\n      \"serverUrl\": \"https://mcp.cleanslice.org/mcp\"\n    }\n  }\n}\n```\n\n**Tip: enforce MCP usage with a Windsurf rule**\n\nCreate `.windsurf/rules/cleanslice.md` in your project to make Windsurf always consult the MCP before writing code:\n\n```markdown\n## CleanSlice MCP — Required\n\nBefore writing or modifying any code you MUST consult the CleanSlice MCP:\n\n1. Call `get-started` to load the core architecture rules.\n2. Call `list-categories` to see available documentation areas.\n3. Call `search` with at least 2 task-relevant queries covering:\n   (a) core implementation details for the feature you are building,\n   (b) edge cases, constraints, or standards that apply.\n4. Call `read-doc` to read the full document when search snippets aren't enough.\n\nDo NOT guess conventions — always verify against MCP results first.\n```\n\n</details>\n\n<details>\n<summary><b>Install in VS Code (Copilot)</b></summary>\n\nAdd to `.vscode/mcp.json` in your project. See [VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more info.\n\n```json\n{\n  \"servers\": {\n    \"cleanslice\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.cleanslice.org/mcp\"\n    }\n  }\n}\n```\n\n**Tip: enforce MCP usage with Copilot instructions**\n\nCreate `.github/copilot-instructions.md` in your project root to make Copilot always consult the MCP before writing code:\n\n```markdown\n## CleanSlice MCP — Required\n\nBefore writing or modifying any code you MUST consult the CleanSlice MCP:\n\n1. Call `get-started` to load the core architecture rules.\n2. Call `list-categories` to see available documentation areas.\n3. Call `search` with at least 2 task-relevant queries covering:\n   (a) core implementation details for the feature you are building,\n   (b) edge cases, constraints, or standards that apply.\n4. Call `read-doc` to read the full document when search snippets aren't enough.\n\nDo NOT guess conventions — always verify against MCP results first.\n```\n\n</details>\n\n<details>\n<summary><b>Install in Claude Desktop</b></summary>\n\nAdd to your `claude_desktop_config.json`. See [Claude Desktop MCP docs](https://modelcontextprotocol.io/quickstart/user) for more info.\n\n```json\n{\n  \"mcpServers\": {\n    \"cleanslice\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.cleanslice.org/mcp\"\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>Install in Opencode</b></summary>\n\nAdd this to your Opencode configuration file. See [Opencode MCP docs](https://opencode.ai/docs/mcp-servers) for more info.\n\n```json\n{\n  \"mcp\": {\n    \"cleanslice\": {\n      \"type\": \"remote\",\n      \"url\": \"https://mcp.cleanslice.org/mcp\",\n      \"enabled\": true\n    }\n  }\n}\n```\n\n**Tip: enforce MCP usage with AGENTS.md**\n\nCreate `AGENTS.md` in your project root to make Opencode always consult the MCP before writing code:\n\n```markdown\n## CleanSlice MCP — Required\n\nBefore writing or modifying any code you MUST consult the CleanSlice MCP:\n\n1. Call `get-started` to load the core architecture rules.\n2. Call `list-categories` to see available documentation areas.\n3. Call `search` with at least 2 task-relevant queries covering:\n   (a) core implementation details for the feature you are building,\n   (b) edge cases, constraints, or standards that apply.\n4. Call `read-doc` to read the full document when search snippets aren't enough.\n\nDo NOT guess conventions — always verify against MCP results first.\n```\n\n</details>\n\n<details>\n<summary><b>Run Locally</b></summary>\n\n```bash\ngit clone https://github.com/CleanSlice/mcp.git\ncd mcp\nnpm install\nnpm run dev\n```\n\nThen point your MCP client to `http://localhost:8080/mcp`.\n\n</details>\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `get-started` | Returns the essential CleanSlice rules and conventions. **Call this first.** |\n| `list-categories` | Lists all documentation categories available for search filtering |\n| `search` | Search docs by query, category, framework, phase, or tags. Returns **snippets** (keyword-in-context excerpts) and document paths |\n| `read-doc` | Read the full content of a specific document by path. Use after `search` to get complete docs |\n\n### Recommended workflow\n\n```\nget-started            → learn the core rules\nlist-categories        → discover what's available\nsearch(query: \"...\")   → find relevant docs (returns snippets)\nread-doc(path: \"...\")  → read full document when snippets aren't enough\n```\n\nThe `search` tool returns 1-3 keyword-in-context snippets per result instead of full document content. This keeps responses compact (~3-5K instead of ~95K) while showing the most relevant sections. Use `read-doc` with the `path` from search results to fetch the complete document when needed.\n\n## Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `PORT` | `8080` | Server port |\n| `NODE_ENV` | - | Set to `dev` for debug/verbose logging |\n| `DOCS_PATH` | Auto-discover | Path to bundled docs directory |\n| `GITHUB_REPO` | `CleanSlice/docs` | Fallback GitHub repo for docs |\n| `GITHUB_BRANCH` | `main` | GitHub branch to fetch from |\n| `GITHUB_TOKEN` | - | GitHub token (optional, for higher rate limits) |\n| `GITHUB_CACHE_TTL` | `3600` | GitHub content cache TTL in seconds |\n| `CORS_ORIGIN` | `*` | Allowed CORS origin(s) |\n\n## Docker\n\n```bash\ndocker build -t cleanslice-mcp .\ndocker run -p 8080:8080 cleanslice-mcp\n```\n\n## Endpoints\n\n| Endpoint | Description |\n|----------|-------------|\n| `GET /sse` | SSE transport (for Claude Desktop, Cursor) |\n| `POST /messages` | SSE message handler |\n| `POST /mcp` | Streamable HTTP transport |\n| `GET /health` | Health check |\n| `GET /api` | Swagger docs |\n",
  "bytes": 10871,
  "sha": "d4fe5043a3ab486ef2b4bbc0b5e7746435e149bd22238570c1c7dd43d7a3fe53",
  "repo_slug": "cleanslice/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_cleanslice_mcp_98a43470/readme"
}