skills/vendix-mcp-server/SKILL.md
MCP Gateway for external AI clients: resources, tools, prompts, JWT auth, rate limiting, audit logging, and protocol responses. Trigger: When working with MCP server endpoints, adding MCP resources/tools/prompts, configuring MCP auth, or exposing Vendix data to AI clients.
npx skillsauth add rzyfront/vendix vendix-mcp-serverInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
apps/backend/src/domains/store/mcp/mcp.controller.tsapps/backend/src/domains/store/mcp/mcp-auth.service.tsapps/backend/src/domains/store/mcp/guards/mcp-auth.guard.tsapps/backend/src/domains/store/mcp/mcp-audit.service.tsapps/backend/src/domains/store/mcp/providers/Base route: /mcp.
POST /initializePOST /resources/listPOST /resources/readPOST /tools/listPOST /tools/callPOST /prompts/listPOST /prompts/getController uses @Public() plus @UseGuards(McpAuthGuard). initialize returns protocol version 2024-11-05, capabilities for resources/tools/prompts, and server vendix-mcp-server v1.0.0.
Audit logging runs for all endpoints except initialize.
Token sources:
Authorization: Bearer <JWT>.?token=....McpAuthGuard sets request.mcpAuth and request.user for RequestContextInterceptor propagation.
Rate limit:
mcp:ratelimit:{storeId}.INCR and sets EXPIRE only when current count is 1.Current resource list has 7 URI patterns:
vendix://products/{storeId}vendix://inventory/{storeId}vendix://reports/sales/{storeId}vendix://catalog/categories/{storeId}vendix://catalog/category/{storeId}/{categoryId}vendix://catalog/product/{storeId}/{productId}vendix://catalog/featured/{storeId}McpResourceProvider uses StorePrismaService; actual filtering depends on request context/scoped Prisma, not blindly on the store id embedded in URI.
Security caveat: product detail currently exposes business-sensitive fields such as cost_price and profit_margin. Review before expanding MCP resources or exposing to external clients.
MCP tools come from AIToolRegistry.
context.permissions || context.roles for availability.toolRegistry.executeTool().{ isError: true, content: [...] }.Tool quality caveat: many AI tools are placeholders; only inventory tools are currently service-backed.
McpPromptProvider lists active ai_engine_applications, extracts {{variables}}, and returns prompts. getPrompt uses ai_engine_applications.findUnique({ key }).
Current prompt response uses user messages and prepends system prompt as Context: ....
McpAuditService logs through AILoggingService.logRequest() with app key mcp:${method}, model set to resource/tool/prompt name or mcp, and zero tokens/cost.
vendix-ai-agent-toolsvendix-ai-platform-corevendix-backend-authvendix-prisma-scopesdevelopment
Mobile app development rules for Vendix Expo/React Native project. Trigger: When editing, creating, or modifying any file under apps/mobile, or when developing mobile-specific features.
development
Feature gating by store subscription state: global store write guard, AI feature gate, Redis feature resolution, quota consumption, frontend paywall interceptor, banner, and subscription UI states. Trigger: When adding feature gates, paywalls, subscription-based access control, protecting store write operations, AI feature gates, or rollout flags.
testing
SaaS subscription billing for Vendix stores: plan pricing, invoices, Wompi platform payments, manual payments, partner commissions, payouts, proration, and dunning. Trigger: When creating SaaS invoices, working with partner rev-share, margin/surcharge pricing, invoice sequence allocation, partner payout batches, subscription payments, manual payments, or dunning flows.
development
Periodic quota counters with Redis, UTC period keys, Lua-based idempotent AI quota consumption, request-id deduplication, and post-success consumption. Trigger: When building quota counters, enforcing monthly/daily feature caps, or reusing AI quota patterns for uploads, emails, exports, or rate-limited features.