A Model Context Protocol (MCP) server that enables Claude to control desktop operating systems through natural language commands using existing NPM packages and Python libraries.
-
Install dependencies:
pip install -r requirements.txt npm install
-
Set up environment variables:
cp .env.example .env # Edit .env and add your API keys -
Run the server:
python -m desktop_mcp.server
NPM MCP automatically discovers and adapts existing NPM packages and Python libraries:
# Want mouse control? Just install robotjs:
npm install -g robotjs
# Want browser automation? Just install puppeteer:
npm install -g puppeteer
# Want enhanced file operations? Just install fs-extra:
npm install -g fs-extra
# Everything works immediately - existing packages are auto-adapted!- Mouse & Keyboard Control: Click, type, drag, scroll, keyboard shortcuts
- Application Management: Launch, close, switch between apps, window management
- File System Operations: Browse directories, open files, create folders, move/copy files
- System Monitoring: Check processes, system resources, take screenshots
- Text-to-Speech: Convert text to speech using ElevenLabs
- Web Automation: Control browsers, fill forms, navigate websites
- Database Operations: SQLite database management
- Task Scheduling: Schedule and manage automated tasks
NPM MCP uses a unique adapter system that automatically converts existing NPM packages and Python libraries into MCP tools:
- Auto-Discovery: Scans for installed packages and available adapters
- JSON Adapters: Uses declarative JSON files to map package functions to MCP tools
- Zero Config: No setup required - just install packages and they work immediately
- Cross-Platform: Supports both NPM packages (Node.js) and Python libraries
The server loads all available adapters from the desktop_mcp/adapters/ directory. Each adapter is a JSON file that defines how to interface with different tools and libraries.
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude AI │◄──►│ MCP Client │◄──►│ NPM MCP │
│ │ │ │ │ Server │
│ • Natural │ │ • Protocol │ │ • Auto-Discovery│
│ Language │ │ Handler │ │ • JSON Adapters │
│ • Reasoning │ │ • Connection │ │ • Package Bridge│
│ • Planning │ │ Management │ │ • Cross-Platform│
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
┌─────────────────┐
│ NPM & Python │
│ Packages │
│ │
│ • robotjs │
│ • puppeteer │
│ • pyautogui │
│ • requests │
└─────────────────┘
- Speech:
speak_text,save_speech_to_file,get_voices - System:
run_command,get_environment_variable,get_current_directory - Clipboard:
get_clipboard_text,set_clipboard_text,clear_clipboard - HTTP:
http_get,http_post,download_file,check_website_status - Database:
create_database,execute_query,create_table,insert_data - Scheduling:
schedule_task,schedule_daily_task,list_scheduled_tasks
MIT License - See LICENSE for details.