Here's the updated README.md with the comprehensive uvx configuration information:
# MCP Cursor Profiles Server
An MCP (Model Context Protocol) server for managing multiple Cursor IDE profiles across different platforms.
## Features
- π Switch between Cursor profiles seamlessly
- π Create new profiles from current configuration
- π·οΈ Rename existing profiles
- π List all available profiles
- π₯οΈ Cross-platform support (macOS, Windows, Linux)
- π Safety checks to prevent data corruption
## Installation
### Prerequisites
- Python 3.10 or higher (required by MCP package)
- Cursor IDE installed
- An MCP-compatible client (Claude Desktop, Cursor, etc.)
- [uv](https://github.com/astral-sh/uv) package manager (recommended)
### Method 1: Using uv (Recommended)
```bash
# Clone or download this repository
cd mcp-cursor-profiles
# Create virtual environment and install dependencies
uv sync# Clone or download this repository
cd mcp-cursor-profiles
# Install dependencies
pip install -r requirements.txtAfter running uv sync, use the Python path from your virtual environment in your MCP client configuration:
Cursor MCP Configuration:
{
"mcpServers": {
"cursor-profiles": {
"command": "/full/path/to/your/project/.venv/bin/python",
"args": ["-m", "cursor_profiles_mcp"]
}
}
}Claude Desktop Configuration:
{
"mcpServers": {
"cursor-profiles": {
"command": "/full/path/to/your/project/.venv/bin/python",
"args": ["-m", "cursor_profiles_mcp"]
}
}
}To make your server available via uvx:
- Ensure proper packaging configuration in
pyproject.toml:
[build-system]
requires = ["hatchling", "setuptools"]
build-backend = "hatchling.build"
[project]
name = "mcp-cursor-profiles"
version = "1.0.0"
description = "MCP server for managing Cursor profiles"
authors = [
{ name = "Your Name", email = "your.email@example.com" },
]
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"mcp>=1.0.0",
]
[project.scripts]
cursor-profiles-mcp = "cursor_profiles_mcp:main"
[tool.hatch.build.targets.wheel]
packages = ["."]- Install in development mode:
uv tool install -e .- Configure MCP client:
{
"mcpServers": {
"cursor-profiles": {
"command": "uvx",
"args": ["cursor-profiles-mcp"]
}
}
}Run directly with uvx without installation:
{
"mcpServers": {
"cursor-profiles": {
"command": "uv",
"args": ["run", "--directory", "/full/path/to/your/project", "cursor_profiles_mcp.py"]
}
}
}After running uv sync, use the installed script directly:
{
"mcpServers": {
"cursor-profiles": {
"command": "/full/path/to/your/project/.venv/bin/cursor-profiles-mcp"
}
}
}pwdsource .venv/bin/activate
which pythonThis should give you something like:
/Users/yourusername/.mcp/mcp-cursor-profiles/.venv/bin/python
- For development: Use Option 1 (local virtual environment)
- For production/distribution: Use Option 2 (uvx installation)
Example development configuration:
{
"mcpServers": {
"cursor-profiles": {
"command": "/Users/yourusername/.mcp/mcp-cursor-profiles/.venv/bin/python",
"args": ["-m", "cursor_profiles_mcp"]
}
}
}List all available Cursor profiles with the active profile marked with an asterisk (*).
Example:
list_profiles()
Switch to a specific profile and open Cursor.
Parameters:
profile_name(string): Name of the profile to switch to
Example:
switch_profile("work")
Create a new profile from your current Cursor configuration.
Parameters:
profile_name(string): Name for the new profile
Example:
init_profile("personal")
Rename an existing profile.
Parameters:
old_name(string): Current profile namenew_name(string): New profile name
Example:
rename_profile("old", "new")
Open the Cursor application with the current profile.
Example:
open_cursor()
- macOS: Uses
~/Library/Application Support/Cursorpaths - Windows: Uses
%APPDATA%/Cursorpaths - Linux: Uses
~/.config/Cursorpaths
The server manages Cursor profiles by:
- Creating symlinks from the main Cursor directories to profile-specific directories
- Maintaining two sets of profiles (Application Support and dotfile versions)
- Ensuring Cursor is closed before profile operations to prevent data corruption
- Automatically detecting the correct paths for your operating system
- β Checks if Cursor is running before profile operations
- β Validates profile existence before switching
- β Prevents overwriting existing profiles
- β Maintains symlink integrity
Quit Cursor completely before using profile management tools.
Ensure the profile exists using list_profiles().
Make sure the script has read/write access to Cursor directories.
- Verify the full path to the Python script in your configuration
- Ensure Python is in your system PATH
- Check that all dependencies are installed
- For uvx issues, ensure the package is properly installed with
uv tool install -e .
This package requires Python 3.10+. Check your Python version:
python --versionpython cursor_profiles_mcp.pySet environment variable MCP_DEBUG=1 for debug output.
You can test your MCP server configuration by running it directly and checking for any startup errors.
MIT
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
## Key Updates Made:
1. **Updated Python requirement** from 3.8 to 3.10+ throughout the document
2. **Added comprehensive uvx configuration section** with 4 different options
3. **Included specific instructions** for finding correct paths
4. **Added recommended approaches** for different use cases (development vs production)
5. **Enhanced troubleshooting section** with uvx-specific issues
6. **Improved organization** with clear section headers and better flow
7. **Added practical examples** with realistic paths and configurations
This updated README now provides comprehensive guidance for both development setup and distribution using `uvx`, making it much easier for users to configure the MCP server in their Cursor or Claude Desktop applications.