Visual Desktop Bridge - Give any AI full control over Windows to automate apps and inputs.
Give any AI complete control over your Windows PC
Features • Quick Start • Configuration • Tools • Troubleshooting • Contributing
Bridge MCP v2.0 stores agent registrations in a persistent JSON file:
%APPDATA%\bridge-mcp\agents.json~/.config/bridge-mcp/agents.jsonThis means:
cd Bridge-MCP
python local_agent.pyThe agent auto-registers itself - no manual registration needed!
Verify in any Claude session:
Use list_agents() to see registered agents
If you see "No agents connected":
check_agent_health() toolregister_agent("local", "http://127.0.0.1:8006", "My PC")For always-on access, install local_agent as a Windows service:
python install_service.py install
python install_service.py startTo remove:
python install_service.py stop
python install_service.py removeBridge MCP is a Model Context Protocol (MCP) server that gives any AI full control over a Windows PC. Whether you're using Claude, ChatGPT, Cursor, Gemini, or any other MCP-compatible AI, Bridge MCP lets you:
Think of it as giving your AI eyes and hands to control your computer!
| Category | Tools | Description |
|---|---|---|
| 🚀 App Control | 8 tools | Launch, switch, close, resize, minimize, maximize applications |
| 🖱️ Mouse & Keyboard | 10 tools | Click, type, hotkeys, scroll, drag, move cursor |
| 📸 Screen Capture | 7 tools | Screenshots, desktop state, find UI elements |
| ⚡ System | 8 tools | PowerShell, CMD, file read/write, system info |
| 🌐 Browser | 15 tools | Chrome control, tabs, navigation, web scraping |
| 📋 Clipboard | 3 tools | Copy, paste, clear clipboard |
| 🔧 Utilities | 5+ tools | Wait, dialogs, action sequences |
Total: 40+ powerful tools for complete PC automation!
Bridge MCP uses a Relay Architecture to work across platforms:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Any AI │ │ Cloud Relay │ │ Your Windows │
│ (Claude, etc.) │◄───────►│ (bridge_mcp) │◄───────►│ PC (Agent) │
└─────────────────┘ └─────────────────┘ └─────────────────┘Bridge MCP 2.0 includes:
agents.json.Powered by Playwright, Bridge MCP can now:
Bridge MCP "sees" your apps:
Bridge MCP now puts YOU in control:
http://localhost:8006See what the AI sees, in real-time:
Bridge MCP now implements the complete Model Context Protocol specification:
Expose desktop data as addressable resources:
desktop://screenshot/latest - Current screenshotdesktop://windows - Open windows listdesktop://logs - Agent command logsfile:///{path} - Read any desktop filedesktop://session/context - Recent session historyPre-built workflow templates for one-click automation:
automate_desktop_task - Step-by-step task automationdebug_error - Interactive error debuggingweb_automation - Playwright web workflowsNever lose context:
git clone https://github.com/BarhamAgha1/Bridge-MCP.git
cd Bridge-MCPpip install -r requirements-local.txtNote: Playwright browsers (~100MB) auto-install on first use - no manual setup needed!
python local_agent.pyKeep this terminal open! The agent will display:
Bridge MCP Local Agent running on http://127.0.0.1:8006
See Configuration below for Claude Desktop, Cursor, or VS Code setup.
In your AI conversation, register the local agent:
Use register_agent with:
- agent_id: "my-pc"
- callback_url: "http://127.0.0.1:8006"
- agent_name: "My Windows PC"Now use any tool like screenshot(), click(100, 200), type_text("Hello"), app_launch("notepad"), etc.
Open the config file at %APPDATA%\Claude\claude_desktop_config.json
Add Bridge MCP:
{
"mcpServers": {
"bridge-mcp": {
"command": "python",
"args": ["C:\\Users\\YourName\\Path\\To\\Bridge-MCP\\bridge_mcp.py"]
}
}
}⚠️ Important: Replace the path with the actual location where you cloned the repository!
Example paths:
C:\\Users\\PC\\Desktop\\Bridge-MCP\\bridge_mcp.pyD:\\Projects\\Bridge-MCP\\bridge_mcp.pyAdd to your MCP settings in Cursor preferences with the same configuration format.
Create .vscode/mcp.json in your project:
{
"mcpServers": {
"bridge-mcp": {
"command": "python",
"args": ["C:\\Users\\YourName\\Path\\To\\Bridge-MCP\\bridge_mcp.py"]
}
}
}To control your PC from anywhere, expose the local agent with ngrok:
ngrok http 8006Then use the ngrok URL (e.g., https://xxxx.ngrok.io) as your callback_url when registering.
| Tool | Description | Example |
|---|---|---|
app_launch | Launch an application | app_launch("notepad") |
app_switch | Switch to open app | app_switch("Chrome") |
app_close | Close an application | app_close("notepad") |
app_list | List all open apps | app_list() |
| Tool | Description | Example |
|---|---|---|
click | Click at coordinates | click(500, 300) |
double_click | Double-click | double_click(500, 300) |
right_click | Right-click | right_click(500, 300) |
type_text | Type text | type_text("Hello World!") |
press_key | Press a key | press_key("enter") |
hotkey | Keyboard shortcut | hotkey("ctrl,c") |
scroll | Scroll | scroll("down", 3) |
drag | Drag and drop | drag(100, 100, 500, 500) |
move_mouse | Move cursor | move_mouse(500, 300) |
| Tool | Description | Example |
|---|---|---|
screenshot | Take screenshot | screenshot() |
get_desktop_state | Get full desktop state | get_desktop_state() |
get_screen_size | Get screen dimensions | get_screen_size() |
get_mouse_position | Get cursor position | get_mouse_position() |
| Tool | Description | Example |
|---|---|---|
run_powershell | Run PowerShell | run_powershell("Get-Process") |
run_cmd | Run CMD command | run_cmd("dir") |
file_read | Read file | file_read("C:/test.txt") |
file_write | Write file | file_write("C:/test.txt", "Hello") |
file_list | List directory | file_list("C:/Users") |
| Tool | Description | Example |
|---|---|---|
chrome_open | Open Chrome | chrome_open("https://google.com") |
chrome_navigate | Go to URL | chrome_navigate("https://example.com") |
| Tool | Description | Example |
|---|---|---|
browser_navigate | Go to URL | browser_navigate("google.com") |
browser_click | Click element (CSS) | browser_click("#submit-btn") |
browser_type | Type in element | browser_type("#search", "hello") |
browser_press | Press key | browser_press("Enter") |
browser_content | Get page text | browser_content() |
browser_screenshot | Browser screenshot | browser_screenshot() |
| Tool | Description | Example |
|---|---|---|
clipboard_copy | Copy to clipboard | clipboard_copy("Hello") |
clipboard_paste | Get clipboard | clipboard_paste() |
User: Open notepad and write "Hello from AI!"
AI uses:
1. app_launch("notepad")
2. wait(1)
3. type_text("Hello from AI!")User: What's on my screen right now?
AI uses:
1. screenshot()
2. [AI analyzes the image and describes what it sees]User: Search for "Bridge MCP" on Google
AI uses:
1. chrome_open("https://google.com")
2. type_text("Bridge MCP")
3. press_key("enter")Check the path - Make sure the path in your config points to the actual bridge_mcp.py file. The path must be absolute and use double backslashes (\\) in JSON.
Test manually - Open Command Prompt and run:
cd "C:\path\to\Bridge-MCP"
python bridge_mcp.pyIt should stay running (not exit immediately). Press Ctrl+C to stop.
pip install fastmcp httpxlocal_agent.py is running in a terminal (keep it open!)http://127.0.0.1:8006ngrok http 8006) and use the ngrok URLYou need to register your local agent first:
register_agent("my-pc", "http://127.0.0.1:8006", "My PC")
If local_agent.py crashes with Unicode errors, the terminal may not support emojis. This has been fixed in the latest version.
Bridge MCP can be deployed on FastMCP Cloud for easy access:
bridge_mcp.pyYour MCP will be available at: https://your-project.fastmcp.app/mcp
Contributions are welcome! Here's how you can help:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Barham Agha
⭐ If you find this project useful, please give it a star! ⭐
Made with ❤️ for the AI community