Skip to content
Agentmart
Submit a tool

PySide6 MCP

Playwright-style MCP to inspect, control, and debug PySide6 desktop GUIs.

Connector by com55 · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 6
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/com55-pyside6-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Playwright-style MCP to inspect, control, and debug PySide6 desktop GUIs.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
11 read · 7 write · 1 delete · 3 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 22

Read from the source code; the running server may list different tools.

Read 11 · Look things up without changing anything.

  • find_widget
  • get_app_output
  • get_app_state
  • get_app_status
  • get_launch_help
  • get_logs
  • get_widget_info
  • get_widget_tree
  • list_actions
  • list_apps
  • screenshot

Write 7 · Create, change, send or run things.

  • click
  • double_click
  • press_key
  • scroll
  • stop_app
  • trigger_action
  • type_text

Delete 1 · Delete, drop, revoke or wipe things.

  • eval_python

Not yet classified 3 · We could not tell from the name and description.

  • launch_app
  • wait_for_idle
  • wait_until_ready

Files it touches

  • Any path the agent passes to its tools

Tools (22)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • click

    Click a widget or screen coordinate. - widget_id only: clicks the center of that widget - widget_id + x/y: clicks at (x, y) relative to the widget's top-left - x/y only: clicks at (x, y) relative to the main window button: 'left' (default), 'right', or 'middle'

  • double_click

    Double-click a widget. Sends two rapid left-clicks.

  • eval_python

    Evaluate a Python expression or execute a statement inside the app process. Context provides: - app: QApplication instance - widgets: dict mapping widget_id → QWidget Examples: eval_python("app.activeWindow().windowTitle()") eval_python("widgets['3'].isEnabled()") eval_python("list(app.allWidgets())") WARNING: runs arbitrary code in the app — use only for debugging.

  • find_widget

    Search for widgets by class, objectName, text content, or visibility. Returns a list of matching widgets with their IDs. Examples: find_widget(class_name="QPushButton") find_widget(text="Apply Mods") find_widget(object_name="enabledCheckBox")

  • get_app_output

    Get the last n lines of the launched app's real stdout/stderr: print() output, uncaught tracebacks, and Qt/console warnings. This is the app's actual console output, captured because launch_app redirects it to a log file. Use this to debug crashes or startup failures. For structured Python logging records use get_logs() instead. Only works for apps started via launch_app on this server.

  • get_app_state

    Get app-level state: active window, focused widget, screen info. Useful to understand focus before sending keyboard events.

  • get_app_status

    Report combined health of a launched app: whether the process is alive, its exit code, whether the bridge responds, and whether the main thread is likely blocked by a modal dialog (process alive but bridge unresponsive).

  • get_launch_help

    Return how to call launch_app — especially the script parameter. Call this before launch_app when you are unsure which entry .py to use or whether script should include a subfolder path.

  • get_logs

    Get the last n log messages captured from the app's Python logging system. Includes timestamp, level, logger name, and message.

  • get_widget_info

    Get detailed properties and state of a specific widget. Includes geometry, text, enabled/visible state, and dynamic Qt properties.

  • get_widget_tree

    Get the full widget hierarchy of all visible windows as JSON. Each widget has: id, class, object_name, visible, enabled, geometry, text, children. Use widget IDs from this tree in other tools.

  • launch_app

    Launch a PySide6 app with the MCP bridge injected, then wait until the UI is ready. Parameters ---------- cwd : REQUIRED absolute path to project root (directory with pyproject.toml). script : Entry .py relative to cwd. Default main.py. See script examples below. app_args : Optional CLI arguments forwarded to the script. timeout : Seconds to wait for readiness (default 45). script — when to set it ----------------------- | Entry location | script value | | main.py at project root | omit (default) | | app.py at project root | "app.py" | | src/run.p…

  • list_actions

    List all QActions (menu items, toolbar actions) in visible windows with their name, text, shortcut, and enabled/checked state.

  • list_apps

    List apps launched by this MCP server. Each entry is {pid}. Pass pid= to other tools when more than one app is running.

  • press_key

    Press a key on the currently focused widget. Named keys: enter, return, escape, tab, backtab, backspace, delete, up, down, left, right, space, home, end, pageup, pagedown, f1–f6 Single characters: pass the character directly, e.g. 'a', 'A', '1'

Show 7 more tools
  • screenshot

    Capture a screenshot of the app window (or a specific widget by ID). Returns the image so you can see the current UI state. Call this first to orient yourself.

  • scroll

    Scroll a widget. dy > 0 scrolls down, dy < 0 scrolls up. dx: horizontal scroll (positive = right). widget_id: target widget; omit to scroll the main window.

  • stop_app

    Stop a previously launched app (started via launch_app). Omit pid to stop the last launched app.

  • trigger_action

    Trigger a QAction directly by objectName (`name`) or visible label (`text`), without clicking through menus. Useful to avoid opening modal menus and to reach toolbar/menu actions reliably. Provide at least one of name/text.

  • type_text

    Type text into a widget (focuses it first) or the currently focused widget. For special characters use press_key instead.

  • wait_for_idle

    Wait until the app's UI has been quiet (no layout/paint activity) for `quiet_ms` ms, or until `timeout` seconds elapse. Call after a click or action that triggers async work, before taking a screenshot.

  • wait_until_ready

    Wait until the app UI is ready: a visible top-level window that has been quiet (no layout/paint activity) for `quiet_ms` milliseconds. Use after an action that reloads or rebuilds the UI. Returns the readiness snapshot. Does not launch anything — the app must already be running.

Signals

Stars
6
Forks
2
Open issues
0
Weekly downloads
55
Last commit
Sep 5, 2026 (1 month ago)
Last release
Sep 5, 2026 (1 month ago)
Last package publish
Sep 5, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.com55/pyside6-mcp
Version
0.1.0
Auth
No auth
Packages
pypi pyside6-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026
Cite this page

PySide6 MCP. Agent Mart. https://agentmart.dev/connectors/com55-pyside6-mcp (last updated 2026-10-25)