generate_cursor_rules
Create .cursorrules files for Cursor AI by analyzing project stacks including programming languages, frameworks, and databases to configure AI coding assistance.
Instructions
Generates a .cursorrules file for Cursor AI based on the project stack.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectName | Yes | Name of the project | |
| languages | Yes | Programming languages used (e.g., ['typescript', 'python']) | |
| frameworks | No | Frameworks used (e.g., ['react', 'fastapi']) | |
| databases | No | Databases used (e.g., ['postgresql', 'redis']) |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"databases": {
"description": "Databases used (e.g., ['postgresql', 'redis'])",
"items": {
"type": "string"
},
"type": "array"
},
"frameworks": {
"description": "Frameworks used (e.g., ['react', 'fastapi'])",
"items": {
"type": "string"
},
"type": "array"
},
"languages": {
"description": "Programming languages used (e.g., ['typescript', 'python'])",
"items": {
"type": "string"
},
"type": "array"
},
"projectName": {
"description": "Name of the project",
"type": "string"
}
},
"required": [
"projectName",
"languages"
],
"type": "object"
}
Implementation Reference
- src/tools/aiconfigs.ts:34-78 (handler)The handler function that implements the core logic of the 'generate_cursor_rules' tool, generating a .cursorrules file content based on project name, languages, frameworks, and databases.export function generateCursorRulesHandler(args: any) { const { projectName, languages, frameworks = [], databases = [] } = args; const content = `# ${projectName} - Cursor Rules ## Project Overview This is a ${languages.join("/")} project${frameworks.length ? ` using ${frameworks.join(", ")}` : ""}. ## Code Style - Follow ${languages[0]} best practices and style guides - Use consistent naming conventions - Write self-documenting code with clear variable names - Keep functions small and focused (< 50 lines) ## Architecture - Separate concerns clearly (MVC, Clean Architecture, etc.) - Use dependency injection where applicable - Keep business logic separate from I/O ## Testing - Write unit tests for all business logic - Use integration tests for API endpoints - Aim for > 80% code coverage ## Error Handling - Use structured error handling - Log errors with appropriate context - Return meaningful error messages to users ## Security - Never commit secrets or API keys - Validate all user input - Use parameterized queries for databases ${databases.length ? `\n## Database (${databases.join(", ")})\n- Use connection pooling\n- Handle transactions properly\n- Avoid N+1 queries` : ""} ## Documentation - Document all public APIs - Keep README up to date - Use inline comments for complex logic only `; return { content: [{ type: "text", text: content }] }; }
- src/tools/aiconfigs.ts:3-12 (schema)Zod-based input schema definition for the 'generate_cursor_rules' tool, specifying parameters like projectName, languages, frameworks, and databases.export const generateCursorRulesSchema = { name: "generate_cursor_rules", description: "Generates a .cursorrules file for Cursor AI based on the project stack.", inputSchema: z.object({ projectName: z.string().describe("Name of the project"), languages: z.array(z.string()).describe("Programming languages used (e.g., ['typescript', 'python'])"), frameworks: z.array(z.string()).optional().describe("Frameworks used (e.g., ['react', 'fastapi'])"), databases: z.array(z.string()).optional().describe("Databases used (e.g., ['postgresql', 'redis'])") }) };
- src/index.ts:95-95 (registration)Registration of the 'generate_cursor_rules' tool in the toolRegistry Map used by the main stdio MCP server.["generate_cursor_rules", { schema: generateCursorRulesSchema, handler: generateCursorRulesHandler }],
- src/server.ts:106-106 (registration)Registration of the 'generate_cursor_rules' tool in the toolRegistry Map used by the HTTP MCP server.["generate_cursor_rules", { schema: generateCursorRulesSchema, handler: generateCursorRulesHandler }],