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