--- description: Обязательный порядок MCP перед backend-кодом (Fastify, Drizzle, SQLite) globs: apps/api/**/*,packages/db/**/*,packages/shared/**/* alwaysApply: false --- # Backend MCP — обязательно Перед **любой** задачей в `apps/api`, `packages/db`, `packages/shared` — сначала MCP, не training data. ## Рекомендуемые MCP для проекта | Назначение | Где включить | |------------|--------------| | Context7 (Fastify, Drizzle, Vitest, Zod) | `.cursor/settings.json` → `context7-plugin` | | shadcn/ui (экраны с API) | `.cursor/settings.json` → `shadcn` | | Codegraph (поиск по кодовой базе) | `.cursor/mcp.json` → `codegraph` | | E2E / smoke UI | Cursor Settings → `cursor-ide-browser` | | Поиск неизвестного MCP | `user-mcp-on-demand` | **Cloudflare не использовать** — стек проекта: Docker + Node + SQLite, без Workers. ## Порядок | Задача | MCP | |--------|-----| | Поиск существующего кода | **Codegraph** `codegraph_explore` | | Fastify plugins, routes, hooks | **Context7** (`fastify`, `@fastify/jwt`, `@fastify/type-provider-zod`) | | Drizzle schema, queries, migrations | **Context7** (`drizzle-orm`, `drizzle-kit`, `better-sqlite3`) | | Zod contracts (`packages/shared`) | **Context7** (`zod`) | | Vitest (`app.inject()`) | **Context7** (`vitest`, `fastify`) | | API + UI | `packages/shared` → **shadcn MCP** ([`shadcn-mcp.mdc`](shadcn-mcp.mdc)) | | E2E / smoke UI | **cursor-ide-browser** | | Неизвестный инструмент | **user-mcp-on-demand** `search_tools` | ## Запрещено - Угадывать API Fastify/Drizzle из памяти - Самописные аналоги `@fastify/*` (CORS, static, JWT, rate-limit) - Дублировать Zod schemas вне `@cfdm/shared` Связанные: [`backend-fastify.mdc`](backend-fastify.mdc), [`backend-drizzle.mdc`](backend-drizzle.mdc), [`backend-testing.mdc`](backend-testing.mdc).