This repository serves as the single source of truth for Cursor IDE configuration across Windows and WSL environments.
- Set
CURSOR_CONFIG_DIRto point to this user directory:- Windows:
C:\Users\janja\.cursor - WSL:
~/.cursor
- Windows:
- Configure MCP environment variables in WSL (see doc/configuration.md)
- Restart Cursor to apply changes
All documentation is in the doc/ directory:
- doc/configuration.md - Complete configuration guide and current setup (start here)
- doc/mcp.md - MCP server configuration, Docker management, and troubleshooting
- doc/rules.md - Project rules and conventions
- doc/commands.md - Custom Cursor commands
~/.cursor/ # User Cursor configuration (single source of truth)
├── rules/ # Project rules and conventions
├── mcp.json # MCP server configurations
├── cli-config.json # CLI permissions
├── commands/ # Custom commands
├── scripts/ # Setup and utility scripts
│ ├── setup-env-vars.* # Environment variable setup
│ ├── verify-config.* # Configuration verification
│ ├── get-keepass-secret.* # KeePassXC secret retrieval
│ ├── save-keepass-password-to-keyring.* # KeePass keyring setup
│ ├── keepass_ops.py # KeePass get/add/update (Python)
│ ├── build-mcp-images.* # Build MCP Docker images
│ ├── check-docker-images.* # Check MCP image availability
│ └── test-mcp-servers.* # Test MCP server configuration
├── doc/ # Documentation
├── .env.example # Template for .env
└── README.md # This file
- Single source of truth: All Cursor config in
.cursor/directory - Cross-platform: Works on Windows and WSL with same configuration
- MCP servers: All MCPs run in Docker containers for cross-platform consistency
- Git: Use
git pull/git pushor your preferred method to sync configuration across machines - Secure: Secrets in environment variables, not in config files
This configuration includes:
- memory (Neo4j) - Persistent knowledge storage
- playwright - Browser automation
- duckduckgo - Web search
- github - GitHub repository operations
- grafana - Metrics and dashboards
- shrimp-task-manager - Task planning and execution
See doc/configuration.md for detailed setup instructions.
The mcp.json file is configured to work seamlessly in both Windows and WSL environments. Most MCP servers use Docker containers from the Docker Hub MCP Catalog, providing:
- Consistent execution - Same behavior on Windows and WSL
- Isolation - Each server runs in its own container
- Easy updates - Pull latest images with
docker pull - Security - All secrets via environment variables, never hardcoded
All servers use Docker: memory, playwright, duckduckgo, grafana, github, shrimp-task-manager
Test all MCP servers with:
- Windows:
.\scripts\test-mcp-servers.ps1 - WSL:
./scripts/test-mcp-servers.sh
This verifies:
- Docker availability and image presence
- Security (no hardcoded secrets)
- Environment variable configuration
- Server health checks
See doc/mcp.md for complete MCP documentation including Docker management.
Why duplicates occur: Cursor automatically creates a .cursor/ directory in any folder you open. If you have:
- A global
.cursor/in%USERPROFILE%\.cursor\(Windows) or~/.cursor/(WSL) - A project
.cursor/in the repository CURSOR_CONFIG_DIRpointing to the repo
Cursor may load configurations from multiple locations, causing duplicates.
Solution: Use CURSOR_CONFIG_DIR to point to a single source of truth (user .cursor/ directory), and minimize global configs to empty mcpServers: {}.
This principle applies to all Cursor configuration (rules, MCP, CLI config), not just MCP servers.
See doc/configuration.md for fixing duplicate issues.
- Configuration and Setup: See doc/configuration.md
- MCP Servers: See doc/mcp.md