PIX4Dmatic MCP
This server automates and controls PIX4Dmatic photogrammetry software on Windows via GUI automation through a local MCP interface.
Session & Observation
Launch PIX4Dmatic or attach to an existing process
Focus the main window and get process/window status
Capture desktop or window screenshots
Inspect the UI Automation tree for selector discovery
UI Control
Send hotkeys (e.g.
^o,{F5}) and type text into focused controlsClick UI elements by accessible text or navigate menus by label paths
List available menu items
Project & Processing
Open existing project files
Start processing and wait until PIX4Dmatic is idle (based on CPU and log activity)
Run JSON jobs inline or from file, and execute sequential batch jobs with optional continue-on-failure
Logs, Outputs & Diagnostics
Read recent lines from the latest log file
Summarize warnings and errors found in logs
Verify expected output files exist under a project directory
Analyze a project for issues or completion status
Detect blockers preventing processing
Collect diagnostics (screenshots, logs, status) into a specified directory
Click on "Deploy 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., "@PIX4Dmatic MCP open project C:\Projects\site_2024.p4d and start processing"
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.
PIX4Dmatic MCP
Local MCP server for controlling PIX4Dmatic on Windows through GUI automation.
This first version implements the MVP observation and control layer:
connect to an already running PIX4Dmatic process
launch PIX4Dmatic when needed
focus the PIX4Dmatic window
capture a screenshot
send hotkeys or plain text
click visible UI text or menu-like paths
inspect the UI Automation tree
open an existing project file
start processing from visible processing controls
wait until PIX4Dmatic becomes idle
run a guarded JSON job for an existing project or current session
read recent PIX4Dmatic logs
check expected output files
collect diagnostics
Install
Install dependencies:
python -m pip install -r requirements.txtOptional editable package install:
python -m pip install -e . --no-build-isolationIf package installation is blocked by local permissions, run directly from this checkout:
$env:PYTHONPATH = "src"
python -m pix4dmatic_mcp.serverRelated MCP server: atomic-computer-mcp
Run
$env:PYTHONPATH = "src"
python -m pix4dmatic_mcp.serverConfiguration
The server loads defaults automatically, then optionally reads:
PIX4DMATIC_MCP_CONFIGpix4dmatic_mcp_config.jsonin the current working directoryconfig/pix4dmatic_mcp_config.jsonin the current working directory
Useful environment overrides:
PIX4DMATIC_EXEPIX4DMATIC_MCP_DIAGNOSTICS_DIR
See examples/pix4dmatic_mcp_config.example.json.
For Codex or another MCP client, use examples/mcp_config.example.json as a starting point.
Quick Local Checks
PIX4Dmatic is expected to be running in a normal Windows desktop session.
$env:PYTHONPATH = "src"
python scripts/test_status.py
python scripts/inspect_ui.pyMCP Tools
Session and observation:
pix4d_launchpix4d_focuspix4d_get_statuspix4d_screenshotpix4d_window_screenshotpix4d_get_ui_tree
Low-level UI control:
pix4d_send_hotkeypix4d_type_textpix4d_click_textpix4d_click_menupix4d_list_menu_items
Project and processing:
pix4d_open_projectpix4d_start_processingpix4d_wait_until_idlepix4d_run_jobpix4d_run_job_objectpix4d_run_batchpix4d_run_batch_object
Logs and outputs:
pix4d_read_latest_logspix4d_find_log_errorspix4d_check_outputspix4d_analyze_projectpix4d_detect_blockerspix4d_collect_diagnostics
Job Safety
pix4d_run_job_object and pix4d_run_job will start processing. A job must either provide project_path or explicitly set use_current_session to true.
Use dry_run: true to validate job intent without clicking the PIX4Dmatic UI.
Batch files run jobs sequentially. Set continue_on_failure: true to continue after a failed job. See examples/batch.example.json.
Safety
The server only launches PIX4Dmatic and does not expose a generic process runner. It does not automate login or license changes.
Available Tools
18 toolspix4d_check_outputsB
Check whether expected PIX4Dmatic outputs exist under a project directory.
Inputs: project_dir (required), expected (required). Returns: object
pix4d_click_textC
Click a visible PIX4Dmatic UI control by accessible text.
Inputs: text (required), timeout_sec. Returns: object
pix4d_collect_diagnosticsB
Collect screenshot, recent logs, and status into a diagnostics directory.
Inputs: output_dir (required), project_dir. Returns: object
pix4d_find_log_errorsC
Summarize warnings and errors from the latest PIX4Dmatic log.
Inputs: lines, project_dir. Returns: object
pix4d_focusB
Focus the PIX4Dmatic main window.
Inputs: no named parameters. Returns: object
pix4d_get_statusB
Return PIX4Dmatic process and window status.
Inputs: no named parameters. Returns: object
pix4d_get_ui_treeB
Return a compact UI Automation tree for selector discovery.
Inputs: depth. Returns: object
pix4d_launchC
Launch PIX4Dmatic or attach to the existing process.
Inputs: exe_path. Returns: object
pix4d_open_projectB
Open an existing PIX4Dmatic project file.
Inputs: project_path (required). Returns: object
pix4d_read_latest_logsB
Read recent lines from the newest discovered PIX4Dmatic log file.
Inputs: lines, project_dir. Returns: object
pix4d_run_jobC
Load and run a JSON job file.
Inputs: job_path (required). Returns: object
pix4d_run_job_objectC
Run a job object against the current PIX4Dmatic session or an existing project_path.
Inputs: job (required). Returns: object
pix4d_screenshotB
Save a screenshot of the current desktop.
Inputs: output_dir. Returns: object
pix4d_send_hotkeyB
Send a pywinauto hotkey string to PIX4Dmatic, for example '^o' or '{F5}'.
Inputs: keys (required). Returns: object
pix4d_start_processingD
Start processing by clicking the first matching processing control.
Inputs: selectors, timeout_sec. Returns: object
pix4d_type_textB
Type plain text into the focused PIX4Dmatic control.
Inputs: text (required). Returns: object
pix4d_wait_until_idleB
Wait until PIX4Dmatic appears idle based on process CPU and recent logs.
Inputs: timeout_sec, poll_sec, idle_cpu_percent, idle_checks, +1 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Most tools have distinct purposes, such as launching, opening projects, running jobs, and checking outputs, but there is some overlap between pix4d_click_menu and pix4d_click_text, which both involve clicking UI elements, and between pix4d_run_job and pix4d_run_job_object, which both handle job execution, potentially causing confusion.
All tool names follow a consistent 'pix4d_' prefix with snake_case and descriptive verb-noun patterns, such as pix4d_launch, pix4d_open_project, and pix4d_check_outputs, making them predictable and easy to understand.
With 18 tools, the count is slightly high but reasonable for a desktop automation server covering UI interaction, job processing, diagnostics, and monitoring, though it could be streamlined by merging overlapping tools.
The toolset covers key areas like launching, project management, job execution, UI automation, and diagnostics, but there are minor gaps, such as no explicit tools for closing projects or handling errors beyond logging, which agents might need to work around.
Maintenance
Related MCP Connectors
Clean PNG/JPEG screenshots via REST or MCP, with goal-driven multi-step navigation.
MCPs that do tasks on any website. Search flights, book, shop, check accounts and fill in forms.
Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI clients to automate Windows desktop applications through window manipulation, image recognition, OCR, keyboard/mouse simulation, and memory operations via the MCP protocol.MIT
- FlicenseNot gradedqualityDmaintenanceEnables automation of native Windows desktop applications through screen capture, mouse/keyboard control, and waiting for UI changes, exposing them as MCP tools.1-
- AlicenseNot gradedqualityDmaintenanceProvides desktop automation tools for Windows, enabling mouse and keyboard control, screenshots, clipboard management, and application interaction via the MCP protocol.119 npmMIT
- AlicenseAqualityCmaintenanceEnables general-purpose Windows desktop automation via MCP tools: opening applications and URLs, taking screenshots, checking whether processes are running, and waiting.6MIT