pywebview-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pywebview-mcplaunch the app and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pywebview-mcp
Playwright-style MCP server for pywebview apps — lets AI assistants see, control, and debug your Python desktop web UI without modifying your app's source code.
AI assistant → MCP tools → pywebview-mcp server → HTTP bridge → pywebview appFeatures
Screenshot the webview page via CDP (edgechromium/qt)
Inspect the full DOM tree (tag, id, role, text, bounds)
Click, type, scroll, press keys — full page interaction
Find elements by CSS selector, text, role, or tag
call_api — invoke
js_apimethods directly from Python (skip DOM when the app exposes an API)eval_js / eval_python — run code in the page or app process
Read Python logs captured from the app
Launch and stop the app directly from Claude
Zero changes to your app's source code required.
Related MCP server: qt-mcp
Requirements
Python 3.11+
pywebview 6.0+
uv (recommended)
Windows (tested with WebView2), Linux/macOS (should work with supported renderers)
Installation
Component | Where it runs | Needs pywebview? |
MCP server ( | AI client's MCP process | No |
Bridge (via | Inside your pywebview app | Uses project's existing pywebview |
No changes to the target project. launch_app(cwd=…) runs
uv run --with pywebview-mcp@git python -m pywebview_mcp main.py — the bridge
is injected at runtime; nothing is added to pyproject.toml.
MCP server — Cursor
Add to %USERPROFILE%\.cursor\mcp.json or project .cursor/mcp.json:
{
"mcpServers": {
"pywebview": {
"command": "uvx",
"args": ["--from", "git+https://github.com/com55/pywebview-mcp", "pywebview-mcp"]
}
}
}Local development:
{
"mcpServers": {
"pywebview": {
"command": "uv",
"args": ["run", "--directory", "/path/to/pywebview-mcp", "pywebview-mcp"]
}
}
}Optional custom port:
"env": { "PYWEBVIEW_MCP_PORT": "7891", "PYWEBVIEW_MCP_CDP_PORT": "9222" }MCP server — Claude Code
claude mcp add -s user pywebview -- uvx --from git+https://github.com/com55/pywebview-mcp pywebview-mcpOr install the plugin (MCP + skill):
claude plugin install github:com55/pywebview-mcpRunning your app with the bridge
From MCP (recommended — zero project setup):
launch_app(cwd="/path/to/project") # main.py at root
launch_app(cwd="/path/to/project", script="app.py") # other name at root
launch_app(cwd="/path/to/project", script="backend/gui.py") # entry in subfolder
get_launch_help() # full script decision guidecwd is the project root (pyproject.toml). script is the entry .py relative to cwd.
Manual equivalent:
cd your-pywebview-project
uv run --with "pywebview-mcp @ git+https://github.com/com55/pywebview-mcp" \
python -m pywebview_mcp main.pyStandard workflow
launch_app(cwd="/path/to/project")screenshot()+get_dom_tree()Interact via
click,type_text, orcall_api("get_ui_state")get_logs()/get_app_output()to debug
Ports
Env var | Default | Purpose |
| 7891 | HTTP bridge (differs from pyside6-mcp's 7890) |
| 9222 | Chrome DevTools for screenshots |
Limitations
Screenshots require
edgechromiumorqtrenderer (CDP). Set automatically by the launcher.Native file dialogs block automation — use
call_apito set paths instead.Element IDs reset on every app restart — call
get_dom_tree()again.uvx cache — after updating the package, clear uv cache or use a local path.
Architecture
pywebview_mcp/server.py— FastMCP stdio server (no pywebview dependency)pywebview_mcp/bridge.py— in-process HTTP bridgepywebview_mcp/__main__.py— monkey-patcheswebview.startfor zero-config injection
License
MIT
Related MCP Servers
- Alicense-quality-maintenanceA Playwright-based MCP server that exposes a live browser as a traceable, inspectable, debuggable and controllable execution environment for AI agents.Last updated5,34157
- AlicenseAqualityDmaintenanceAn MCP server for inspecting, debugging, and interacting with PySide6 desktop applications. It enables AI agents to capture UI snapshots, read widget properties, and perform actions like clicking buttons or typing text.Last updated4221Apache 2.0
- Alicense-qualityBmaintenanceAn MCP Server that enables AI assistants to interact with your local browsers.Last updated2,67454MIT
- Alicense-qualityBmaintenanceAn MCP server that gives any AI assistant eyes and hands on your desktop — screenshots, clicking, typing, OCR, window management, accessibility-tree queries, workflow recording.Last updated5Apache 2.0
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/com55/pywebview-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server